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

Verwenden der serverseitigen Verschlüsselung mit - AWS KMS Schlüsseln (SSE-KMS)

Wichtig

Amazon S3 wendet jetzt serverseitige Verschlüsselung mit von Amazon S3 verwalteten Verschlüsselungsschlüssel (SSE-S3) als Basisverschlüsselung für jeden Bucket in Amazon S3 an. Ab dem 5. Januar 2023 werden alle neuen Objekt-Uploads auf Amazon S3 ohne zusätzliche Kosten und ohne Auswirkungen auf die Leistung automatisch verschlüsselt. Der automatische Verschlüsselungsstatus für die Standardverschlüsselungskonfiguration des S3-Buckets und für neue Objekt-Uploads ist in - AWS CloudTrail Protokollen, S3 Inventory, S3 Storage Lens, der Amazon S3-Konsole und als zusätzlicher Amazon S3-API-Antwort-Header in der AWS Command Line Interface und AWS SDKs verfügbar. Weitere Informationen finden Sie unter Häufig gestellte Fragen zur Standardverschlüsselung.

Serverseitige Verschlüsselung ist die Verschlüsselung von Daten am Zielort durch die Anwendung oder den Service, der sie erhält.

Amazon S3 aktiviert für neue Objekt-Uploads automatisch die serverseitige Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3).

Sofern Sie nichts anderes angeben, verwenden Buckets standardmäßig SSE-S3 zum Verschlüsseln von Objekten. Sie können Buckets jedoch so konfigurieren, dass stattdessen die serverseitige Verschlüsselung mit AWS Key Management Service (AWS KMS)-Schlüsseln (SSE-KMS) verwendet wird. Weitere Informationen finden Sie unter Angeben der serverseitigen Verschlüsselung mit AWS KMS -(SSE-KMS).

AWS KMS ist ein Service, der sichere, hochverfügbare Hard- und Software kombiniert, um ein für die Cloud skaliertes Schlüsselverwaltungssystem bereitzustellen. Amazon S3 verwendet serverseitige Verschlüsselung mit AWS KMS (SSE-KMS), um Ihre S3-Objektdaten zu verschlüsseln. Wenn SSE-KMS für das Objekt angefordert wird, wird die S3-Prüfsumme (als Teil der Metadaten des Objekts) außerdem in verschlüsselter Form gespeichert. Weitere Informationen zur Prüfsumme finden Sie unter Überprüfung der Objektintegrität.

Wenn Sie KMS-Schlüssel verwenden, können Sie AWS KMS über die AWS Management Console oder die -AWS KMS API Folgendes tun:

  • Sie können KMS-Schlüssel zentral erstellen, anzeigen, bearbeiten, überwachen, aktivieren oder deaktivieren, rotieren sowie das Löschen von KMS-Schlüsseln planen.

  • Definieren Sie die Richtlinien, die steuern, wie und von wem KMS-Schlüssel verwendet werden können.

  • Prüfen Sie deren Verwendung, um zu beweisen, dass sie korrekt verwendet werden. Das Auditing wird von der AWS KMS -API unterstützt, nicht jedoch von der AWS KMSAWS Management Console.

Die Sicherheitskontrollen in AWS KMS können Ihnen helfen, Compliance-Anforderungen im Zusammenhang mit der Verschlüsselung zu erfüllen. Sie können mit diesen KMS-Schlüsseln Ihre Daten in Amazon-S3-Buckets schützen. Wenn Sie die SSE-KMS-Verschlüsselung mit einem S3-Bucket verwenden, AWS KMS keys muss sich der in derselben Region wie der Bucket befinden.

Für die Nutzung von fallen zusätzliche Gebühren an AWS KMS keys. Weitere Informationen finden Sie unter AWS KMS key -Konzepte im AWS Key Management Service -Entwicklerhandbuch und in den AWS KMS -Preisen.

Berechtigungen

Um ein mit einem verschlüsseltes Objekt AWS KMS key in Amazon S3 hochzuladen, benötigen Sie kms:GenerateDataKey Berechtigungen für den Schlüssel. Um ein mit einem verschlüsseltes Objekt herunterzuladen AWS KMS key, benötigen Sie -kms:DecryptBerechtigungen. Informationen zu den AWS KMS Berechtigungen, die für mehrteilige Uploads erforderlich sind, finden Sie unter API für mehrteilige Uploads und Berechtigungen.

AWS KMS keys

Wenn Sie die serverseitige Verschlüsselung mit AWS KMS (SSE-KMS) verwenden, können Sie den AWS standardmäßigen -verwalteten Schlüssel verwenden oder einen kundenverwalteten Schlüssel angeben, den Sie bereits erstellt haben. AWS KMS unterstützt Envelope-Verschlüsselung. S3 verwendet die AWS KMS Funktionen für die Envelope-Verschlüsselung, um Ihre Daten weiter zu schützen. Die Umschlagverschlüsselung bezeichnet das Verschlüsseln Ihrer Klartextdaten mit einem Datenschlüssel und die anschließende Verschlüsselung dieses Datenschlüssels mit einem KMS-Schlüssel. Weitere Informationen zur Envelope-Verschlüsselung finden Sie unter Envelope-Verschlüsselung im AWS Key Management Service -Entwicklerhandbuch.

Wenn Sie keinen kundenverwalteten Schlüssel angeben, erstellt Amazon S3 automatisch ein Von AWS verwalteter Schlüssel in Ihrem , AWS-Konto wenn Sie zum ersten Mal ein mit SSE-KMS verschlüsseltes Objekt zu einem Bucket hinzufügen. Standardmäßig verwendet Amazon S3 diesen KMS-Schlüssel für SSE-KMS.

Anmerkung

Objekte, die mit SSE-KMS mit Von AWS verwaltete Schlüssel verschlüsselt wurden, können nicht kontoübergreifend gemeinsam genutzt werden. Wenn Sie SSE-KMS-Daten kontoübergreifend freigeben müssen, müssen Sie einen vom Kunden verwalteten Schlüssel von verwenden AWS KMS.

Wenn Sie einen vom Kunden verwalteten Schlüssel für SSE-KMS verwenden möchten, können Sie einen symmetrischen kundenverwalteten Verschlüsselungsschlüssel erstellen, bevor Sie SSE-KMS konfigurieren. Wenn Sie dann SSE-KMS für Ihren Bucket konfigurieren, können Sie den vorhandenen vom Kunden verwalteten Schlüssel angeben. Weitere Informationen um symmetrischen Verschlüsselungsschlüssel finden Sie unter Symmetrische KMS-Verschlüsselungsschlüssel im Entwicklerhandbuch für AWS Key Management Service .

Durch die Erstellung eines vom Kunden verwalteten Schlüssels erhalten Sie mehr Flexibilität und Kontrolle. Beispielsweise können Sie kundenverwaltete Schlüssel erstellen, drehen und deaktivieren. Sie können auch Zugriffskontrollen definieren und die vom Kunden verwalteten Schlüssel prüfen, mit denen Sie Ihre Daten schützen. Weitere Informationen zu vom Kunden verwalteten und AWS von verwalteten Schlüsseln finden Sie unter Kundenschlüssel und AWS -Schlüssel im AWS Key Management Service Entwicklerhandbuch für .

Anmerkung

Wenn Sie serverseitige Verschlüsselung mit einem kundenverwalteten Schlüssel verwenden, der in einem externen Schlüsselspeicher abgelegt ist, sind Sie im Gegensatz zu Standard-KMS-Schlüsseln dafür verantwortlich, die Verfügbarkeit und Beständigkeit Ihres Schlüsselmaterials sicherzustellen. Weitere Informationen zu externen Schlüsselspeichern und dazu, wie sie das Modell der geteilten Verantwortung verändern, finden Sie unter Externe Schlüsselspeicher im Entwicklerhandbuch für AWS Key Management Service .

Wenn Sie Ihre Daten mit einem Von AWS verwalteter Schlüssel oder einem vom Kunden verwalteten Schlüssel verschlüsseln möchten, AWS KMS führen und Amazon S3 die folgenden Envelope-Verschlüsselungsaktionen aus:

  1. Amazon S3 fordert einen Klartext-Datenschlüssel und eine mit dem angegebenen KMS-Schlüssel verschlüsselte Kopie des Schlüssels an.

  2. AWS KMS generiert einen Datenschlüssel, verschlüsselt ihn mit dem KMS-Schlüssel und sendet sowohl den Klartext-Datenschlüssel als auch den verschlüsselten Datenschlüssel an Amazon S3.

  3. Amazon S3 verschlüsselt die Daten mit dem Datenschlüssel und entfernt anschließend den Klartextschlüssel schnellstmöglich aus dem Arbeitsspeicher.

  4. Amazon S3 speichert den verschlüsselten Datenschlüssel im Metadatenformat zusammen mit den verschlüsselten Daten.

Wenn Sie anfordern, dass Ihre Daten entschlüsselt werden, AWS KMS führen Amazon S3 und die folgenden Aktionen aus:

  1. Amazon S3 sendet den verschlüsselten Datenschlüssel an AWS KMS in einer -DecryptAnforderung.

  2. AWS KMS entschlüsselt den verschlüsselten Datenschlüssel mit demselben KMS-Schlüssel und gibt den Klartext-Datenschlüssel an Amazon S3 zurück.

  3. Amazon S3 entschlüsselte die verschlüsselten Daten mit dem Klartext-Datenschlüssel und entfernt den Klartext-Datenschlüssel anschließend schnellstmöglich aus dem Arbeitsspeicher.

Wichtig

Wenn Sie einen AWS KMS key für die serverseitige Verschlüsselung in Amazon S3 verwenden, müssen Sie einen KMS-Schlüssel mit symmetrischer Verschlüsselung auswä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 .

Wenn Sie Anfragen identifizieren möchten, die SSE-KMS angeben, können Sie die Metriken Alle SSE-KMS-Anfragen und % aller SSE-KMS-Anfragen der Metriken von Amazon S3 Storage Lens verwenden. S3 Storage Lens ist eine Cloud-Speicheranalysefunktion, mit der Sie unternehmensweite Einblicke in die Nutzung und Aktivität von Objektspeichern erhalten können. Weitere Informationen finden Sie unter Bewertung Ihrer Speicheraktivität und -nutzung mit S3 Storage Lens. Eine vollständige Liste der Metriken finden Sie im Glossar der S3-Storage-Lens-Metriken.

Amazon-S3-Bucket-Schlüssel

Wenn Sie die serverseitige Verschlüsselung mit AWS KMS (SSE-KMS) konfigurieren, können Sie Ihre Buckets für die Verwendung von S3-Bucket-Schlüsseln für SSE-KMS konfigurieren. Die Verwendung eines Schlüssels auf Bucket-Ebene für SSE-KMS kann Ihre AWS KMS Anforderungskosten um bis zu 99 Prozent senken, indem der Anforderungsdatenverkehr von Amazon S3 zu verringert wird AWS KMS.

Wenn Sie einen Bucket für die Verwendung von S3-Bucket-Schlüsseln für SSE-KMS bei neuen Objekten konfigurieren, generiert AWS KMS einen Schlüssel auf Bucket-Ebene, mit dem eindeutige Datenschlüssel für Objekte im Bucket erstellt werden. Dieser S3-Bucket-Schlüssel wird für einen zeitlich begrenzten Zeitraum in Amazon S3 verwendet, wodurch Amazon S3 weitere Anforderungen an stellen muss AWS KMS , um Verschlüsselungsvorgänge abzuschließen. Weitere Informationen zur Verwendung von S3-Bucket-Schlüsseln finden Sie unter Reduzieren des Preises von SSE-KMS mit Amazon-S3-Bucket-Schlüsseln.

Erzwingen serverseitiger Verschlüsselung

Wenn Sie die serverseitige Verschlüsselung aller Objekte in einem bestimmten Amazon-S3-Bucket anfordern möchten, können Sie eine Bucket-Richtlinie verwenden. Beispielsweise verweigert die folgende Bucket-Richtlinie jedem die Berechtigung zum Hochladen von Objekten (s3:PutObject), wenn die Anforderung nicht den Header x-amz-server-side-encryption-aws-kms-key-id enthält, der die serverseitige Verschlüsselung mit SSE-KMS anfordert.

{ "Version":"2012-10-17", "Id":"PutObjectPolicy", "Statement":[{ "Sid":"DenyObjectsThatAreNotSSEKMS", "Effect":"Deny", "Principal":"*", "Action":"s3:PutObject", "Resource":"arn:aws:s3:::DOC-EXAMPLE-BUCKET1/*", "Condition":{ "Null":{ "s3:x-amz-server-side-encryption-aws-kms-key-id":"true" } } } ] }

Um zu verlangen, dass ein bestimmter zum Verschlüsseln der Objekte in einem Bucket verwendet AWS KMS key wird, können Sie den s3:x-amz-server-side-encryption-aws-kms-key-id Bedingungsschlüssel verwenden. Um den KMS-Schlüssel anzugeben, müssen Sie einen Amazon-Ressourcennamen (ARN) des AWS Identity and Access Management Schlüssels im arn:aws:kms:region:acct-id:key/key-id Format verwenden. überprüft nicht, ob die Zeichenfolge für s3:x-amz-server-side-encryption-aws-kms-key-id vorhanden ist.

Anmerkung

Wenn Sie ein Objekt hochladen, können Sie den KMS-Schlüssel über den Header x-amz-server-side-encryption-aws-kms-key-id festlegen. Wenn der Header in der Anforderung nicht vorhanden ist, geht Amazon S3 davon aus, dass Sie den Von AWS verwalteter Schlüssel verwenden möchten. Unabhängig davon muss die AWS KMS Schlüssel-ID, die Amazon S3 für die Objektverschlüsselung verwendet, mit der AWS KMS Schlüssel-ID in der Richtlinie übereinstimmen, andernfalls lehnt Amazon S3 die Anforderung ab.

Eine vollständige Liste der Amazon S3-spezifischen Bedingungsschlüssel finden Sie unter Bedingungsschlüssel für Amazon S3 in der Service-Autorisierungs-Referenz.

Verschlüsselungskontext

Ein Verschlüsselungskontext ist ein Satz von Schlüssel-Wert-Paaren, die zusätzliche kontextbezogene Informationen zu den Daten enthalten können. Der Verschlüsselungskontext ist nicht verschlüsselt. Wenn für eine Verschlüsselungsoperation ein Verschlüsselungskontext angegeben wird, muss Amazon S3 denselben Verschlüsselungskontext auch für die Entschlüsselungsoperation angeben. Andernfalls schlägt die Entschlüsselung fehl. AWS KMS verwendet den Verschlüsselungskontext als zusätzliche authentifizierte Daten (AAD), um die authentifizierte Verschlüsselung zu unterstützen. Weitere Informationen zum Verschlüsselungs-Kontext finden Sie unter Encryption Context (Verschlüsselungs-Kontext) im AWS Key Management Service -Entwicklerhandbuch.

Amazon S3 verwendet automatisch den Amazon-Ressourcennamen (ARN) des Objekts oder Buckets als Verschlüsselungskontextpaar:

  • Wenn Sie SSE-KMS verwenden, ohne einen S3-Bucket-Schlüssel zu aktivieren, verwenden Sie den Objekt-ARN als Verschlüsselungskontext.

    arn:aws:s3:::object_ARN
  • Wenn Sie SSE-KMS verwenden und einen S3-Bucket-Schlüssel aktivieren, wird der Bucket-ARN als Verschlüsselungskontext verwendet. Weitere Informationen zu S3-Bucket-Schlüsseln finden Sie unter Reduzieren des Preises von SSE-KMS mit Amazon-S3-Bucket-Schlüsseln.

    arn:aws:s3:::bucket_ARN

Sie können optional ein zusätzliches Verschlüsselungskontextpaar bereitstellen, indem Sie den -x-amz-server-side-encryption-contextHeader in einer s3:PutObject-Anforderung verwenden. Da der Verschlüsselungskontext jedoch nicht verschlüsselt ist, sollte er keine sensiblen Informationen enthalten. Amazon S3 speichert dieses zusätzliche Schlüsselpaar zusammen mit dem Standardverschlüsselungskontext. Wenn Ihre PUT-Anforderung verarbeitet wird, hängt Amazon S3 den Standardverschlüsselungskontext aws:s3:arn an den von Ihnen bereitgestellten an.

Sie können den Verschlüsselungskontext verwenden, um Ihre kryptografischen Vorgänge zu identifizieren und zu kategorisieren. Sie können auch den ARN-Wert des Standardverschlüsselungskontexts verwenden, um relevante Anfragen in zu verfolgen, AWS CloudTrail indem Sie anzeigen, welcher Amazon S3-ARN mit welchem Verschlüsselungsschlüssel verwendet wurde.

Im requestParameters Feld einer CloudTrail Protokolldatei sieht der Verschlüsselungskontext ähnlich wie der folgende aus.

"encryptionContext": { "aws:s3:arn": "arn:aws:s3:::DOC-EXAMPLE-BUCKET1/file_name" }

Wenn Sie SSE-KMS mit der optionalen S3-Bucket-Keys-Funktion verwenden, ist der Verschlüsselungskontextwert der ARN des Buckets.

"encryptionContext": { "aws:s3:arn": "arn:aws:s3:::DOC-EXAMPLE-BUCKET1" }

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

  • Wichtig

    Alle - GET und -PUTAnfragen für AWS KMS verschlüsselte Objekte müssen mit Secure Sockets Layer (SSL) oder Transport Layer Security (TLS) gestellt werden. Anforderungen müssen auch mit gültigen Anmeldeinformationen signiert werden, z. B. mit AWS Signature Version 4 (oder AWS Signature Version 2).

    AWS Signature Version 4 ist der Prozess zum Hinzufügen von Authentifizierungsinformationen zu AWS Anforderungen, die über HTTP gesendet werden. Aus Sicherheitsgründen AWS müssen die meisten Anfragen an mit einem Zugriffsschlüssel signiert werden, der aus einer Zugriffsschlüssel-ID und einem geheimen Zugriffsschlüssel besteht. Diese beiden Schlüssel werden in der Regel als Sicherheitsanmeldeinformationen bezeichnet. Weitere Informationen finden Sie unter Authenticating Requests (Authentifizierung von Anforderungen) (AWS Signature Version 4) und Signature Version 4 signing process (Signaturprozess).

  • Wichtig

    Wenn Ihr Objekt SSE-KMS verwendet, dürfen Sie keine Verschlüsselungsanforderungs-Header für GET- und HEAD-Anforderungen senden. Andernfalls erhalten Sie den Fehler HTTP 400 Bad Request.