AWS Key Management Service
Entwicklerhandbuch

Verwendung von AWS KMS durch Amazon Simple Storage Service (Amazon S3)

In diesem Thema wird beschrieben, wie Sie in Amazon S3-Rechenzentren gespeicherte Daten mithilfe von AWS KMS schützen können. Es gibt zwei Möglichkeiten, AWS KMS mit Amazon S3 zu verwenden: Sie können Ihre Daten per serverseitiger Verschlüsselung mit einem Masterschlüssel schützen oder einen AWS KMS-Kundenmasterschlüssel (Customer Master Key, CMK) mit dem Amazon S3-Verschlüsselungs-Client nutzen, um Ihre Daten clientseitig zu schützen.

Serverseitige Verschlüsselung: Verwenden von SSE-KMS

Zum Schutz von in Amazon S3 gespeicherten Daten stehen drei unterschiedliche Modi serverseitiger Verschlüsselung zur Verfügung: SSE-S3, SSE-C und SSE-KMS.

Im weiteren Verlauf dieses Themas erläutern wir Ihnen, wie Sie Ihre Daten mithilfe der serverseitigen Verschlüsselung auf Basis AWS KMS-verwalteter Schlüssel (SSE-KMS) schützen können.

Sie können die Verschlüsselung anfordern und einen Kundenmasterschlüssel ( Customer Master Key, CMK) mithilfe der Amazon S3-Konsole oder der API auswählen. In der Konsole aktivieren Sie einfach das Kontrollkästchen für die Verschlüsselung und wählen Ihren CMK aus der Liste aus. In der -API legen Sie die Verschlüsselung fest und wählen Ihren CMK, indem Sie die Kopfzeile einer GET- oder PUT-Anforderung entsprechend ändern. Weitere Informationen hierzu finden Sie unter Daten schützen durch serverseitige Verschlüsselung mit verwalteten AWS KMS-Schlüsseln (SSE-KMS).

Sie können einen kundenverwalteten CMK oder den AWS-verwalteten CMK für Amazon S3 in Ihrem Konto auswählen. Wenn Sie sich für eine Verschlüsselung Ihrer Daten entscheiden, führen AWS KMS und Amazon S3 die folgenden Aktionen durch:

  • Amazon S3 fordert einen Klartext-Datenschlüssel und eine mit dem angegebenen CMK verschlüsselte Kopie des Schlüssels an.

  • AWS KMS erstellt einen Datenschlüssel, verschlüsselt diesen Datenschlüssel mithilfe des Masterschlüssels und sendet sowohl den Klartext-Datenschlüssel als auch den verschlüsselten Datenschlüssel an Amazon S3 zurück.

  • Amazon S3 verschlüsselt die Daten mit dem Datenschlüssel und entfernt anschließend den Klartextschlüssel schnellstmöglich aus dem Arbeitsspeicher.

  • Amazon S3 speichert den verschlüsselten Datenschlüssel im Metadatenformat zusammen mit den verschlüsselten Daten.

Wenn Sie eine Entschlüsselung Ihrer Daten anfordern, führen Amazon S3 und AWS KMS die folgenden Aktionen durch:

  • Amazon S3 sendet den verschlüsselten Datenschlüssel an AWS KMS.

  • AWS KMS entschlüsselt den Schlüssel mithilfe des passenden Masterschlüssels und sendet den Klartextschlüssel an Amazon S3 zurück.

  • Amazon S3 entschlüsselt den Chiffretext und entfernt den Klartext-Datenschlüssel schnellstmöglich aus dem Arbeitsspeicher.

Verwenden des Amazon S3-Verschlüsselungs-Clients

Sie können den Amazon S3-Verschlüsselungs-Client aus dem Amazon S3-SDK in Ihrer eigenen Anwendung nutzen, um Objekte zu verschlüsseln und in AWS hochzuladen. So können Sie Ihre Daten lokal verschlüsseln und gewährleisten, dass sie während der Übertragung an den Amazon S3-Service geschützt sind. Der Amazon S3-Service empfängt die verschlüsselten Daten lediglich und spielt keine Rolle bei ihrer Ver- oder Entschlüsselung.

Der Amazon S3-Verschlüsselungs-Client verschlüsselt das Objekt mittels Envelope-Verschlüsselung. Der Client ruft AWS KMS im Rahmen des Verschlüsselungsaufrufs auf, der gesendet wird, wenn Sie die Daten an den Client übergeben. AWS KMS überprüft, ob Sie zur Verwendung des Kundenmasterschlüssels (Customer Master Key, CMK) berechtigt sind. Ist das der Fall, gibt der Service einen neuen Klartext-Datenschlüssel sowie den mit dem CMK verschlüsselten Datenschlüssel zurück. Der Amazon S3-Verschlüsselungs-Client verschlüsselt die Daten mithilfe des Klartextschlüssels und löscht diesen Schlüssel anschließend aus dem Arbeitsspeicher. Der verschlüsselte Datenschlüssel wird an Amazon S3 gesendet, wo er gemeinsam mit den verschlüsselten Daten gespeichert wird.

Verschlüsselungskontext

Jeder in AWS KMS integrierte Service gibt einen Verschlüsselungskontext an, wenn Daten angefordert, verschlüsselt und entschlüsselt werden. Der Verschlüsselungskontext enthält zusätzliche authentifizierte Daten (AAD), anhand derer AWS KMS die Datenintegrität überprüft. Wenn für eine Verschlüsselungsoperation ein Verschlüsselungskontext angegeben wird, muss der Amazon S3 denselben Verschlüsselungskontext auch für die Entschlüsselungsoperation angeben. Andernfalls schlägt die Entschlüsselung fehlschlägt. Wenn Sie für die Verschlüsselung SSE-KMS oder den Amazon S3-Verschlüsselungs-Client nutzen, gibt Amazon S3 den Bucket-Pfad als Verschlüsselungskontext an. Der Verschlüsselungskontext im Feld requestParameters einer CloudTrail-Protokolldatei sieht in etwa wie folgt aus:

"encryptionContext": { "aws:s3:arn": "arn:aws:s3:::bucket_name/file_name" },