0Pricing
Cloud & IT Cert Prep · Lektion

KMS, ACM und Verschlüsselungsmuster

Verwalten Sie Verschlüsselungsschlüssel mit AWS KMS, stellen Sie TLS-Zertifikate mit ACM bereit und rotieren Sie sie, und wählen Sie zwischen clientseitiger, serverseitiger und Transportverschlüsselung.

KMS, ACM und Verschlüsselungsmuster ist eine kostenlose Cloud & IT Cert Prep-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 Cloud & IT Cert Prep-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cloud & IT Cert Prep-Kurs umfasst insgesamt 4 Lektionen.

Verschlüsselung in AWS: Überblick

Verschlüsselung ist eine grundlegende Sicherheitsmaßnahme, die die Vertraulichkeit von Daten schützt, selbst wenn Speichermedien kompromittiert werden oder auf anderem Weg Zugriff erlangt wird. AWS bietet Verschlüsselung für Daten at rest (gespeichert in Datenbanken, S3 und EBS) und in transit (bei der Übertragung über Netzwerke). Wichtige Services: AWS Key Management Service (KMS) verwaltet Verschlüsselungsschlüssel für die Verschlüsselung ruhender Daten. AWS Certificate Manager (ACM) stellt TLS-Zertifikate für die Verschlüsselung während der Übertragung bereit und verwaltet sie. Es ist entscheidend, zu verstehen, wann und wie die einzelnen Services eingesetzt werden – insbesondere für den Bereich Security Architecture von SAA-C03.

# Encryption coverage on AWS:
# At rest (KMS):
#   S3, EBS, RDS, DynamoDB, EFS, SQS,
#   Lambda env vars, Secrets Manager, SSM Parameter Store

# In transit (ACM/TLS):
#   ALB listeners (HTTPS), API Gateway, CloudFront,
#   Direct Connect, VPN, inter-service communication

# Both:
#   S3 Server-Side Encryption + HTTPS only policy

AWS KMS: Key Management Service

AWS KMS ist ein vollständig verwalteter Service zum Erstellen und Kontrollieren von Verschlüsselungsschlüsseln. KMS verwendet Hardware Security Modules (HSMs) zum Schutz der Schlüssel – das Schlüsselmaterial verlässt das HSM niemals unverschlüsselt. KMS lässt sich für die serverseitige Verschlüsselung in die meisten AWS-Services integrieren. Schlüsseltypen: AWS Managed Keys (kostenlos, automatische jährliche Rotation, keine direkte Kontrolle möglich), Customer Managed Keys (CMK) (1 $/Monat pro Schlüssel; Sie kontrollieren Rotation, Schlüsselrichtlinie und Löschung). Der Custom Key Store verwendet Ihren eigenen CloudHSM-Cluster für Compliance-Anforderungen, die dedizierte HSMs vorschreiben.

# Create a Customer Managed Key (CMK)
aws kms create-key \
  --description 'Production database encryption key' \
  --key-usage ENCRYPT_DECRYPT \
  --origin AWS_KMS \
  --tags TagKey=Purpose,TagValue=RDS-Encryption

# Create an alias for the key
aws kms create-alias \
  --alias-name alias/prod-db-key \
  --target-key-id arn:aws:kms:us-east-1:123:key/abc-def

# CMK costs: $1/month + $0.03 per 10,000 API calls

KMS-Schlüsselrichtlinien und Grants

Jeder KMS-Schlüssel verfügt über eine key policy – eine ressourcenbasierte Richtlinie, die festlegt, wer den Schlüssel verwenden und verwalten darf. Im Gegensatz zu IAM-Richtlinien, die identitätsbasiert sind, sind Schlüsselrichtlinien erforderlich: Die Schlüsselrichtlinie muss den Zugriff ausdrücklich gewähren, damit IAM-Richtlinien wirksam werden. Bewährte Praxis: Trennen Sie die Schlüsselverwaltung (wer den Schlüssel verwalten darf) von der Schlüsselnutzung (welche Services und Rollen verschlüsseln und entschlüsseln dürfen). Verwenden Sie key grants für vorübergehend delegierten Zugriff – gewähren Sie beispielsweise einem EMR-Cluster für einen Auftrag vorübergehend die Nutzung eines KMS-Schlüssels, ohne die Schlüsselrichtlinie zu ändern.

# KMS key policy: grant RDS and admin access
{
  'Statement': [
    {
      'Sid': 'Enable root account full access',
      'Principal': {'AWS': 'arn:aws:iam::123:root'},
      'Action': 'kms:*',
      'Effect': 'Allow'
    },
    {
      'Sid': 'Allow RDS to use this key',
      'Principal': {'Service': 'rds.amazonaws.com'},
      'Action': ['kms:Encrypt','kms:Decrypt','kms:GenerateDataKey'],
      'Effect': 'Allow'
    }
  ]
}

Envelope Encryption mit KMS

KMS verwendet Envelope Encryption, um große Datenmengen effizient zu schützen. Mit einem KMS-Schlüssel können Sie nicht mehr als 4 KB direkt verschlüsseln. Stattdessen: KMS generiert einen Data Encryption Key (DEK) – einen zufälligen Schlüssel, mit dem Ihre eigentlichen Daten lokal verschlüsselt werden. Anschließend wird der DEK mit Ihrem KMS-Schlüssel (dem Key Encryption Key) verschlüsselt. Sie speichern den verschlüsselten DEK zusammen mit den verschlüsselten Daten. Zum Entschlüsseln rufen Sie zunächst KMS auf, um den DEK zu entschlüsseln, und verwenden anschließend den Klartext-DEK lokal, um die Daten zu entschlüsseln. So funktionieren die Verschlüsselung von S3, EBS und RDS im Hintergrund.

# Generate a Data Key (for envelope encryption)
aws kms generate-data-key \
  --key-id alias/my-key \
  --key-spec AES_256

# Response contains:
# Plaintext: base64-encoded DEK (use to encrypt data locally)
# CiphertextBlob: KMS-encrypted DEK (store alongside data)

# To decrypt:
# 1. Call kms:Decrypt(CiphertextBlob) -> plaintext DEK
# 2. Use plaintext DEK to decrypt data locally
# 3. Zeroize plaintext DEK from memory
aws kms decrypt --ciphertext-blob fileb://encrypted-dek.bin

KMS-Schlüsselrotation

Schlüsselrotation ist eine bewährte Sicherheitsmaßnahme, bei der das kryptografische Schlüsselmaterial regelmäßig ersetzt wird. Dadurch wird das Zeitfenster begrenzt, in dem ein kompromittierter Schlüssel missbraucht werden kann. Für Customer Managed Keys können Sie die automatische jährliche Rotation aktivieren. KMS generiert neues Schlüsselmaterial und verwendet es für neue Verschlüsselungsvorgänge, behält das alte Schlüsselmaterial jedoch bei, um vorhandene Daten zu entschlüsseln. AWS Managed Keys werden automatisch jedes Jahr rotiert. Importiertes Schlüsselmaterial unterstützt KEINE automatische Rotation (Sie müssen die Rotation manuell durchführen). Nach der Rotation verwenden neue KMS-Operationen automatisch das neue Schlüsselmaterial, ohne dass Änderungen an der Anwendung erforderlich sind.

# Enable automatic annual key rotation
aws kms enable-key-rotation \
  --key-id alias/prod-db-key

# Verify rotation is enabled
aws kms get-key-rotation-status \
  --key-id alias/prod-db-key

# Manual rotation (for imported key material):
# 1. Create a new CMK
# 2. Update all services to use new key
# 3. Re-encrypt existing data with new key
# 4. Schedule old key for deletion (minimum 7-day waiting period)

Optionen für serverseitige S3-Verschlüsselung

S3 unterstützt drei Optionen für die serverseitige Verschlüsselung: SSE-S3 – S3 verwaltet die Schlüssel mit AES-256; kostenlos und mit minimaler Kontrolle. SSE-KMS – verwendet einen KMS-Schlüssel (AWS Managed Key oder CMK), bietet eine Prüfspur der Schlüsselverwendung in CloudTrail, unterstützt Schlüsselrichtlinien und verursacht Kosten pro KMS-API-Aufruf. SSE-C – Sie stellen das Schlüsselmaterial bei jeder Anfrage bereit und verwalten es selbst; S3 speichert den Schlüssel niemals. Verwenden Sie SSE-KMS, wenn Sie prüfen müssen, wer den Schlüssel wann verwendet hat. Verwenden Sie SSE-S3 für Daten mit geringer Sensibilität, bei denen Einfachheit und Kosten entscheidend sind. Erzwingen Sie die Verschlüsselung mit einer Bucket Policy, die PutObject-Anfragen ohne Verschlüsselung ablehnt.

# Enforce SSE-KMS on all new S3 objects
aws s3api put-bucket-policy \
  --bucket my-secure-bucket \
  --policy '{
    "Statement": [{
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::my-secure-bucket/*",
      "Condition": {
        "StringNotEquals": {
          "s3:x-amz-server-side-encryption": "aws:kms"
        }
      }
    }]
  }'

# Set default encryption for bucket
aws s3api put-bucket-encryption \
  --bucket my-secure-bucket \
  --server-side-encryption-configuration '{"Rules":[{"ApplyServerSideEncryptionByDefault":{"SSEAlgorithm":"aws:kms","KMSMasterKeyID":"alias/my-key"}}]}'

AWS Certificate Manager (ACM)

AWS Certificate Manager (ACM) stellt SSL/TLS-Zertifikate für AWS-Services kostenlos bereit, verwaltet sie und erneuert sie automatisch. ACM-Zertifikate können mit ALB, NLB, CloudFront, API Gateway und AppSync verwendet werden. ACM verwaltet den gesamten Zertifikatslebenszyklus automatisch: Die Zertifikate werden 60 Tage vor Ablauf erneuert und die Erneuerung transparent bereitgestellt. Sie können Zertifikate für Domains anfordern, deren Inhaberschaft Sie besitzen (validiert über DNS oder E-Mail), oder Zertifikate von Drittanbietern importieren. ACM-Zertifikate können NICHT heruntergeladen werden – sie sind an den AWS-Service gebunden, mit dem sie verknüpft sind.

# Request a public ACM certificate
aws acm request-certificate \
  --domain-name app.example.com \
  --subject-alternative-names '*.example.com' \
  --validation-method DNS

# ACM returns a CNAME record to add to Route 53
# Add the CNAME -> ACM validates domain ownership
# Certificate is issued and auto-renews annually

# Attach to ALB listener (HTTPS:443)
aws elbv2 create-listener \
  --load-balancer-arn <ALB-ARN> \
  --protocol HTTPS --port 443 \
  --certificates CertificateArn=arn:aws:acm:us-east-1:123:certificate/abc \
  --default-actions Type=forward,TargetGroupArn=<TG-ARN>

ACM Private Certificate Authority

ACM Private CA (Zertifizierungsstelle) ermöglicht Ihnen, eine vollständig verwaltete, private CA-Hierarchie zum Ausstellen von Zertifikaten für interne Ressourcen zu erstellen – EC2-Instances, Container, interne APIs und IoT-Geräte. Anders als öffentliche ACM-Zertifikate (für internetseitig erreichbare Services) können private CA-Zertifikate für beliebige interne Hostnamen oder IP-Adressen ausgestellt werden. Verwenden Sie Private CA für: gegenseitiges TLS (mTLS) zwischen Microservices, zertifikatsbasierte Authentifizierung für VPNs und Compliance-Anforderungen für eine interne PKI. Private CA kostet 400 $ pro Monat für die CA sowie 0,75 $ pro ausgestelltem Zertifikat.

# Create ACM Private Certificate Authority
aws acm-pca create-certificate-authority \
  --certificate-authority-type ROOT \
  --certificate-authority-configuration '{
    "KeyAlgorithm": "RSA_2048",
    "SigningAlgorithm": "SHA256WITHRSA",
    "Subject": {
      "Country": "US",
      "Organization": "Example Corp",
      "CommonName": "Example Corp Internal CA"
    }
  }'

# Issue certificate from private CA
aws acm request-certificate \
  --domain-name internal-service.example.internal \
  --certificate-authority-arn arn:aws:acm-pca:us-east-1:123:certificate-authority/xxx

EBS- und RDS-Verschlüsselung

Aktivieren Sie die Verschlüsselung von EBS-Volumes beim Erstellen des Volumes (oder kopieren Sie ein vorhandenes Volume mit aktivierter Verschlüsselung). Alle Daten auf dem Volume, einschließlich Snapshots, werden mit dem von Ihnen angegebenen KMS-Schlüssel verschlüsselt. Die EBS-Verschlüsselung ist für das Betriebssystem transparent – Änderungen an Anwendungen sind nicht erforderlich. Aktivieren Sie die RDS-Verschlüsselung beim Erstellen der DB-Instance. Eine vorhandene, unverschlüsselte RDS-Instance können Sie nicht direkt verschlüsseln. Als Alternative erstellen Sie aus einer unverschlüsselten Instance einen verschlüsselten Snapshot und stellen daraus eine neue verschlüsselte Instance wieder her. Verschlüsselte EBS- und RDS-Snapshots bleiben auch beim Kopieren verschlüsselt.

# Enable account-level EBS default encryption
aws ec2 enable-ebs-encryption-by-default
aws ec2 modify-ebs-default-kms-key-id \
  --kms-key-id alias/prod-ebs-key

# Encrypt an existing unencrypted RDS instance:
# 1. Create unencrypted snapshot
aws rds create-db-snapshot \
  --db-instance-identifier mydb \
  --db-snapshot-identifier mydb-plain-snapshot

# 2. Copy snapshot with encryption
aws rds copy-db-snapshot \
  --source-db-snapshot-identifier mydb-plain-snapshot \
  --target-db-snapshot-identifier mydb-encrypted-snapshot \
  --kms-key-id alias/prod-db-key

Clientseitige und serverseitige Verschlüsselung

Für die SAA-C03-Prüfung ist es wichtig, den Unterschied zwischen serverseitiger und clientseitiger Verschlüsselung zu verstehen. Serverseitige Verschlüsselung: AWS verschlüsselt die Daten nach dem Empfang und entschlüsselt sie vor der Auslieferung – zwischen Ihrer Anwendung und AWS liegen die Daten im Klartext vor. Clientseitige Verschlüsselung: Sie verschlüsseln die Daten, bevor Sie sie an AWS senden – AWS speichert ausschließlich Chiffretext und sieht den Klartext niemals. Verwenden Sie clientseitige Verschlüsselung für besonders schützenswerte Daten, wenn Sie dem Cloud-Anbieter den Umgang mit Klartext nicht anvertrauen können, etwa bei Gesundheitsdaten oder Finanzdaten unter strengen gesetzlichen Auflagen.

# Client-side encryption with AWS Encryption SDK
# (conceptual Python example)

# 1. Application encrypts data locally using KMS DEK
# from aws_encryption_sdk import KmsKeyProvider, encrypt

# key_provider = KmsKeyProvider(key_ids=['alias/my-key'])
# ciphertext, _ = encrypt(
#     source=b'Sensitive patient data',
#     key_provider=key_provider
# )

# 2. Send ciphertext to S3
# s3.put_object(Bucket='hipaa-data', Key='record.enc', Body=ciphertext)

# AWS only stores ciphertext - cannot decrypt without your key policy

KMS-Zugriff über AWS-Konten hinweg

KMS-Schlüssel können für kontoübergreifende Verschlüsselungsszenarien für mehrere AWS-Konten freigegeben werden. Wenn beispielsweise die Anwendung von Account A verschlüsselte Daten in einen S3-Bucket schreibt, der Account B gehört, muss der KMS-Schlüssel von Account A dem Principal von Account B die Verwendung des Schlüssels erlauben. Konfigurieren Sie die KMS-Schlüsselrichtlinie in Account A, um kontoübergreifenden Zugriff zu gewähren, und erstellen Sie anschließend in Account B eine IAM-Richtlinie, die der Rolle die Verwendung des Schlüssels von Account A erlaubt. Dieses Muster ist in Architekturen für die gemeinsame Datennutzung und in Multi-Account-Architekturen üblich, in denen ein zentrales Konto die Verschlüsselungsschlüssel verwaltet.

# KMS key policy: allow cross-account access
# (in Account A's key policy)
{
  'Sid': 'Allow Account B to use this key',
  'Effect': 'Allow',
  'Principal': {
    'AWS': 'arn:aws:iam::999999999999:root'
  },
  'Action': [
    'kms:Encrypt',
    'kms:Decrypt',
    'kms:ReEncrypt*',
    'kms:GenerateDataKey*',
    'kms:DescribeKey'
  ],
  'Resource': '*'
}

# Account B IAM policy also needed to allow the role to use it

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 gelernt: KMS verwaltet Verschlüsselungsschlüssel mit HSM-Schutz und unterstützt CMKs für eine detaillierte Zugriffskontrolle und Prüfprotokolle, ACM stellt TLS-Zertifikate für AWS-Services kostenlos bereit und erneuert sie automatisch und Verschlüsselung kann serverseitig (KMS) oder clientseitig angewendet werden, wobei die serverseitige Verschlüsselung das häufigste Muster für AWS-native Workloads ist. Erzwingen Sie die Verschlüsselung mit Bucket-Richtlinien, die unverschlüsselte Vorgänge ablehnen. Als Nächstes sehen wir uns GuardDuty, Inspector und Macie an.

Häufig gestellte Fragen

Ist die Lektion „KMS, ACM und Verschlüsselungsmuster“ kostenlos?

Ja — der vollständige Text von „KMS, ACM und Verschlüsselungsmuster“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cloud & IT Cert Prep-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cloud & IT Cert Prep-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „KMS, ACM und Verschlüsselungsmuster“?

Verwalten Sie Verschlüsselungsschlüssel mit AWS KMS, stellen Sie TLS-Zertifikate mit ACM bereit und rotieren Sie sie, und wählen Sie zwischen clientseitiger, serverseitiger und Transportverschlüsselu… Du übst Cloud & IT Cert Prep 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 Cloud & IT Cert Prep zu starten?

Keine Vorkenntnisse erforderlich. Cloud & IT Cert Prep 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 „KMS, ACM und Verschlüsselungsmuster“?

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 Cloud & IT Cert Prep-Lektion Code schreiben und ausführen?

Ja. Jede Cloud & IT Cert Prep-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. KMS, ACM und Verschlüsselungsmuster
  2. GuardDuty, Inspector und Macie
  3. Secrets Manager und Parameter Store
  4. WAF, Shield und Network Firewall
← Zurück zu Cloud & IT Cert Prep