Angeben der serverseitigen Verschlüsselung mit AWS KMS (SSE-KMS) für neue Objekt-Uploads in Verzeichnis-Buckets - Amazon Simple Storage Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Angeben der serverseitigen Verschlüsselung mit AWS KMS (SSE-KMS) für neue Objekt-Uploads in Verzeichnis-Buckets

Für Verzeichnis-Buckets können Sie zur Verschlüsselung Ihrer Daten mit serverseitiger Verschlüsselung entweder serverseitige Verschlüsselung mit verwalteten Amazon S3 S3-Schlüsseln (SSE-S3) (Standard) oder serverseitige Verschlüsselung mit AWS Key Management Service () -Schlüsseln (SSE-KMS) verwenden.AWS KMS Wir empfehlen, dass die Standardverschlüsselung des Buckets die gewünschte Verschlüsselungskonfiguration verwendet und dass Sie die Standardverschlüsselung des Buckets in Ihren CreateSession-Anforderungen oder PUT-Objektanforderungen nicht überschreiben. Anschließend werden neue Objekte automatisch mit den gewünschten Verschlüsselungseinstellungen verschlüsselt. Weitere Informationen zum Verhalten, das die Verschlüsselung in Verzeichnis-Buckets außer Kraft setzt, finden Sie unter Serverseitige Verschlüsselung für neue Objekt-Uploads angeben. AWS KMS

Für alle Amazon-S3-Buckets ist die Verschlüsselung standardmäßig konfiguriert und alle neuen Objekte, die in einen S3-Bucket hochgeladen werden, werden im Ruhezustand automatisch verschlüsselt. Die serverseitige Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3) ist die Standardverschlüsselungskonfiguration für jeden Bucket in Amazon S3. Wenn Sie einen anderen Verschlüsselungstyp für einen Verzeichnis-Bucket angeben möchten, können Sie die serverseitige Verschlüsselung mit AWS Key Management Service (AWS KMS)-Schlüsseln (SSE-KMS) verwenden. Um neue Objekte in einem Verzeichnis-Bucket mit SSE-KMS zu verschlüsseln, müssen Sie SSE-KMS als Standardverschlüsselungskonfiguration des Verzeichnis-Buckets mit einem KMS-Schlüssel (also einem vom Kunden verwalteten Schlüssel) angeben. Der Von AWS verwalteter Schlüssel (aws/s3) wird nicht unterstützt. Ihre SSE-KMS-Konfiguration kann für die gesamte Lebensdauer des Buckets nur einen vom Kunden verwalteten Schlüssel pro Verzeichnis-Bucket unterstützen. Nachdem Sie einen vom Kunden verwalteten Schlüssel für SSE-KMS angegeben haben, können Sie den vom Kunden verwalteten Schlüssel für die SSE-KMS-Konfiguration des Buckets nicht mehr überschreiben. Wenn Sie dann serverseitige Verschlüsselungseinstellungen für neue Objekte mit SSE-KMS angeben, müssen Sie sicherstellen, dass der Verschlüsselungsschlüssel derselbe vom Kunden verwaltete Schlüssel ist, den Sie für die Standardverschlüsselungskonfiguration des Verzeichnis-Buckets angegeben haben. Um einen neuen, vom Kunden verwalteten Schlüssel für Ihre Daten zu verwenden, empfehlen wir, Ihre vorhandenen Objekte mit einem neuen vom Kunden verwalteten Schlüssel in einen neuen Verzeichnis-Bucket zu kopieren.

Sie können die Verschlüsselung anwenden, wenn Sie entweder ein neues Objekt hochladen oder ein vorhandenes Objekt kopieren. Wenn Sie die Verschlüsselung eines Objekts ändern, wird ein neues Objekt erstellt, um das alte zu ersetzen.

Sie können SSE-KMS mithilfe der REST-API-Operationen, AWS SDKs und () angeben. AWS Command Line Interface AWS CLI

Anmerkung
  • Bei Verzeichnis-Buckets ist das Überschreibungsverhalten der Verschlüsselung wie folgt:

    • Wenn Sie die REST-API verwenden CreateSession, um API-Anfragen für zonale Endpunkte zu authentifizieren und zu autorisieren UploadPartCopy, können Sie die Verschlüsselungseinstellungen für SSE-S3 oder SSE-KMS nur dann überschreiben, wenn Sie zuvor die CopyObjectStandardverschlüsselung des Buckets mit SSE-KMS angegeben haben.

    • Wenn Sie CreateSessionmit AWS CLI oder die verwenden, um API-Anfragen für zonale Endpunkte AWS SDKs zu authentifizieren und zu autorisieren, können Sie die Verschlüsselungseinstellungen in keiner Weise überschreiben. CopyObjectUploadPartCopy

    • Wenn Sie CopyObjectAnfragen stellen, können Sie die Verschlüsselungseinstellungen für SSE-S3 oder SSE-KMS nur dann überschreiben, wenn Sie zuvor die Standardverschlüsselung des Buckets mit SSE-KMS angegeben haben. Wenn Sie UploadPartCopyAnfragen stellen, können Sie die Verschlüsselungseinstellungen nicht überschreiben.

  • Sie können Multiregion AWS KMS keys in Amazon S3 verwenden. Amazon S3 behandelt jedoch derzeit Multi-Regions-Schlüssel wie Einzel-Regions-Schlüssel und verwendet nicht die Multi-Regions-Funktionen des Schlüssels. Weitere Informationen finden Sie unter Using multi-Region keys (Verwenden von Multi-Regions-Zugriffpunkt-Schlüsseln) im AWS Key Management Service -Entwicklerhandbuch.

  • Wenn Sie einen KMS-Schlüssel verwenden möchten, der sich im Besitz eines anderen Kontos befindet, müssen Sie über die Berechtigung zum Verwenden des Schlüssels verfügen. Weitere Informationen zu kontoübergreifenden Berechtigungen für KMS-Schlüssel finden Sie unter Erstellen von KMS-Schlüsseln, die von anderen Konten verwendet werden können im Entwicklerhandbuch zu AWS Key Management Service .

Anmerkung

Pro Verzeichnis-Bucket wird für die gesamte Lebensdauer des Buckets nur ein vom Kunden verwalteter Schlüssel unterstützt. Der Von AWS verwalteter Schlüssel (aws/s3) wird nicht unterstützt. Nachdem Sie SSE-KMS als Standardverschlüsselungskonfiguration Ihres Buckets mit einem vom Kunden verwalteten Schlüssel angegeben haben, können Sie den vom Kunden verwalteten Schlüssel für die SSE-KMS-Konfiguration des Buckets nicht mehr ändern.

Bei API-Vorgängen an zonalen Endpunkten (Objektebene) mit Ausnahme von und authentifizieren CopyObjectund UploadPartCopyautorisieren Sie Anfragen mit geringer Latenz. CreateSession Wir empfehlen, dass die Standardverschlüsselung des Buckets die gewünschten Verschlüsselungskonfigurationen verwendet und dass Sie die Standardverschlüsselung des Buckets in Ihren CreateSession-Anforderungen oder PUT-Objektanforderungen nicht überschreiben. Anschließend werden neue Objekte automatisch mit den gewünschten Verschlüsselungseinstellungen verschlüsselt. Um neue Objekte in einem Verzeichnis-Bucket mit SSE-KMS zu verschlüsseln, müssen Sie SSE-KMS als Standardverschlüsselungskonfiguration des Verzeichnis-Buckets mit einem KMS-Schlüssel (also einem vom Kunden verwalteten Schlüssel) angeben. Wenn dann eine Sitzung für API-Operationen an zonalen Endpunkten erstellt wird, werden neue Objekte während der Sitzung automatisch mit SSE-KMS- und S3-Bucket -Schlüsseln ver- und entschlüsselt. Weitere Informationen zum Verhalten, das die Verschlüsselung in Verzeichnis-Buckets außer Kraft setzt, finden Sie unter Serverseitige Verschlüsselung für Uploads neuer Objekte angeben. AWS KMS

Bei API-Aufrufen für zonale Endpunkte (außer CopyObjectund UploadPartCopy), die die REST-API verwenden, können Sie die Werte der Verschlüsselungseinstellungen (x-amz-server-side-encryption, x-amz-server-side-encryption-aws-kms-key-idx-amz-server-side-encryption-context, undx-amz-server-side-encryption-bucket-key-enabled) aus der Anfrage nicht überschreiben. CreateSession Sie müssen diese Werte für die Verschlüsselungseinstellungen nicht explizit in API-Aufrufen für zonale Endpunkte angeben. Amazon S3 verwendet die Werte der Verschlüsselungseinstellungen aus der CreateSession-Anforderung, um neue Objekte im Verzeichnis-Bucket zu schützen.

Anmerkung

Wenn Sie das AWS CLI oder das AWS SDKs, für verwenden, wird das Sitzungstoken automatisch aktualisiertCreateSession, um Dienstunterbrechungen zu vermeiden, wenn eine Sitzung abläuft. Das AWS CLI oder sie AWS SDKs verwenden die Standardverschlüsselungskonfiguration des Buckets für die CreateSession Anfrage. Das Überschreiben der Werte der Verschlüsselungseinstellungen in der CreateSession-Anforderung wird nicht unterstützt. Außerdem wird es bei API-Aufrufen für zonale Endpunkte (außer CopyObjectund UploadPartCopy) nicht unterstützt, die Werte der Verschlüsselungseinstellungen aus der CreateSession Anfrage zu überschreiben.

Um neue Objektkopien in einem Verzeichnis-Bucket mit SSE-KMS zu verschlüsseln, müssen Sie SSE-KMS als Standardverschlüsselungskonfiguration des Verzeichnis-Buckets mit einem KMS-Schlüssel (insbesondere einem vom Kunden verwalteten Schlüssel) angeben. CopyObject Wenn Sie dann serverseitige Verschlüsselungseinstellungen für neue Objektkopien mit SSE-KMS angeben, müssen Sie sicherstellen, dass der Verschlüsselungsschlüssel derselbe vom Kunden verwaltete Schlüssel ist, den Sie für die Standardverschlüsselungskonfiguration des Verzeichnis-Buckets angegeben haben. Um neue Objektteilkopien in einem Verzeichnis-Bucket mit SSE-KMS zu verschlüsseln, müssen Sie SSE-KMS als Standardverschlüsselungskonfiguration des Verzeichnis-Buckets mit einem KMS-Schlüssel (insbesondere einem vom Kunden verwalteten Schlüssel) angeben. UploadPartCopy Sie können keine serverseitigen Verschlüsselungseinstellungen für neue Objektteilkopien mit SSE-KMS in den Anforderungsheadern angeben. UploadPartCopy Außerdem müssen die Verschlüsselungseinstellungen, die Sie in der CreateMultipartUploadAnfrage angeben, mit der Standardverschlüsselungskonfiguration des Ziel-Buckets übereinstimmen.

Amazon-S3-REST-API-Vorgänge, die SSE-KMS unterstützen

Die folgenden REST-API-Operationen akzeptieren die Anforderungs-Header x-amz-server-side-encryption, x-amz-server-side-encryption-aws-kms-key-id und x-amz-server-side-encryption-context.

  • CreateSession— Wenn Sie API-Operationen für zonale Endpunkte (Objektebene) (außer CopyObject und UploadPartCopy) verwenden, können Sie diese Anforderungsheader angeben.

  • PutObject – Wenn Sie Daten über die PUT-API-Operation hochladen, können Sie diese Anforderungs-Header angeben.

  • CopyObject – Wenn Sie ein Objekt kopieren, erhalten Sie ein Quell- und ein Zielobjekt. Wenn Sie SSE-KMS-Header mit der CopyObject-Operation übergeben, werden sie nur auf das Zielobjekt angewendet.

  • CreateMultipartUpload – Wenn Sie große Objekte über die API-Operation für mehrteilige Uploads hochladen, können Sie diese Header angeben. Sie geben diese Header in der CreateMultipartUpload-Anforderung an.

Die Antwort-Header der folgenden REST-API-Operationen geben den Header x-amz-server-side-encryption zurück, wenn ein Objekt unter Verwendung der serverseitigen Verschlüsselung gespeichert wird.

Wichtig
  • Alle GET- und PUT-Anforderungen für ein durch AWS KMS geschütztes Objekt schlagen fehl, wenn diese Anforderungen nicht über Transport Layer Security (TLS) oder Signature Version 4 gestellt werden.

  • Wenn Ihr Objekt SSE-KMS verwendet, senden Sie keine Header für GET Verschlüsselungsanfragen für Anfragen und HEAD Anfragen, da Sie sonst einen HTTP 400-Fehler erhalten. BadRequest

Verschlüsselungskontext (x-amz-server-side-encryption-context)

Wenn Sie x-amz-server-side-encryption:aws:kms angeben, unterstützt die Amazon-S3-API optional das Bereitstellen eines expliziten Verschlüsselungskontexts mit dem x-amz-server-side-encryption-context-Header. Für Verzeichnis-Buckets ist ein Verschlüsselungskontext ein Satz von Schlüssel-Wert-Paaren, die kontextbezogene Informationen zu den Daten enthalten. Der Wert muss dem Standard-Verschlüsselungskontext entsprechen – dem Amazon-Ressourcennamen (ARN) für den Bucket. Ein zusätzlicher Wert für den Verschlüsselungskontext wird nicht unterstützt.

Weitere Informationen zum Verschlüsselungskontext in Verzeichnis-Buckets finden Sie unter Verschlüsselungskontext. Allgemeine Informationen zum Verschlüsselungs-Kontext finden Sie unter AWS Key Management Service Concepts – Encryption Context (Konzepte – Verschlüsselungs-Kontext) im AWS Key Management Service -Entwicklerhandbuch.

AWS KMS Schlüssel-ID () x-amz-server-side-encryption-aws-kms-key-id

Sie können den Header x-amz-server-side-encryption-aws-kms-key-id verwenden, um die ID des vom Kunden verwalteten Schlüssels anzugeben, der zum Schutz der Daten verwendet wird.

Ihre SSE-KMS-Konfiguration kann für die gesamte Lebensdauer des Buckets nur einen vom Kunden verwalteten Schlüssel pro Verzeichnis-Bucket unterstützen. Der Von AWS verwalteter Schlüssel (aws/s3) wird nicht unterstützt. Nachdem Sie einen vom Kunden verwalteten Schlüssel für SSE-KMS angegeben haben, können Sie den vom Kunden verwalteten Schlüssel für die SSE-KMS-Konfiguration des Buckets nicht mehr überschreiben.

Sie können den vom Kunden verwalteten Schlüssel, den Sie für die SSE-KMS-Konfiguration des Buckets angegeben haben, wie folgt identifizieren:

  • Sie stellen eine HeadObject API-Operationsanforderung, um den Wert von x-amz-server-side-encryption-aws-kms-key-id in Ihrer Antwort zu ermitteln.

Um einen neuen, vom Kunden verwalteten Schlüssel für Ihre Daten zu verwenden, empfehlen wir, Ihre vorhandenen Objekte mit einem neuen vom Kunden verwalteten Schlüssel in einen neuen Verzeichnis-Bucket zu kopieren.

Weitere Informationen zum Verschlüsselungskontext in Verzeichnis-Buckets finden Sie unter AWS KMS keys.

S3 Bucket Keys (x-amz-server-side-encryption-aws-bucket-key-enabled)

S3 Bucket Keys sind immer für GET- und PUT-Vorgänge in einem Verzeichnis-Bucket aktiviert und können nicht deaktiviert werden. S3 Bucket Keys werden nicht unterstützt, wenn Sie SSE-KMS-verschlüsselte Objekte von Allzweck-Buckets zu Verzeichnis-Buckets, von Verzeichnis-Buckets zu Allzweck-Buckets oder zwischen Verzeichnis-Buckets über CopyObject, UploadPartCopy, die Copy-Operation in Batch Operations oder die import-Aufgaben kopieren. In diesem Fall ruft Amazon S3 AWS KMS jedes Mal, wenn eine Kopieranforderung für ein KMS-verschlüsseltes Objekt gestellt wird, auf. Weitere Informationen zu den S3-Bucket-Schlüsseln in Verzeichnis-Buckets finden Sie unter Verschlüsselungskontext.

Anmerkung

Wenn Sie das AWS CLI, für verwenden, wird das Sitzungstoken automatisch aktualisiertCreateSession, um Dienstunterbrechungen zu vermeiden, wenn eine Sitzung abläuft. Das Überschreiben der Werte der Verschlüsselungseinstellungen in der CreateSession-Anforderung wird nicht unterstützt. Außerdem wird es bei API-Aufrufen für zonale Endpunkte (außer CopyObjectund UploadPartCopy) nicht unterstützt, die Werte der Verschlüsselungseinstellungen aus der Anfrage zu überschreiben. CreateSession

Um neue Objekte in einem Verzeichnis-Bucket mit SSE-KMS zu verschlüsseln, müssen Sie SSE-KMS als Standardverschlüsselungskonfiguration des Verzeichnis-Buckets mit einem KMS-Schlüssel (also einem vom Kunden verwalteten Schlüssel) angeben. Wenn dann eine Sitzung für API-Operationen an zonalen Endpunkten erstellt wird, werden neue Objekte während der Sitzung automatisch mit SSE-KMS- und S3-Bucket -Schlüsseln ver- und entschlüsselt.

Um die folgenden AWS CLI Beispielbefehle zu verwenden, ersetzen Sie sie durch Ihre eigenen Informationen. user input placeholders

Wenn Sie ein neues Objekt hochladen oder ein vorhandenes Objekt kopieren, können Sie angeben, dass serverseitige Verschlüsselung mit AWS KMS Schlüsseln zum Verschlüsseln Ihrer Daten verwendet werden soll. Verwenden Sie dazu den Befehl put-bucket-encryption, um die Standardverschlüsselungskonfiguration des Verzeichnis-Buckets auf SSE-KMS (aws:kms) festzulegen. Fügen Sie der Anforderung insbesondere den --server-side-encryption aws:kms-Header hinzu. Verwenden Sie den--ssekms-key-id example-key-id, um Ihren vom Kunden verwalteten AWS KMS Schlüssel hinzuzufügen, den Sie erstellt haben. Wenn Sie angeben--server-side-encryption aws:kms, müssen Sie eine AWS KMS Schlüssel-ID Ihres vom Kunden verwalteten Schlüssels angeben. Directory-Buckets verwenden keinen AWS verwalteten Schlüssel. Ein Beispielbefehl finden Sie unter Verwenden Sie den AWS CLI.

Wenn Sie dann ein neues Objekt mit dem folgenden Befehl hochladen, verwendet Amazon S3 die Bucket-Einstellungen für die Standardverschlüsselung, um das Objekt standardmäßig zu verschlüsseln.

aws s3api put-object --bucket bucket-base-name--zone-id--x-s3 --key example-object-key --body filepath

Sie müssen Ihren API-Operationen für zonale Endpunkte -\-bucket-key-enabled nicht explizit hinzufügen. S3 Bucket Keys sind immer für GET- und PUT-Vorgänge in einem Verzeichnis-Bucket aktiviert und können nicht deaktiviert werden. S3 Bucket Keys werden nicht unterstützt, wenn Sie SSE-KMS-verschlüsselte Objekte von Allzweck-Buckets zu Verzeichnis-Buckets, von Verzeichnis-Buckets zu Allzweck-Buckets oder zwischen Verzeichnis-Buckets über CopyObject, UploadPartCopy, die Copy-Operation in Batch Operations oder die import-Aufgaben kopieren. In diesem Fall ruft Amazon S3 AWS KMS jedes Mal, wenn eine Kopieranforderung für ein KMS-verschlüsseltes Objekt gestellt wird, auf.

Sie können ein Objekt aus einem Quell-Bucket (z. B. einem Allzweck-Bucket) in einen neuen Bucket (z. B. einen Verzeichnis-Bucket) kopieren und die SSE-KMS-Verschlüsselung für die Zielobjekte verwenden. Verwenden Sie dazu den Befehl put-bucket-encryption, um die Standardverschlüsselungskonfiguration des Ziel-Buckets (z. B. eines Verzeichnis-Buckets) auf SSE-KMS (aws:kms) festzulegen. Ein Beispielbefehl finden Sie unter Verwenden Sie den AWS CLI. Wenn Sie dann ein Objekt mit dem folgenden Befehl kopieren, verwendet Amazon S3 die Bucket-Einstellungen für die Standardverschlüsselung, um das Objekt standardmäßig zu verschlüsseln.

aws s3api copy-object --copy-source amzn-s3-demo-bucket/example-object-key --bucket bucket-base-name--zone-id--x-s3 --key example-object-key

Bei der Verwendung AWS SDKs können Sie Amazon S3 AWS KMS keys für die serverseitige Verschlüsselung anfordern. Die folgenden Beispiele zeigen, wie SSE-KMS mit dem AWS SDKs für Java und .NET verwendet wird. Informationen zu anderen SDKs finden Sie im AWS Developer Center unter Beispielcode und Bibliotheken.

Anmerkung

Wenn Sie AWS SDKs, für verwenden, wird das Sitzungstoken automatisch aktualisiertCreateSession, um Dienstunterbrechungen zu vermeiden, wenn eine Sitzung abläuft. Das Überschreiben der Werte der Verschlüsselungseinstellungen in der CreateSession-Anforderung wird nicht unterstützt. Außerdem wird es bei API-Aufrufen für zonale Endpunkte (außer CopyObjectund UploadPartCopy) nicht unterstützt, die Werte der Verschlüsselungseinstellungen aus der Anfrage zu überschreiben. CreateSession

Um neue Objekte in einem Verzeichnis-Bucket mit SSE-KMS zu verschlüsseln, müssen Sie SSE-KMS als Standardverschlüsselungskonfiguration des Verzeichnis-Buckets mit einem KMS-Schlüssel (also einem vom Kunden verwalteten Schlüssel) angeben. Wenn dann eine Sitzung für API-Operationen an zonalen Endpunkten erstellt wird, werden neue Objekte während der Sitzung automatisch mit SSE-KMS- und S3-Bucket -Schlüsseln ver- und entschlüsselt.

Weitere Hinweise zur Verwendung AWS SDKs , um die Standardverschlüsselungskonfiguration eines Verzeichnis-Buckets auf SSE-KMS festzulegen, finden Sie unter. Verwenden Sie den AWS SDKs

Wichtig

Wenn Sie einen AWS KMS key für die serverseitige Verschlüsselung in Amazon S3 verwenden, müssen Sie einen KMS-Schlüssel für die symmetrische Verschlüsselung wählen. Amazon S3 unterstützt nur KMS-Schlüssel mit symmetrischer Verschlüsselung. Weitere Informationen zu diesen Schlüsseln finden Sie unter Symmetrische KMS-Verschlüsselungsschlüssel im Entwicklerhandbuch für AWS Key Management Service .

Weitere Informationen zur Erstellung von kundenverwalteten Schlüsseln finden Sie unter Programming the AWS KMS API im AWS Key Management Service Developer Guide.