View a markdown version of this page

Verwendung der serverseitigen Verschlüsselung mit AWS KMS keys (SSE-KMS) 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.

Verwendung der serverseitigen Verschlüsselung mit AWS KMS keys (SSE-KMS) in Verzeichnis-Buckets

Die Sicherheitskontrollen AWS KMS können Ihnen helfen, die Compliance-Anforderungen im Zusammenhang mit der Verschlüsselung zu erfüllen. Sie können Verzeichnis-Buckets so konfigurieren, dass sie die 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 SSE-KMS dazu finden Sie unter. Verwenden der serverseitigen Verschlüsselung mit AWS KMS Schlüssel () SSE-KMS

Berechtigungen

Um ein Objekt hochzuladen oder herunterzuladen, das mit einem AWS KMS key auf oder von Amazon S3 verschlüsselt ist, benötigen kms:GenerateDataKey Sie kms:Decrypt Berechtigungen für den Schlüssel. Weitere Informationen finden Sie unter Schlüssel-Benutzern die Verwendung eines KMS-Schlüssels für kryptografische Operationen gestatten im Entwicklerhandbuch zu AWS Key Management Service . Informationen zu den AWS KMS Berechtigungen, die für mehrteilige Uploads erforderlich sind, finden Sie unter. API für mehrteilige Uploads und Berechtigungen

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

AWS KMS keys

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 angegeben haben SSE-KMS, können Sie den vom Kunden verwalteten Schlüssel für die SSE-KMS Konfiguration des Buckets außerdem nicht überschreiben.

Sie können den vom Kunden verwalteten Schlüssel, den Sie für die SSE-KMS Konfiguration des Buckets angegeben haben, auf folgende Weise 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.

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

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

Wird SSE-KMS für kontoübergreifende Operationen verwendet

Beachten Sie Folgendes, wenn Sie kontoübergreifende Operationen in Verzeichnis-Buckets verschlüsseln:

  • Wenn Sie kontoübergreifenden Zugriff auf Ihre S3-Objekte gewähren möchten, können Sie eine Richtlinie konfigurieren, die einen vom Kunden verwalteten Schlüssel vorsieht, 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- 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 kopieren, durch CopyObject UploadPartCopy, den Copy Vorgang in Batch Operations oder die Jobs. import In diesem Fall ruft Amazon S3 AWS KMS jedes Mal an, wenn eine Kopieranforderung für ein Objekt gestellt wird. KMS-encrypted

Für API-Operationen mit Ausnahme von und an zonalen Endpunkten (auf Objektebene) authentifizieren CopyObject und autorisieren Sie Anfragen so UploadPartCopy, dass eine geringe Latenz gewährleistet ist. CreateSession 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. Um neue Objekte in einem Verzeichnis-Bucket mit zu verschlüsseln SSE-KMS, müssen Sie SSE-KMS als Standardverschlüsselungskonfiguration für den Verzeichnis-Bucket einen KMS-Schlüssel (insbesondere einen vom Kunden verwalteten Schlüssel) angeben. https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk Wenn dann eine Sitzung für API-Operationen mit 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, das die Verschlüsselung in Verzeichnis-Buckets außer Kraft setzt, finden Sie unter Serverseitige Verschlüsselung mit AWS KMS für neue Objektuploads angeben.

S3-Bucket Keys werden innerhalb von Amazon S3 für einen begrenzten Zeitraum verwendet. Dadurch wird die Notwendigkeit, dass Amazon S3 Anfragen zur Durchführung von Verschlüsselungsvorgängen stellen muss, weiter reduziert. AWS KMS Weitere Informationen zur Verwendung von S3-Bucket-Schlüsseln finden Sie unter Amazon-S3-Bucket-Schlüssel und Reduzierung der Kosten von SSE-KMS mit Amazon S3 Bucket Keys.

Erforderlich SSE-KMS

Um alle SSE-KMS Objekte in einem bestimmten Verzeichnis-Bucket abzufragen, können Sie eine Bucket-Richtlinie verwenden. Wenn Sie beispielsweise die CreateSession API-Operation verwenden, um die Erlaubnis zum Hochladen eines neuen Objekts (PutObject, undCreateMultipartUpload) zu erteilenCopyObject, verweigert die folgende Bucket-Richtlinie allen Benutzern die Upload-Objektberechtigung (s3express:CreateSession), sofern die CreateSession Anforderung keinen x-amz-server-side-encryption-aws-kms-key-id Header enthält, der eine Anfrage SSE-KMS stellt.

JSON
{ "Version":"2012-10-17", "Id":"UploadObjectPolicy", "Statement":[{ "Sid":"DenyObjectsThatAreNotSSEKMS", "Effect":"Deny", "Principal":"*", "Action":"s3express:CreateSession", "Resource":"arn:aws:s3express:us-east-1:111122223333:bucket/amzn-s3-demo-bucket--usw2-az1--x-s3", "Condition":{ "Null":{ "s3express:x-amz-server-side-encryption-aws-kms-key-id":"true" } } } ] }

Um zu verlangen, dass ein bestimmtes AWS KMS key Objekt 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 Amazon Resource Name (ARN) -Schlüssel verwenden, der das folgende arn:aws:kms:region:acct-id:key/key-id Format hat. 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 das Hochladen neuer Objekte finden Sie unter. Angeben der serverseitigen Verschlüsselung mit AWS KMS (SSE-KMS) für das Hochladen neuer Objekte in Verzeichnis-Buckets

Eine vollständige Liste spezifischer Bedingungsschlüssel für Verzeichnis-Buckets finden Sie unter Autorisieren regionaler Endpunkt-API-Operationen mit IAM.

Verschlüsselungskontext

Für Verzeichnis-Buckets ist ein Verschlüsselungskontext ein Satz 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 es in einem Verzeichnis-Bucket verwenden SSE-KMS , verwendet Amazon S3 standardmäßig den Bucket Amazon Resource Name (ARN) als Verschlüsselungskontextpaar:

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 API-Anfrage für zonale Endpunkte verwenden, z. B. CreateSession Der Wert dieses Headers ist eine Base64-encoded Zeichenfolge aus einem UTF-8 kodierten JSON, die den Verschlüsselungskontext als Schlüssel-Wert-Paare enthält. Für Verzeichnis-Buckets muss der Verschlüsselungskontext dem Standardverschlüsselungskontext entsprechen – dem Bucket-ARN (Amazon-Ressourcenname). Da der Verschlüsselungskontext nicht verschlüsselt ist, sollte er keine sensiblen Informationen enthalten.

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

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

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

Außerdem protokollieren Ihre AWS KMS CloudTrail Ereignisse bei SSE-KMS der Objektverschlüsselung in einem Verzeichnis-Bucket Ihren Bucket-ARN und nicht Ihren Objekt-ARN.

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 die Header für Verschlüsselungsanfragen verwendet SSE-KMS, senden Sie keine Verschlüsselungsanforderungskopfzeilen für GET Anfragen und HEAD Anfragen. Andernfalls erhalten Sie den Fehler HTTP 400 Bad Request.

Überprüfung der 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 wie GenerateDataKey und Decrypt erhalten. CloudTrail unterstützt zahlreiche Attributwerte zum Filtern Ihrer Suche, einschließlich Veranstaltungsname, Benutzername und Ereignisquelle.