Serverseitige Verschlüsselung mit AWS KMS Schlüsseln (SSE-KMS) in Verzeichnis-Buckets verwenden - 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.

Serverseitige Verschlüsselung mit AWS KMS Schlüsseln (SSE-KMS) in Verzeichnis-Buckets verwenden

Die darin enthaltenen Sicherheitskontrollen AWS KMS können Ihnen dabei helfen, die Compliance-Anforderungen im Zusammenhang mit der Verschlüsselung zu erfüllen. Sie können Verzeichnis-Buckets so konfigurieren, dass sie serverseitige Verschlüsselung mit AWS Key Management Service (AWS KMS) -Schlüsseln (SSE-KMS) verwenden und diese KMS Schlüssel verwenden, um Ihre Daten in Amazon S3-Verzeichnis-Buckets zu schützen. Weitere Informationen zu SSE - KMS finden Sie unter. Serverseitige Verschlüsselung mit AWS KMS Schlüsseln verwenden (SSE-) KMS

Berechtigungen

Um ein mit Amazon S3 verschlüsseltes Objekt hoch- oder von Amazon S3 hoch kms:GenerateDataKey - oder herunterzuladen, benötigen Sie kms:Decrypt Berechtigungen für den Schlüssel. AWS KMS key Weitere Informationen finden Sie im AWS Key Management Service Entwicklerhandbuch unter Erlauben Sie KMS Schlüsselbenutzern, einen Schlüssel für kryptografische Operationen zu verwenden. Informationen zu den AWS KMS Berechtigungen, die für mehrteilige Uploads erforderlich sind, finden Sie unter. Mehrteiliger Upload API und Berechtigungen

Weitere Hinweise zu KMS Schlüsseln für SSE - finden Sie KMS unter. Geben Sie die serverseitige Verschlüsselung mit AWS KMS (SSE-KMS) an

AWS KMS keys

Ihre KMS Konfiguration SSE — unterstützt für die gesamte Lebensdauer des Buckets nur einen vom Kunden verwalteten Schlüssel pro Verzeichnis-Bucket. Die 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 SSE - angegeben habenKMS, den vom Kunden verwalteten Schlüssel für die KMS Konfiguration des SSE Buckets nicht überschreiben.

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

  • Sie stellen eine HeadObject API Operationsanfrage, 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 kundenverwalteten Schlüssel in einen neuen Verzeichnis-Bucket zu kopieren.

Wenn Sie einen vom AWS KMS Kunden verwalteten Schlüssel für die Verschlüsselung in Ihrem Verzeichnis-Bucket angeben, verwenden Sie nur die Schlüssel-ID oder den SchlüsselARN. Das Schlüsselaliasformat des KMS Schlüssels wird nicht unterstützt.

Weitere Hinweise zu KMS Schlüsseln für SSE - KMS finden Sie unterAWS KMS keys.

Verwenden von SSE - KMS für kontenübergreifende Operationen

Wenn Sie Verschlüsselung für kontoübergreifende Operationen in Verzeichnis-Buckets verwenden, sollten Sie Folgendes beachten:

  • Wenn Sie kontoübergreifenden Zugriff auf Ihre S3-Objekte gewähren möchten, konfigurieren Sie eine Richtlinie mit einem vom Kunden verwalteten Schlüssel, um den Zugriff von einem anderen Konto aus zu ermöglichen.

  • Um einen vom Kunden verwalteten Schlüssel anzugeben, müssen Sie einen vollqualifizierten KMS Schlüssel ARN verwenden.

Amazon-S3-Bucket-Schlüssel

S3-Bucket-Keys sind immer für GET PUT Operationen in einem Verzeichnis-Bucket aktiviert und können nicht deaktiviert werden. S3-Bucket-Keys werden nicht unterstützt, wenn Sie KMS verschlüsselte Objekte von Allzweck-Buckets in Verzeichnis-Buckets, von Verzeichnis-Buckets in Allzweck-Buckets oder zwischen Verzeichnis-Buckets kopieren SSE CopyObject, UploadPartCopy, der Copy Operation in Batch-Operationen, oder die import Jobs. In diesem Fall ruft Amazon S3 AWS KMS jedes Mal, wenn eine Kopieranforderung für ein KMS -verschlüsseltes Objekt gestellt wird, auf.

Bei APIVorgängen auf zonaler Endpunktebene (Objektebene) mit Ausnahme von und authentifizieren CopyObjectund UploadPartCopyautorisieren Sie Anfragen über CreateSessionfür niedrige Latenz. 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 Anfragen oder PUT Objektanfragen 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 - zu verschlüsselnKMS, müssen Sie SSE - KMS als Standardverschlüsselungskonfiguration des Verzeichnis-Buckets mit einem KMS Schlüssel (insbesondere einem vom Kunden verwalteten Schlüssel) angeben. Wenn dann eine Sitzung für zonale API Endpunktoperationen erstellt wird, werden neue Objekte während der Sitzung automatisch mit SSE - und S3-Bucket-Schlüsseln ver 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.

S3-Bucket-Keys werden für einen begrenzten Zeitraum innerhalb von Amazon S3 verwendet, sodass Amazon S3 keine Anfragen mehr stellen muss, AWS KMS um Verschlüsselungsvorgänge abzuschließen. Weitere Informationen zur Verwendung von S3-Bucket Keys finden Sie unter Amazon-S3-Bucket-Schlüssel undSenkung der Kosten von SSE — KMS mit Amazon S3 Bucket Keys.

Erfordert SSE - KMS

Um SSE - KMS von allen Objekten in einem bestimmten Verzeichnis-Bucket zu verlangen, können Sie eine Bucket-Richtlinie verwenden. Wenn Sie den CreateSession API Vorgang beispielsweise verwenden, um die Erlaubnis zum Hochladen eines neuen Objekts (PutObject, undCreateMultipartUpload) zu erteilenCopyObject, verweigert die folgende Bucket-Richtlinie allen Benutzern die Berechtigung zum Hochladen von Objekten (s3express:CreateSession), wenn die CreateSession Anfrage keinen x-amz-server-side-encryption-aws-kms-key-id Header enthält, der SSE - KMS anfordert.

{ "Version":"2012-10-17", "Id":"UploadObjectPolicy", "Statement":[{ "Sid":"DenyObjectsThatAreNotSSEKMS", "Effect":"Deny", "Principal":"*", "Action":"s3express:CreateSession", "Resource":"arn:aws:s3express:region:account-id:bucket/bucket-base-name--zone-id--x-s3/*", "Condition":{ "Null":{ "s3express:x-amz-server-side-encryption-aws-kms-key-id":"true" } } } ] }

Um zu verlangen, dass ein bestimmter AWS KMS key Code zum Verschlüsseln der Objekte in einem Bucket verwendet wird, können Sie den s3express:x-amz-server-side-encryption-aws-kms-key-id Bedingungsschlüssel verwenden. Um den KMS Schlüssel anzugeben, müssen Sie einen Schlüssel Amazon Resource Name (ARN) im folgenden arn:aws:kms:region:acct-id:key/key-id Format verwenden. AWS Identity and Access Management überprüft nicht, ob die Zeichenfolge für s3express:x-amz-server-side-encryption-aws-kms-key-id existiert. Die AWS KMS Schlüssel-ID, die Amazon S3 für die Objektverschlüsselung verwendet, muss mit der AWS KMS Schlüssel-ID in der Richtlinie übereinstimmen, andernfalls lehnt Amazon S3 die Anfrage ab.

Weitere Informationen zur Verwendung SSE — KMS für Uploads neuer Objekte finden Sie unter. Serverseitige Verschlüsselung mit AWS KMS (SSE-KMS) für neue Objekt-Uploads in Verzeichnis-Buckets angeben

Eine vollständige Liste der spezifischen Bedingungsschlüssel für Directory-Buckets finden Sie unter. Autorisieren eines regionalen Endpunkts APIs mit IAM

Verschlüsselungskontext

Bei Verzeichnis-Buckets besteht ein Verschlüsselungskontext aus einer Reihe von Schlüssel-Wert-Paaren, die kontextbezogene Informationen zu den Daten enthalten. Ein zusätzlicher Wert für den Verschlüsselungskontext wird nicht unterstützt. Weitere Informationen zum Thema Verschlüsselungskontext finden Sie unter Verschlüsselungskontext.

Wenn Sie SSE - KMS für einen Verzeichnis-Bucket verwenden, verwendet Amazon S3 standardmäßig den Bucket Amazon Resource Name (ARN) als Verschlüsselungskontext-Paar:

arn:aws:s3express:region:account-id:bucket/bucket-base-name--zone-id--x-s3

Stellen Sie sicher, dass Ihre IAM Richtlinien oder AWS KMS Schlüsselrichtlinien Ihren Bucket ARN als Verschlüsselungskontext verwenden.

Sie können optional ein explizites Verschlüsselungskontextpaar angeben, indem Sie den x-amz-server-side-encryption-context Header in einer zonalen API Endpunktanfrage verwenden, z. B. CreateSession Der Wert dieses Headers ist eine Base64-kodierte Zeichenfolge mit einer Kodierung von UTF -8JSON, die den Verschlüsselungskontext in Form von Schlüssel-Wert-Paaren enthält. Für Verzeichnis-Buckets muss der Verschlüsselungskontext mit dem Standard-Verschlüsselungskontext übereinstimmen — dem Bucket Amazon Resource Name (ARN). Da der Verschlüsselungskontext nicht verschlüsselt ist, sollten Sie außerdem sicherstellen, dass er keine vertraulichen Informationen enthält.

Sie können den Verschlüsselungskontext verwenden, um Ihre kryptografischen Vorgänge zu identifizieren und zu kategorisieren. Sie können auch den ARN Standardwert für den Verschlüsselungskontext verwenden, um relevante Anfragen nachzuverfolgen, AWS CloudTrail indem Sie sich ansehen, welcher Verzeichnis-Bucket mit welchem Verschlüsselungsschlüssel verwendet ARN wurde.

Wenn Sie im requestParameters Feld einer CloudTrail Protokolldatei SSE - KMS für einen Verzeichnis-Bucket verwenden, entspricht der Wert für den Verschlüsselungskontext dem Wert ARN des Buckets.

"encryptionContext": { "aws:s3express:arn": "arn:aws:s3:::arn:aws:s3express:region:account-id:bucket/bucket-base-name--zone-id--x-s3" }

Bei der Objektverschlüsselung mit SSE - KMS in einem Verzeichnis-Bucket protokollieren Ihre AWS KMS CloudTrail Ereignisse außerdem Ihren ARN Bucket und nicht Ihr ObjektARN.

Senden von Anfragen für AWS KMS verschlüsselte Objekte

Auf Verzeichnis-Buckets kann nur über HTTPS (TLS) zugegriffen werden. Außerdem signieren Verzeichnis-Buckets Anfragen mithilfe von AWS Signature Version 4 (Sigv4). Weitere Hinweise zum Senden von Anfragen für AWS KMS verschlüsselte Objekte finden Sie unter. Senden von Anfragen für AWS KMS verschlüsselte Objekte

Wenn Ihr Objekt SSE - verwendetKMS, senden Sie keine Header für GET Verschlüsselungsanforderungen für Anfragen und HEAD Anfragen. Andernfalls erhalten Sie den Fehler HTTP400 Bad Request.

Auditing SSE — KMS Verschlüsselung in Verzeichnis-Buckets

Um die Verwendung Ihrer AWS KMS Schlüssel für Ihre SSE - KMS verschlüsselten Daten zu überprüfen, können Sie AWS CloudTrail Protokolle verwenden. Sie können Einblick in Ihre kryptografischen Operationen erhalten, wie zum Beispiel GenerateDataKey und Decrypt. CloudTrail unterstützt zahlreiche Attributwerte zum Filtern Ihrer Suche, einschließlich Ereignisname, Benutzername und Ereignisquelle.