Zum Inhalt springen

Services, Wiki-Artikel, Blog-Beiträge und Glossar-Einträge durchsuchen

↑↓NavigierenEnterÖffnenESCSchließen

Cloud Key Management: AWS KMS, Azure Key Vault und HashiCorp Vault im Vergleich

Cloud Key Management Services (KMS) im Vergleich: AWS KMS, Azure Key Vault und HashiCorp Vault mit Envelope Encryption, HSM, BYOK und Compliance.

Inhaltsverzeichnis (5 Abschnitte)

Cloud Key Management ist eine der kritischsten Sicherheitsdisziplinen in modernen Cloud-Architekturen. Falsch konfiguriertes Key Management fuehrt zu den weitreichendsten Datenpannen - nicht weil Verschluesselung gebrochen wurde, sondern weil Schluessel falsch verwaltet wurden. Dieser Artikel erklaert die wichtigsten Cloud-KMS-Loesungen und Best Practices.

Grundkonzepte

Key-Hierarchie und Envelope Encryption

Cloud Key Management basiert auf zwei zentralen Schluesseltypen:

Customer Master Key (CMK): Verbleibt immer im KMS und verlaesst ihn nie. Wird genutzt, um Data Encryption Keys zu verschluesseln. Kann auf einem HSM (Hardware Security Module) gesichert sein.

Data Encryption Key (DEK): Verschluesselt die eigentlichen Daten (symmetrisch, AES-256). Wird selbst mit dem CMK verschluesselt (Envelope Encryption). Der Plaintext-DEK existiert nur kurz im Speicher und wird dann verworfen. Der verschluesselte DEK wird neben den Daten gespeichert.

Ablauf der Envelope Encryption

  1. DEK generieren (zufaellig, 256-Bit)
  2. Daten mit DEK verschluesseln: Encrypted_Data = AES256(Data, DEK)
  3. DEK mit CMK verschluesseln: Encrypted_DEK = KMS.Encrypt(DEK, CMK)
  4. Speichern: Encrypted_Data + Encrypted_DEK zusammen
  5. DEK (Plaintext) aus Speicher loeschen

Zum Entschluesseln wird der Vorgang umgekehrt: Der verschluesselte DEK wird ueber den KMS entschluesselt, die Daten damit wiederhergestellt und der DEK erneut verworfen.

Der Vorteil: Der CMK verlaesst den KMS nie und bleibt sicher im HSM. KMS-Aufrufe fallen nur fuer die DEK-Ver- und Entschluesselung an, waehrend die Bulk-Daten direkt verschluesselt werden - ohne KMS-Overhead pro Byte.

AWS KMS

AWS Key Management Service unterscheidet drei Schluesseltypen:

SchluesseltypBeschreibungVerwaltung
AWS-Managed KeyAutomatisch von AWS erstellt und rotiert (z.B. aws/s3, aws/ebs)AWS
Customer-Managed Key (CMK)Vom Kunden erstellt und kontrolliertKunde
AWS-Owned KeyAWS-intern, fuer Kunden nicht sichtbarAWS

CMK erstellen

# CMK erstellen (AES-256-GCM)
aws kms create-key \
  --description "Produktion-Datenbankschluessel" \
  --key-usage ENCRYPT_DECRYPT \
  --key-spec SYMMETRIC_DEFAULT

# Multi-Region Key (fuer DR-Szenarien)
aws kms create-key --multi-region \
  --description "Multi-Region-Key fuer globale App"

Fuer FIPS 140-2 Level 3 kann ein CloudHSM-Cluster als Custom Key Store verwendet werden: --origin AWS_CLOUDHSM.

Key Policy (Zugriffskontrolle)

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Key Admin",
      "Effect": "Allow",
      "Principal": {"AWS": "arn:aws:iam::123456789:role/KeyAdminRole"},
      "Action": ["kms:Create*", "kms:Describe*", "kms:Delete*",
                 "kms:Enable*", "kms:Disable*", "kms:RotateKey"],
      "Resource": "*"
    },
    {
      "Sid": "Key Usage",
      "Effect": "Allow",
      "Principal": {"AWS": "arn:aws:iam::123456789:role/AppRole"},
      "Action": ["kms:Encrypt", "kms:Decrypt",
                 "kms:GenerateDataKey", "kms:ReEncrypt*"],
      "Resource": "*"
    }
  ]
}

Der Root-Account sollte immer in der Key-Policy enthalten sein, um den Kontozugang zu sichern.

Automatische Key-Rotation und BYOK

Automatische Rotation (365 Tage) wird per aws kms enable-key-rotation --key-id alias/prod-db-key aktiviert. AWS rotiert jaehrlich und behaelt alte Schluesselversionen fuer die Entschluesselung historischer Daten.

Fuer BYOK (Bring Your Own Key) wird ein Wrapping-Key von AWS angefordert, der eigene Schluessel damit verschluesselt und anschliessend importiert. So behaelt der Kunde die Kontrolle ueber das Schluesselmaterial.

S3-Verschluesselung mit CMK erzwingen

{
  "Version": "2012-10-17",
  "Statement": [{
    "Sid": "DenyUnencryptedObjectUploads",
    "Effect": "Deny",
    "Principal": "*",
    "Action": "s3:PutObject",
    "Resource": "arn:aws:s3:::my-bucket/*",
    "Condition": {
      "StringNotEquals": {
        "s3:x-amz-server-side-encryption": "aws:kms"
      }
    }
  }]
}

Azure Key Vault

Azure Key Vault verwaltet drei Objekt-Typen: Keys (kryptografische Schluessel), Secrets (Passwoerter, API-Keys, Connection Strings) und Certificates (TLS/SSL-Zertifikate mit automatischer Erneuerung). Der Standard-Tier bietet Software-Keys, der Premium-Tier HSM-gesicherte Keys (FIPS 140-2 Level 2/3).

Key Vault erstellen (Terraform)

resource "azurerm_key_vault" "prod" {
  name                = "kv-prod-app-westeu"
  resource_group_name = azurerm_resource_group.main.name
  location            = "westeurope"
  tenant_id           = data.azurerm_client_config.current.tenant_id
  sku_name            = "premium"

  soft_delete_retention_days = 90
  purge_protection_enabled   = true  # Verhindert Datenverlust

  network_acls {
    bypass         = "AzureServices"
    default_action = "Deny"
    ip_rules       = ["10.0.0.0/8"]
  }
}

resource "azurerm_key_vault_access_policy" "app" {
  key_vault_id = azurerm_key_vault.prod.id
  tenant_id    = data.azurerm_client_config.current.tenant_id
  object_id    = azurerm_user_assigned_identity.app.principal_id

  key_permissions    = ["Get", "WrapKey", "UnwrapKey"]
  secret_permissions = ["Get", "List"]
}

Secret-Zugriff aus der Anwendung

from azure.identity import ManagedIdentityCredential
from azure.keyvault.secrets import SecretClient

credential = ManagedIdentityCredential()
vault_url = "https://kv-prod-app-westeu.vault.azure.net/"
client = SecretClient(vault_url=vault_url, credential=credential)

db_password = client.get_secret("database-password").value
api_key = client.get_secret("external-api-key").value

Zertifikate koennen ueber Key Vault automatisch erstellt, erneuert und deployt werden - mit Anbindung an Issuer wie DigiCert oder Let's Encrypt.

HashiCorp Vault

HashiCorp Vault ist die plattformunabhaengige Alternative: On-Premises, AWS, Azure und GCP werden gleichermassen unterstuetzt. Die groessten Vorteile gegenueber nativen Cloud-KMS-Diensten sind Dynamic Secrets (Credentials werden on-demand generiert und verfallen automatisch) und das Lease-System.

Dynamic Secrets (Datenbank)

Statt statischer Datenbank-Passwoerter generiert Vault temporaere Credentials mit begrenzter Lebensdauer:

# PostgreSQL-Plugin aktivieren
vault secrets enable database

vault write database/config/postgres \
  plugin_name=postgresql-database-plugin \
  connection_url="postgresql://{{username}}:{{password}}@db:5432/appdb" \
  username="vault-admin" password="admin-password"

# Role: generiert temporaeren DB-User (gueltig fuer 1 Stunde)
vault write database/roles/app-role \
  db_name=postgres \
  creation_statements="CREATE ROLE \"{{name}}\" WITH LOGIN PASSWORD '{{password}}' VALID UNTIL '{{expiration}}'; GRANT SELECT ON ALL TABLES IN SCHEMA public TO \"{{name}}\";" \
  default_ttl="1h" \
  max_ttl="24h"

# App ruft Credentials ab
vault read database/creds/app-role

Nach einer Stunde sind die Credentials ungueltig. Ein Angreifer mit gestohlenem Credential hat damit nur ein kurzes Zeitfenster.

Transit Encryption (Encryption-as-a-Service)

Vault kann als zentraler Verschluesselungsdienst genutzt werden, ohne dass die Anwendung selbst Schluessel verwalten muss:

vault secrets enable transit
vault write transit/keys/myapp-key type=aes256-gcm96

# Verschluesseln
vault write transit/encrypt/myapp-key \
  plaintext=$(echo "sensitiver Text" | base64)

# Entschluesseln
vault write transit/decrypt/myapp-key \
  ciphertext="vault:v1:...encrypted..."

Fuer Kubernetes-Umgebungen authentifiziert sich die App ueber den Service Account - ohne statische Tokens oder Credentials.

Key-Management Best Practices

Key-Rotation

Automatische Rotation sollte mindestens jaehrlich erfolgen. Bei Verdacht auf Kompromittierung ist eine sofortige On-Demand-Rotation noetig. Wichtig: Rotation bedeutet nicht automatisch die Neuverschluesselung aller Daten - dafuer ist eine separate DEK Re-Encryption erforderlich. Altes Schluesselmaterial muss fuer die Entschluesselung historischer Daten aufbewahrt werden.

Least Privilege fuer Keys

RolleBerechtigungen
EntwicklungKeine Produktions-Keys
Read-OnlyNur Entschluesselung, kein Key-Management
AuditNur Describe/List, kein Encrypt/Decrypt
Break-GlassSeparater Admin-Key fuer Notfaelle (MFA-geschuetzt)

BYOK vs. HYOK

BYOK (Bring Your Own Key): Eigenes Schluesselmaterial wird in den Cloud-KMS importiert. Das bietet mehr Kontrolle und Auditierbarkeit, allerdings hat der Cloud-Provider weiterhin HSM-Zugang. Empfohlen fuer regulatorische Compliance-Anforderungen.

HYOK (Hold Your Own Key / Double Encryption): Der Schluessel verbleibt on-premises im eigenen HSM. Der Cloud-Provider kann die Daten niemals entschluesseln. Dieses Modell eignet sich fuer sehr hohe Anforderungen (Behoerden, Staatsgeheimnisse), bringt aber Nachteile bei Latenz, HSM-Betrieb und Cloud-Auto-Scaling mit sich.

Compliance-Anforderungen

StandardAnforderung
FIPS 140-2 Level 2Physischer Schutz (AWS KMS Standard, Azure Key Vault Premium)
FIPS 140-2 Level 3Tamper-Evidence, kritische Sicherheitsparameter (AWS CloudHSM)
BSI TR-02102RSA >= 3000-Bit (bis 2030), empfohlen 4096-Bit; AES-256 im GCM-Modus

Monitoring und Alerting

Alle KMS-API-Calls sollten geloggt werden (AWS CloudTrail, Azure Monitor Diagnostic Logs). Alerts empfehlen sich fuer unerwartete Entschluesselungsanfragen, Key-Management-Operationen ausserhalb der Geschaeftszeiten und Deny-Responses auf Key-Zugriffe - letztere deuten auf Konfigurationsfehler oder Angriffsversuche hin.


Unsicher beim Key Management? AWARE7 unterstuetzt beim Aufbau einer sicheren Schluesselinfrastruktur: von der Architektur-Beratung ueber Penetrationstests bis zur ISO-27001-Zertifizierung.

ISO 27001 Beratung anfragen | Cloud-Penetrationstest beauftragen | Sicherheitsberatung entdecken

Fragen zu diesem Thema?

Unsere Experten beraten Sie kostenlos und unverbindlich.

Erstberatung

Über den Autor

Chris Wojzechowski
Chris Wojzechowski

Geschäftsführender Gesellschafter

E-Mail

Geschäftsführender Gesellschafter der AWARE7 GmbH mit langjähriger Expertise in Informationssicherheit, Penetrationstesting und IT-Risikomanagement. Absolvent des Masterstudiengangs Internet-Sicherheit an der Westfälischen Hochschule (if(is), Prof. Norbert Pohlmann). Bestseller-Autor im Wiley-VCH Verlag und Lehrbeauftragter der ASW-Akademie. Einschätzungen zu Cybersecurity und digitaler Souveränität erschienen u.a. in Welt am Sonntag, WDR, Deutschlandfunk und Handelsblatt.

10 Publikationen
  • Einsatz von elektronischer Verschlüsselung - Hemmnisse für die Wirtschaft (2018)
  • Kompass IT-Verschlüsselung - Orientierungshilfen für KMU (2018)
  • IT Security Day 2025 - Live Hacking: KI in der Cybersicherheit (2025)
  • Live Hacking - Credential Stuffing: Finanzrisiken jenseits Ransomware (2025)
  • Keynote: Live Hacking Show - Ein Blick in die Welt der Cyberkriminalität (2025)
  • Analyse von Angriffsflächen bei Shared-Hosting-Anbietern (2024)
  • Gänsehaut garantiert: Die schaurigsten Funde aus dem Leben eines Pentesters (2022)
  • IT Security Zertifizierungen - CISSP, T.I.S.P. & Co (Live-Webinar) (2023)
  • Sicherheitsforum Online-Banking - Live Hacking (2021)
  • Nipster im Netz und das Ende der Kreidezeit (2017)
IT-Grundschutz-Praktiker (TÜV) IT Risk Manager (DGI) § 8a BSIG Prüfverfahrenskompetenz Ausbilderprüfung (IHK)
Dieser Artikel wurde zuletzt am 04.03.2026 bearbeitet. Verantwortlich: Chris Wojzechowski, Geschäftsführender Gesellschafter bei AWARE7 GmbH. Lizenz: CC BY 4.0 - freie Nutzung mit Namensnennung: „AWARE7 GmbH, https://a7.de