0Pricing
AWS Solutions Architect · Lektion

Szenarien für sichere Architekturen

Bearbeiten Sie Szenariofragen zu den geringsten IAM-Rechten, Verschlüsselung, VPC-Isolierung und WAF/Shield, um Ihr Wissen im Sicherheitsbereich zu festigen.

Szenarien für sichere Architekturen ist eine kostenlose AWS Solutions Architect-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des AWS Solutions Architect-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der AWS Solutions Architect-Kurs umfasst insgesamt 4 Lektionen.

Szenario 1: EC2-Zugriff auf S3 nach dem Prinzip der geringsten Berechtigung

Szenario: Auf einer EC2-Instance läuft eine Webanwendung, die Objekte aus einem bestimmten S3-Bucket lesen muss. Das Sicherheitsteam verlangt, dass keine langfristigen Anmeldeinformationen auf der Instance gespeichert werden und der Zugriff nach dem Prinzip der geringsten Berechtigung erfolgt. Lösung: Erstellen Sie eine IAM role mit einer Richtlinie, die ausschließlich s3:GetObject für die ARN des bestimmten Buckets erlaubt. Verknüpfen Sie die Rolle als instance profile mit der EC2-Instance. Die Anwendung verwendet den Instance Metadata Service (IMDS), um automatisch temporäre Anmeldeinformationen abzurufen – gespeicherte Schlüssel sind nicht erforderlich.

# IAM policy for least-privilege EC2 -> S3 read
{
  'Version': '2012-10-17',
  'Statement': [{
    'Effect': 'Allow',
    'Action': ['s3:GetObject'],
    'Resource': 'arn:aws:s3:::my-app-bucket/*'
  }]
}

# Attach role to EC2 instance
aws ec2 associate-iam-instance-profile \
  --instance-id i-1234567890abcdef0 \
  --iam-instance-profile Name=EC2S3ReadRole

Szenario 2: Daten in einer RDS-Datenbank verschlüsseln

Szenario: Ein Unternehmen speichert personenbezogene Daten von Kunden in einer RDS-PostgreSQL-Datenbank. Das Compliance-Team verlangt eine Verschlüsselung ruhender Daten und die Möglichkeit, die Verwendung des Schlüssels zu prüfen. Lösung: Aktivieren Sie die RDS encryption using AWS KMS mit einem Customer Managed Key (CMK). Mit dem CMK kann das Sicherheitsteam die Schlüsselrotation steuern, die Schlüsselverwendung in CloudTrail einsehen und den Zugriff bei Bedarf widerrufen. Hinweis: Die Verschlüsselung muss beim Erstellen der RDS-Instance aktiviert werden – eine bestehende unverschlüsselte RDS-Instance kann nicht nachträglich direkt verschlüsselt werden. Erstellen Sie zum Verschlüsseln einer vorhandenen Datenbank einen Snapshot, kopieren Sie ihn mit aktivierter Verschlüsselung und stellen Sie die Datenbank aus dem verschlüsselten Snapshot wieder her.

# Create an encrypted RDS instance
aws rds create-db-instance \
  --db-instance-identifier prod-postgres \
  --db-instance-class db.t3.medium \
  --engine postgres \
  --master-username admin \
  --master-user-password SecurePass123! \
  --storage-encrypted \
  --kms-key-id arn:aws:kms:us-east-1:123456789012:key/mrk-abc123 \
  --allocated-storage 100

Szenario 3: S3-Bucket – öffentlichen Zugriff blockieren

Szenario: Ein Entwickler hat versehentlich einen S3-Bucket öffentlich gemacht und dadurch Kundendaten offengelegt. Das Sicherheitsteam möchte sicherstellen, dass kein S3-Bucket im Konto jemals öffentlich gemacht werden kann, selbst wenn ein Entwickler dies versucht. Lösung: Aktivieren Sie S3 Block Public Access auf Kontoebene. Diese Einstellung setzt jede Bucket-Richtlinie und ACL außer Kraft, die öffentlichen Zugriff gewährt, unabhängig davon, was einzelne Teams konfigurieren. Kombinieren Sie dies mit einer AWS Config rule (s3-bucket-public-read-prohibited), um fortlaufend nicht konforme Buckets zu erkennen und entsprechende Warnungen auszulösen.

# Block all public access at account level
aws s3control put-public-access-block \
  --account-id 123456789012 \
  --public-access-block-configuration \
    'BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true'

# Deploy Config rule to detect violations
aws configservice put-config-rule \
  --config-rule '{"ConfigRuleName": "s3-bucket-public-read-prohibited", "Source": {"Owner": "AWS", "SourceIdentifier": "S3_BUCKET_PUBLIC_READ_PROHIBITED"}}'

Szenario 4: VPC-Isolierung für die Datenbankebene

Szenario: Ein Unternehmen möchte sicherstellen, dass seine RDS-Datenbank nur von seinen Anwendungsservern und nicht aus dem Internet erreichbar ist. Lösung: Platzieren Sie RDS in einem private subnet ohne Route zu einem Internet-Gateway. Erstellen Sie eine security group for RDS, die eingehenden Datenverkehr auf Port 5432 (PostgreSQL) ausschließlich von der Security Group der Anwendungsserver zulässt – nicht von einem beliebigen IP-Adressbereich. So kann ein Angreifer selbst bei einer Kompromittierung eines Anwendungsservers nicht von außerhalb der VPC auf die Datenbank zugreifen; außerdem wird die laterale Bewegung durch die Regeln der Security Groups eingeschränkt.

# Create RDS security group allowing only the app tier SG as source
aws ec2 create-security-group \
  --group-name rds-sg \
  --description 'RDS security group' \
  --vpc-id vpc-abc123

aws ec2 authorize-security-group-ingress \
  --group-id sg-rds \
  --protocol tcp \
  --port 5432 \
  --source-group sg-app  # app tier security group ID only

Szenario 5: Datenbankanmeldeinformationen rotieren

Szenario: Der Anwendungscode enthält derzeit fest in Konfigurationsdateien hinterlegte Datenbankanmeldeinformationen. Das Sicherheitsaudit stuft dies als kritisches Risiko ein. Lösung: Speichern Sie die Anmeldeinformationen in AWS Secrets Manager und konfigurieren Sie eine automatic rotation (Secrets Manager verfügt über integrierte Lambda-Rotationsfunktionen für RDS). Aktualisieren Sie die Anwendung so, dass sie die Anmeldeinformationen zur Laufzeit über das SDK aus Secrets Manager abruft. Die Anwendung erhält automatisch aktuelle Anmeldeinformationen, ohne dass bei jeder Rotation ein Deployment erforderlich ist. Aktivieren Sie die RDS-Vorlage für die Secret-Rotation, um eine vollständig verwaltete Rotation der Anmeldeinformationen ohne Ausfallzeit zu ermöglichen.

# Store RDS credentials in Secrets Manager
aws secretsmanager create-secret \
  --name prod/myapp/rds \
  --secret-string '{"username":"admin","password":"OldPass123!","host":"rds-endpoint.amazonaws.com","port":5432}'

# Enable automatic rotation every 30 days
aws secretsmanager rotate-secret \
  --secret-id prod/myapp/rds \
  --rotation-lambda-arn arn:aws:lambda:us-east-1:123:function:SecretsManagerRDSPostgreSQLRotationSingleUser \
  --rotation-rules AutomaticallyAfterDays=30

Szenario 6: Ungewöhnliche API-Aktivitäten erkennen

Szenario: Ein Unternehmen möchte erkennen, ob die Anmeldeinformationen eines AWS-Kontos kompromittiert und von unerwarteten Orten aus verwendet werden. Lösung: Aktivieren Sie Amazon GuardDuty in allen Regionen. GuardDuty analysiert CloudTrail-Ereignisse, VPC Flow Logs und DNS-Logs mithilfe von Machine Learning, um Anomalien zu erkennen: API-Aufrufe aus ungewöhnlichen geografischen Regionen, Muster für Bitcoin-Mining auf EC2, Kommunikation mit Tor-Exit-Nodes oder Muster für den Abfluss von Anmeldeinformationen. GuardDuty erzeugt Findings, die EventBridge rules auslösen können, um das Sicherheitsteam automatisch über SNS zu benachrichtigen oder ein Support-Ticket zu erstellen.

# Enable GuardDuty in a Region
aws guardduty create-detector \
  --enable \
  --finding-publishing-frequency FIFTEEN_MINUTES

# EventBridge rule to react to GuardDuty HIGH severity findings
aws events put-rule \
  --name guardduty-high-severity \
  --event-pattern '{
    "source": ["aws.guardduty"],
    "detail-type": ["GuardDuty Finding"],
    "detail": {"severity": [{"numeric": [">=", 7]}]}
  }'

Szenario 7: WAF zum Blockieren bösartiger Anfragen

Szenario: Eine Webanwendung hinter einem ALB erhält SQL-Injection-Angriffe. Die Anwendung kann nicht sofort geändert werden. Lösung: Verknüpfen Sie AWS WAF mit dem ALB. Setzen Sie die Regelgruppe AWS Managed Rules for Common Threats (Core Rule Set + SQL Database rule group) ein, die eine vorgefertigte Erkennung von SQL-Injection enthält. WAF prüft HTTP-Anfragen, bevor sie den ALB erreichen, und blockiert Anfragen, die Angriffsmustern entsprechen – Änderungen am Anwendungscode sind nicht erforderlich. Aktivieren Sie außerdem die WAF-Protokollierung zu Kinesis Firehose für Sicherheitsanalysen.

# Create WAF Web ACL with SQL injection protection
aws wafv2 create-web-acl \
  --name AppProtection \
  --scope REGIONAL \
  --default-action Allow={} \
  --rules '[{
    "Name": "AWSManagedRulesSQLiRuleSet",
    "Priority": 1,
    "Statement": {
      "ManagedRuleGroupStatement": {
        "VendorName": "AWS",
        "Name": "AWSManagedRulesSQLiRuleSet"
      }
    },
    "OverrideAction": {"None": {}},
    "VisibilityConfig": {"SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "SQLi"}
  }]' \
  --region us-east-1

Szenario 8: AssumeRole kontoübergreifend verwenden

Szenario: Ein zentrales Sicherheitskonto benötigt schreibgeschützten Zugriff auf alle Workload-Konten in einer AWS Organisation, um Sicherheitsprüfungen durchzuführen. Lösung: Erstellen Sie in jedem Workload-Konto eine IAM role mit einer Vertrauensrichtlinie, die dem Sicherheitskonto (anhand der Konto-ID) erlaubt, die Rolle zu übernehmen. Verknüpfen Sie eine schreibgeschützte Richtlinie (z. B. die von AWS verwaltete Richtlinie SecurityAudit). Das Sicherheitsteam im zentralen Konto verwendet STS AssumeRole, um vorübergehend die Rolle in jedem Workload-Konto zu übernehmen. Dies folgt dem Prinzip der geringsten Berechtigung – in den Workload-Konten werden keine dauerhaften IAM-Benutzer angelegt.

# Trust policy in workload account (allows security account to assume role)
{
  'Version': '2012-10-17',
  'Statement': [{
    'Effect': 'Allow',
    'Principal': {
      'AWS': 'arn:aws:iam::SECURITY_ACCOUNT_ID:root'
    },
    'Action': 'sts:AssumeRole'
  }]
}

# From security account: assume role in workload account
aws sts assume-role \
  --role-arn arn:aws:iam::WORKLOAD_ACCOUNT_ID:role/SecurityAuditRole \
  --role-session-name audit-2024-01

Szenario 9: Aktionen mit SCPs einschränken

Szenario: Ein Unternehmen verwendet AWS Organizations und möchte verhindern, dass ein Konto in einer Nicht-Produktions-OU teure GPU-Instances startet. Lösung: Erstellen Sie eine Service Control Policy (SCP), die ec2:RunInstances für GPU-Instance-Familien (p3, p4, g4, g5) verweigert, und verknüpfen Sie sie mit der Nicht-Produktions-OU. SCPs gelten auch für Root-Benutzer und IAM-Benutzer mit Administratorberechtigungen in den Mitgliedskonten – sie dienen als Leitplanken, die keine Identität im Konto außer Kraft setzen kann. Dadurch werden versehentlich oder böswillig verursachte hohe Ausgaben in Entwicklungs- und Testkonten verhindert.

# SCP to deny GPU instance types in non-prod OU
{
  'Version': '2012-10-17',
  'Statement': [{
    'Sid': 'DenyGPUInstances',
    'Effect': 'Deny',
    'Action': 'ec2:RunInstances',
    'Resource': 'arn:aws:ec2:*:*:instance/*',
    'Condition': {
      'StringLike': {
        'ec2:InstanceType': ['p3.*', 'p4d.*', 'g4.*', 'g5.*']
      }
    }
  }]
}

Szenario 10: Prüfprotokoll für Compliance

Szenario: Ein Finanzdienstleistungsunternehmen muss Prüfern nachweisen, dass alle AWS-API-Aufrufe protokolliert, manipulationssicher gespeichert und 7 Jahre lang aufbewahrt werden. Lösung: Erstellen Sie einen multi-region AWS CloudTrail trail, der Protokolle in einen dedizierten S3-Bucket in einem Protokollierungskonto übermittelt. Aktivieren Sie die Log File Integrity Validation (kryptografische Digest-Dateien, die Manipulationen an Protokollen erkennen). Legen Sie für den Protokollierungs-Bucket eine S3-Object Lock-Richtlinie im Compliance-Modus mit einer Aufbewahrungsfrist von 7 Jahren fest. So wird sichergestellt, dass die Protokolle während der erforderlichen Aufbewahrungsfrist weder gelöscht noch geändert werden können – auch nicht vom Root-Benutzer.

# Create multi-region trail with integrity validation
aws cloudtrail create-trail \
  --name compliance-trail \
  --s3-bucket-name central-audit-logs-123 \
  --is-multi-region-trail \
  --enable-log-file-validation \
  --include-global-service-events

aws cloudtrail start-logging --name compliance-trail

Szenario 11: VPC-Endpunkt für privaten S3-Zugriff

Szenario: EC2-Instances in einer privaten VPC müssen auf S3 zugreifen, ohne dass der Datenverkehr das öffentliche Internet durchläuft. Derzeit wird ein NAT Gateway verwendet, dessen Datenverarbeitungsgebühren hohe Kosten verursachen. Lösung: Erstellen Sie einen S3 Gateway VPC Endpoint. Fügen Sie der Routingtabelle des privaten Subnetzes einen Routeneintrag hinzu, der die S3-Präfixliste auf den Endpunkt verweist. Der Datenverkehr zu S3 bleibt nun vollständig im AWS-Netzwerk-Backbone – weder ein NAT Gateway noch ein Internet-Gateway ist erforderlich. S3 Gateway Endpoints sind kostenlos (anders als Interface Endpoints, die pro Stunde und Availability Zone berechnet werden). Dies verbessert außerdem die Sicherheit, da der Zugriff auf S3 nicht mehr über den Pfad des öffentlichen Internets erfolgt.

# Create S3 Gateway VPC Endpoint
aws ec2 create-vpc-endpoint \
  --vpc-id vpc-abc123 \
  --service-name com.amazonaws.us-east-1.s3 \
  --route-table-ids rtb-private-1a rtb-private-1b

# Result: route table automatically gets a route:
# Destination: pl-63a5400a (S3 prefix list)
# Target: vpce-xyz456 (the Gateway Endpoint)
# EC2 instances now reach S3 privately at no endpoint cost

Schnelltest

Testen Sie Ihr Verständnis der Konzepte aus dieser Lektion für AWS Solutions Architect (SAA-C03).

Lektionsrückblick

In dieser Lektion haben Sie Szenarien zu folgenden Themen bearbeitet: IAM-Rollen und Instance-Profile für den EC2-Zugriff ohne Anmeldeinformationen, Secrets Manager für die automatische Rotation von Datenbank-Anmeldeinformationen, AWS WAF zum Blockieren von Injection-Angriffen ohne Codeänderungen sowie CloudTrail mit S3 Object Lock für manipulationssichere Compliance-Protokolle. Als Nächstes behandeln wir Szenarien für ausfallsichere und hochverfügbare Architekturen.

Häufig gestellte Fragen

Ist die Lektion „Szenarien für sichere Architekturen“ kostenlos?

Ja — der vollständige Text von „Szenarien für sichere Architekturen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des AWS Solutions Architect-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der AWS Solutions Architect-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Szenarien für sichere Architekturen“?

Bearbeiten Sie Szenariofragen zu den geringsten IAM-Rechten, Verschlüsselung, VPC-Isolierung und WAF/Shield, um Ihr Wissen im Sicherheitsbereich zu festigen. Du übst AWS Solutions Architect mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um AWS Solutions Architect zu starten?

Keine Vorkenntnisse erforderlich. AWS Solutions Architect auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Szenarien für sichere Architekturen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser AWS Solutions Architect-Lektion Code schreiben und ausführen?

Ja. Jede AWS Solutions Architect-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Szenarien für sichere Architekturen
  2. Szenarien für resiliente und hochverfügbare Architekturen
  3. Szenarien zu hoher Performance und Kostenoptimierung
  4. Gemischte Mini-Prüfung über alle Bereiche
← Zurück zu AWS Solutions Architect