View a markdown version of this page

Geben Sie die serverseitige Verschlüsselung an mit AWS KMS (SSE-KMS) für das Hochladen neuer Objekte 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.

Geben Sie die serverseitige Verschlüsselung an mit AWS KMS (SSE-KMS) für das Hochladen neuer Objekte 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 () Schlüsseln AWS Key Management Service (AWS KMS) verwenden. SSE-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 über das 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 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. Server-side Die Verschlüsselung mit verwalteten Amazon S3-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) keys (SSE-KMS) verwenden. Um neue Objekte in einem Verzeichnis-Bucket mit zu verschlüsseln SSE-KMS, müssen Sie SSE-KMS als Standardverschlüsselungskonfiguration des Verzeichnis-Buckets einen KMS-Schlüssel (insbesondere einen 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 angegeben haben SSE-KMS, können Sie den vom Kunden verwalteten Schlüssel für die SSE-KMS Konfiguration des Buckets nicht überschreiben. Wenn Sie dann serverseitige Verschlüsselungseinstellungen für neue Objekte mit angeben, müssen Sie sicherstellen SSE-KMS, 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 dies SSE-KMS mithilfe der REST-API-Operationen, AWS SDKs und der AWS Command Line Interface ()AWS CLI angeben.

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 außer CopyObjectund auf SSE-S3 SSE-KMS nur dann überschreiben, wenn Sie zuvor die Standardverschlüsselung des Buckets mit angegeben haben. SSE-KMS

    • Wenn Sie die AWS SDKs CreateSessionzusammen mit AWS CLI oder verwenden, um API-Anfragen für zonale Endpunkte zu authentifizieren und zu autorisieren UploadPartCopy, können Sie die CopyObjectVerschlüsselungseinstellungen überhaupt nicht überschreiben.

    • Wenn Sie CopyObjectAnfragen stellen, können Sie die Verschlüsselungseinstellungen SSE-KMS nur dann auf SSE-S3 oder außer Kraft setzen, wenn Sie zuvor die Standardverschlüsselung für den Bucket angegeben haben. SSE-KMS 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 für Ihren Bucket einen 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 mit Ausnahme von und an zonalen Endpunkten (Objektebene) 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 zu verschlüsseln SSE-KMS, müssen Sie SSE-KMS als Standardverschlüsselungskonfiguration des Verzeichnis-Buckets einen KMS-Schlüssel (insbesondere einen 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 S3-Bucket-Schlüsseln ver SSE-KMS - und entschlüsselt. Weitere Informationen zum Verhalten beim Überschreiben der Verschlüsselung in Verzeichnis-Buckets finden Sie unter Serverseitige Verschlüsselung mit AWS KMS für Uploads neuer Objekte angeben.

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 die AWS SDKs für verwenden, wird das Sitzungstoken automatisch aktualisiertCreateSession, um Dienstunterbrechungen zu vermeiden, wenn eine Sitzung abläuft. Die AWS CLI oder die AWS SDKs verwenden die Standardverschlüsselungskonfiguration des Buckets für die Anfrage. CreateSession 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 zu verschlüsseln SSE-KMS, müssen Sie SSE-KMS als Standardverschlüsselungskonfiguration des Verzeichnis-Buckets einen KMS-Schlüssel (insbesondere einen vom Kunden verwalteten Schlüssel) angeben. CopyObject Wenn Sie dann serverseitige Verschlüsselungseinstellungen für neue Objektkopien mit angeben, müssen Sie sicherstellen SSE-KMS, dass es sich bei dem Verschlüsselungsschlüssel um denselben vom Kunden verwalteten Schlüssel handelt, den Sie für die Standardverschlüsselungskonfiguration des Verzeichnis-Buckets angegeben haben. Um neue Objektteilkopien in einem Verzeichnis-Bucket mit zu verschlüsseln SSE-KMS, müssen Sie SSE-KMS als Standardverschlüsselungskonfiguration des Verzeichnis-Buckets einen KMS-Schlüssel (insbesondere einen vom Kunden verwalteten Schlüssel) angeben. UploadPartCopy Sie können keine serverseitigen Verschlüsselungseinstellungen für neue Objektteilkopien SSE-KMS in den UploadPartCopyAnforderungsheadern angeben. Außerdem müssen die Verschlüsselungseinstellungen, die Sie in der CreateMultipartUploadAnfrage angeben, mit der Standardverschlüsselungskonfiguration des Ziel-Buckets übereinstimmen.

Amazon S3 S3-REST-API-Operationen, die unterstützen SSE-KMS

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 (auf 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 Verschlüsselungsanforderungen verwendet SSE-KMS, senden Sie keine Header für GET Verschlüsselungsanforderungen und HEAD Anfragen, da Sie sonst einen HTTP BadRequest 400-Fehler erhalten.

Verschlüsselungskontext (x-amz-serverseitiger Verschlüsselungskontext)

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. Außerdem können Sie, nachdem Sie einen vom Kunden verwalteten Schlüssel für angegeben haben SSE-KMS, den vom Kunden verwalteten Schlüssel für die SSE-KMS Konfiguration des Buckets nicht ü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-Schlüssel (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 aus Allzweck-Buckets in Verzeichnis-Buckets, von Verzeichnis-Buckets in Allzweck-Buckets oder zwischen Verzeichnis-Buckets durch,, CopyObjectUploadPartCopy, den Copy Vorgang in Batch Operations oder die Jobs kopieren. import In diesem Fall ruft Amazon S3 AWS KMS jedes Mal, wenn eine Kopieranforderung für ein KMS-encrypted Objekt gestellt wird, auf. Weitere Informationen zu den S3-Bucket-Schlüsseln in Verzeichnis-Buckets finden Sie unter Verschlüsselungskontext.

Anmerkung

Wenn Sie AWS CLI, for verwenden, wird das Sitzungstoken automatisch aktualisiertCreateSession, um Serviceunterbrechungen 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 zu verschlüsseln SSE-KMS, müssen Sie SSE-KMS als Standardverschlüsselungskonfiguration des Verzeichnis-Buckets einen KMS-Schlüssel (insbesondere einen 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 S3-Bucket-Schlüsseln ver SSE-KMS - 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 put-bucket-encryption Befehl, um die Standardverschlüsselungskonfiguration des Directory-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 Verwendung der 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 aus Allzweck-Buckets in Verzeichnis-Buckets, von Verzeichnis-Buckets in Allzweck-Buckets oder zwischen Verzeichnis-Buckets durch,, CopyObjectUploadPartCopy, den Copy Vorgang in Batch Operations oder die Jobs kopieren. import In diesem Fall ruft Amazon S3 AWS KMS jedes Mal, wenn eine Kopieranforderung für ein KMS-encrypted 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 SSE-KMS Verschlüsselung für die Zielobjekte verwenden. Verwenden Sie dazu den put-bucket-encryption Befehl, um die Standardverschlüsselungskonfiguration des Ziel-Buckets (z. B. eines Verzeichnis-Buckets) auf SSE-KMS (aws:kms) festzulegen. Ein Beispielbefehl finden Sie unter Verwendung der 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

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

Anmerkung

Wenn Sie die 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 zu verschlüsseln SSE-KMS, müssen Sie SSE-KMS als Standardverschlüsselungskonfiguration des Verzeichnis-Buckets einen KMS-Schlüssel (insbesondere einen 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 S3-Bucket-Schlüsseln ver SSE-KMS - und entschlüsselt.

Weitere Informationen zur Verwendung von AWS SDKs zum Festlegen der Standardverschlüsselungskonfiguration eines Verzeichnis-Buckets auf finden Sie unter. SSE-KMS Verwendung der 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.