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 Kundenmasterschlüssel schützen oder einen AWS KMS-Kundenmasterschlüssel mit dem Amazon S3-Verschlüsselungs-Client nutzen, um Ihre Daten clientseitig zu verschlüsseln.

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.

Die Verschlüsselung und den gewünschten Masterschlüssel können Sie über die Amazon S3-Konsole oder -API anfordern. In der Konsole aktivieren Sie einfach das Kontrollkästchen für die Verschlüsselung und wählen Ihren Schlüssel aus der Liste aus. In der Amazon S3-API legen Sie die Verschlüsselung fest und wählen Ihren Schlüssel, indem Sie die Kopfzeile einer GET- oder PUT-Anforderung entsprechend ändern. Weitere Informationen hierzu finden Sie unter Protecting Data Using Server-Side Encryption with AWS KMS-Managed Keys (SSE-KMS).

Sie können einen bestimmten kundenverwalteten Masterschlüssel auswählen oder den AWS-verwalteten Schlüssel übernehmen, der in Ihrem Konto für Amazon S3 hinterlegt ist. 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 kundenverwalteten Masterschlüssel oder dem AWS-verwalteten Masterschlüssel verschlüsselte Kopie dieses 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 AWS-SDK in Ihren Anwendungen nutzen, um Objekte zu verschlüsseln und in Amazon S3 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 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 berechtigt sind. Ist das der Fall, gibt der Service einen neuen Klartext-Datenschlüssel zurück sowie den mit dem Kundenmasterschlüssel verschlüsselten Datenschlüssel. Der 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 Informationen, anhand derer AWS KMS die Datenintegrität überprüft. Wenn für eine Verschlüsselungsoperation ein Verschlüsselungskontext angegeben wird, gibt der Service denselben Verschlüsselungskontext auch für die Entschlüsselungsoperation an. Andernfalls schlägt die Entschlüsselung fehl. 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" },

Weitere Informationen finden Sie unter Verschlüsselungskontext.