Verwenden Sie serverseitige Verschlüsselung mit AWS KMS Schlüssel (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 Sie serverseitige Verschlüsselung mit AWS KMS Schlüssel (SSE-KMS)

Wichtig

Amazon S3 wendet jetzt serverseitige Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3) als Basisverschlüsselungsebene 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 das Hochladen neuer Objekte ist verfügbar in AWS CloudTrail Logs, S3 Inventory, S3 Storage Lens, die Amazon S3 S3-Konsole und als zusätzlicher Amazon S3 API S3-Antwort-Header in der AWS Command Line Interface and AWS SDKs. Weitere Informationen finden Sie unter Standardverschlüsselung FAQ.

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

Amazon S3 aktiviert automatisch die serverseitige Verschlüsselung mit Amazon S3 S3-verwalteten Schlüsseln (SSE-S3) für das Hochladen neuer Objekte.

Sofern Sie nichts anderes angeben, verwenden Buckets standardmäßig SSE -S3, um Objekte zu verschlüsseln. Sie können sich jedoch dafür entscheiden, Buckets so zu konfigurieren, dass sie serverseitige Verschlüsselung mit verwenden AWS Key Management Service (AWS KMS) stattdessen Schlüssel (SSE-KMS). Weitere Informationen finden Sie unter Geben Sie die serverseitige Verschlüsselung an mit AWS KMS (SSE-KMS).

AWS KMS ist ein Dienst, der sichere, hochverfügbare Hardware 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 - für das Objekt angefordert KMS wird, wird außerdem die S3-Prüfsumme (als Teil der Metadaten des Objekts) 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 durch die AWS Management Consoleoder die AWS KMS APIum Folgendes zu tun:

  • Schlüssel zentral erstellen, anzeigen, bearbeiten, überwachen, aktivieren oder deaktivieren, rotieren und 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 unterstützt von AWS KMS API, aber nicht von AWS KMSAWS Management Console.

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

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

Berechtigungen

Um ein Objekt hochzuladen, das mit einem verschlüsselt ist AWS KMS key für Amazon S3 benötigen Sie kms:GenerateDataKey Berechtigungen für den Schlüssel. Um ein Objekt herunterzuladen, das mit einem verschlüsselt ist AWS KMS key, Sie benötigen kms:Decrypt Berechtigungen. Für Informationen über AWS KMS Berechtigungen, die für mehrteilige Uploads erforderlich sind, finden Sie unter. Mehrteiliger Upload API und Berechtigungen

Wichtig

Prüfen Sie sorgfältig die Berechtigungen, die Ihnen in Ihren KMS wichtigsten Richtlinien gewährt werden. Beschränken Sie die vom Kunden verwalteten Berechtigungen für KMS wichtige Richtlinien immer nur auf die IAM Hauptbenutzer und AWS Dienste, die auf die entsprechenden zugreifen müssen AWS KMS zentrale Maßnahme. Weitere Informationen finden Sie unter Wichtige Richtlinien in AWS KMS.

AWS KMS keys

Wenn Sie serverseitige Verschlüsselung verwenden mit AWS KMS (SSE-KMS), Sie können die Standardeinstellung verwenden AWS verwalteter Schlüssel, oder Sie können einen vom Kunden verwalteten Schlüssel angeben, den Sie bereits erstellt haben. AWS KMS unterstützt die Verschlüsselung von Umschlägen. S3 verwendet die AWS KMS Funktionen für die Verschlüsselung von Umschlägen, um Ihre Daten weiter zu schützen. Bei der Umschlagverschlüsselung werden Ihre Klartextdaten mit einem Datenschlüssel und anschließend dieser Datenschlüssel mit einem Schlüssel verschlüsselt. KMS Weitere Informationen zur Umschlagverschlüsselung finden Sie unter Umschlagverschlüsselung im AWS Key Management Service Entwicklerhandbuch.

Wenn Sie keinen vom Kunden verwalteten Schlüssel angeben, erstellt Amazon S3 automatisch einen Von AWS verwalteter Schlüssel in Ihrem AWS-Konto das erste Mal, dass Sie ein mit SSE - verschlüsseltes Objekt KMS 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 verschlüsselt wurden Von AWS verwaltete Schlüsselkann nicht kontoübergreifend geteilt werden. Wenn Sie KMS Daten kontenübergreifend SSE teilen möchten, müssen Sie einen vom Kunden verwalteten Schlüssel von verwenden AWS KMS.

Wenn Sie einen vom Kunden verwalteten Schlüssel für SSE - verwenden möchtenKMS, erstellen Sie vor der Konfiguration SSE von - einen vom Kunden verwalteten Schlüssel für symmetrische Verschlüsselung. KMS Wenn Sie dann SSE - KMS für Ihren Bucket konfigurieren, geben Sie den vorhandenen, vom Kunden verwalteten Schlüssel an. Weitere Informationen zum symmetrischen Verschlüsselungsschlüssel finden Sie unter Symmetrische KMS Verschlüsselungsschlüssel im AWS Key Management Service Entwicklerhandbuch.

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 den vom Kunden verwalteten und AWS verwaltete Schlüssel finden Sie unter Kundenschlüssel und AWS Schlüssel in der AWS Key Management Service Leitfaden für Entwickler.

Anmerkung

Wenn Sie serverseitige Verschlüsselung mit einem vom Kunden verwalteten Schlüssel verwenden, der in einem externen Schlüsselspeicher gespeichert ist, sind Sie im Gegensatz zu KMS Standardschlüsseln dafür verantwortlich, die Verfügbarkeit und Haltbarkeit Ihres Schlüsselmaterials sicherzustellen. Weitere Informationen zu externen Schlüsselspeichern und wie sie das Modell der gemeinsamen Verantwortung verändern, finden Sie unter Externe Schlüsselspeicher in der AWS Key Management Service Leitfaden für Entwickler.

Verwendung SSE — KMS Verschlüsselung für kontoübergreifende Operationen

Beachten Sie Folgendes, wenn Sie kontoübergreifende Operationen verschlüsseln:

  • Wenn ein AWS KMS key Der Amazon-Ressourcenname (ARN) oder Alias wird bei der Anfrage oder über die Standardverschlüsselungskonfiguration des Buckets, die Von AWS verwalteter Schlüssel (aws/s3) wird verwendet.

  • Wenn Sie S3-Objekte hochladen oder auf sie zugreifen, indem Sie AWS Identity and Access Management (IAM) Prinzipale, die sich im selben befinden AWS-Konto als KMS Schlüssel können Sie den verwenden Von AWS verwalteter Schlüssel (aws/s3).

  • Verwenden Sie einen vom Kunden verwalteten Schlüssel, wenn Sie kontoübergreifenden Zugriff auf Ihre S3-Objekte gewähren möchten. Sie können die Richtlinie eines vom Kunden verwalteten Schlüssel so konfigurieren, dass der Zugriff von einem anderen Konto aus möglich ist.

  • Wenn Sie einen vom Kunden verwalteten KMS Schlüssel angeben, empfehlen wir die Verwendung eines vollqualifizierten KMS SchlüsselsARN. Wenn Sie stattdessen einen KMS Schlüsselalias verwenden, AWS KMS löst den Schlüssel im Konto des Anfragenden auf. Dieses Verhalten kann dazu führen, dass Daten mit einem KMS Schlüssel verschlüsselt werden, der dem Anforderer und nicht dem Bucket-Besitzer gehört.

  • Sie müssen einen Schlüssel angeben, für den Ihnen (dem Anforderer) die Berechtigung Encrypt erteilt wurde. Weitere Informationen finden Sie unter Erlauben Sie Schlüsselbenutzern, einen KMS Schlüssel für kryptografische Operationen zu verwenden in AWS Key Management Service Leitfaden für Entwickler.

Weitere Informationen darüber, wann Sie vom Kunden verwaltete Schlüssel verwenden sollten, und AWS verwaltete KMS Schlüssel finden Sie unter Sollte ich einen verwenden Von AWS verwalteter Schlüssel oder ein vom Kunden verwalteter Schlüssel zur Verschlüsselung meiner Objekte in Amazon S3?

SSE- KMS Verschlüsselungsworkflow

Wenn Sie sich dafür entscheiden, Ihre Daten mit einem zu verschlüsseln Von AWS verwalteter Schlüssel oder einen vom Kunden verwalteten Schlüssel, AWS KMS und Amazon S3 führen die folgenden Envelope-Verschlüsselungsaktionen durch:

  1. Amazon S3 fordert einen Klartext-Datenschlüssel und eine Kopie des Schlüssels an, der unter dem angegebenen KMS Schlüssel verschlüsselt wurde.

  2. AWS KMS generiert einen Datenschlüssel, verschlüsselt ihn unter 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 beantragen, dass Ihre Daten entschlüsselt werden, Amazon S3 und AWS KMS führen Sie die folgenden Aktionen aus:

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

  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 eine verwenden AWS KMS key Für die serverseitige Verschlüsselung in Amazon S3 müssen Sie einen symmetrischen KMS Verschlüsselungsschlüssel wählen. Amazon S3 unterstützt nur symmetrische KMS Verschlüsselungsschlüssel. Weitere Informationen zu diesen Schlüsseln finden Sie unter Symmetrische KMS Verschlüsselungsschlüssel im AWS Key Management Service Entwicklerhandbuch.

Prüfung SSE — KMS Verschlüsselung

Um Anfragen zu identifizieren, die SSE - angebenKMS, können Sie die Metriken All SSE - KMS requests und% all SSE - KMS requests in Amazon S3 Storage Lens Metriken verwenden. S3 Storage Lens ist eine Cloud-Speicheranalysefunktion, mit der Sie unternehmensweite Einblicke in die Nutzung und Aktivität von Objektspeichern erhalten können. Sie können auch die Buckets SSE - KMS enabled bucket count und% SSE - KMS enabled verwenden, um die Anzahl der Buckets zu ermitteln, die (SSE-KMS) für die Standard-Bucket-Verschlüsselung verwendet werden. 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.

Um die Nutzung Ihrer zu überprüfen AWS KMS Schlüssel für Ihre SSE - KMS verschlüsselten Daten, die Sie verwenden können AWS CloudTrail Logs. 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.

Amazon-S3-Bucket-Schlüssel

Wenn Sie die serverseitige Verschlüsselung konfigurieren mit AWS KMS (SSE-KMS), Sie können Ihre Buckets so konfigurieren, dass sie S3-Bucket-Keys für SSE - verwenden. KMS Die Verwendung eines Schlüssels auf Bucket-Ebene für SSE - KMS kann Ihre AWS KMS Anforderungskosten um bis zu 99 Prozent durch Verringerung des Anforderungsverkehrs von Amazon S3 auf AWS KMS.

Wenn Sie einen Bucket so konfigurieren, dass er einen S3-Bucket-Key für SSE — KMS für neue Objekte verwendet, AWS KMS generiert einen Schlüssel auf Bucket-Ebene, der verwendet wird, um eindeutige Datenschlüssel für Objekte im Bucket zu erstellen. Dieser S3-Bucket Key wird für einen begrenzten Zeitraum innerhalb von Amazon S3 verwendet, wodurch Amazon S3 weiter weniger Anfragen stellen muss AWS KMS um Verschlüsselungsvorgänge abzuschließen. Weitere Informationen zur Verwendung von S3-Bucket-Schlüsseln finden Sie unter Senkung der Kosten von SSE — KMS mit Amazon S3 Bucket Keys.

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. Die folgende Bucket-Richtlinie verweigert beispielsweise allen Benutzern die Berechtigung Objekt (s3:PutObject) hochladen, wenn die Anfrage keinen x-amz-server-side-encryption-aws-kms-key-id Header enthält, der eine serverseitige Verschlüsselung mit SSE - anfordert. KMS

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

Um das zu verlangen, ist ein bestimmter AWS KMS key Um die Objekte in einem Bucket zu verschlüsseln, 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 Schlüssel Amazon Resource Name (ARN) verwenden, der das arn:aws:kms:region:acct-id:key/key-id Format hat. AWS Identity and Access Management überprüft nicht, ob die Zeichenfolge für s3:x-amz-server-side-encryption-aws-kms-key-id existiert.

Anmerkung

Wenn Sie ein Objekt hochladen, können Sie den KMS Schlüssel mithilfe des x-amz-server-side-encryption-aws-kms-key-id Headers angeben oder sich auf Ihre Standardkonfiguration für die Bucket-Verschlüsselung verlassen. Wenn Ihre PutObject Anfrage aws:kms im x-amz-server-side-encryption Header spezifiziert ist, aber nicht den x-amz-server-side-encryption-aws-kms-key-id Header spezifiziert, dann geht Amazon S3 davon aus, dass Sie den Von AWS verwalteter Schlüssel. Unabhängig davon, die AWS KMS Die Schlüssel-ID, die Amazon S3 für die Objektverschlüsselung verwendet, muss mit der übereinstimmen AWS KMS Schlüssel-ID in der Richtlinie, andernfalls lehnt Amazon S3 die Anfrage ab.

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

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 fehlschlägt. AWS KMS verwendet den Verschlüsselungskontext als zusätzliche authentifizierte Daten (AAD), um die authentifizierte Verschlüsselung zu unterstützen. Weitere Informationen zum Verschlüsselungskontext finden Sie unter Verschlüsselungskontext im AWS Key Management Service Entwicklerhandbuch.

Standardmäßig verwendet Amazon S3 das Objekt oder den Bucket Amazon Resource Name (ARN) als Verschlüsselungskontextpaar:

  • Wenn Sie SSE - verwenden, KMS ohne einen S3-Bucket Key zu aktivieren, ARN wird das Objekt als Verschlüsselungskontext verwendet.

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

    arn:aws:s3:::bucket_ARN

Sie können optional ein zusätzliches Verschlüsselungskontextpaar bereitstellen, indem Sie den x-amz-server-side-encryption-context Header 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 Standardwert für den Verschlüsselungskontext verwenden, um relevante Anfragen in zu verfolgen AWS CloudTrail indem Sie sich ansehen, welcher Amazon S3 mit welchem Verschlüsselungsschlüssel verwendet ARN wurde.

Im requestParameters Feld einer CloudTrail Protokolldatei sieht der Verschlüsselungskontext dem folgenden ähnlich.

"encryptionContext": { "aws:s3:arn": "arn:aws:s3:::amzn-s3-demo-bucket1/file_name" }

Wenn Sie SSE - KMS mit der optionalen Funktion S3 Bucket Keys verwenden, entspricht der Wert des Verschlüsselungskontextes dem Wert ARN des Buckets.

"encryptionContext": { "aws:s3:arn": "arn:aws:s3:::amzn-s3-demo-bucket1" }

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

Wichtig

Alles GET und PUT Anfragen für AWS KMS verschlüsselte Objekte müssen mit Secure Sockets Layer (SSL) oder Transport Layer Security (TLS) erstellt werden. Anfragen müssen außerdem mit gültigen Anmeldeinformationen signiert werden, z. B. AWS Signaturversion 4 (oder AWS Signaturversion 2).

AWS Signature Version 4 ist der Prozess des Hinzufügens von Authentifizierungsinformationen zu AWS Anfragen gesendet vonHTTP. Aus Sicherheitsgründen richten sich die meisten Anfragen an AWS müssen mit einem Zugriffsschlüssel signiert sein, 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 Authentifizieren von Anfragen (AWSSignaturprozess für Signature Version 4 und Signature Version 4.

Wichtig

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