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üssel () SSE-KMS
Wichtig
Amazon S3 wendet jetzt serverseitige Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3) als Basisverschlüsselungsstufe 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 in CloudTrail Logs, S3 Inventory, S3 Storage Lens, der Amazon S3-Konsole und als zusätzlicher Amazon S3-API-Antwort-Header in den SDKs AWS CLI und AWS verfügbar. Weitere Informationen finden Sie unter Häufig gestellte Fragen zur Standardverschlüsselung.
Server-side Verschlüsselung ist die Verschlüsselung von Daten am Zielort durch die Anwendung oder den Dienst, der sie empfängt.
Amazon S3 aktiviert automatisch die serverseitige Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3) für das Hochladen neuer Objekte.
Sofern Sie nichts anderes angeben, werden Buckets standardmäßig zum Verschlüsseln SSE-S3 von Objekten verwendet. Sie können Buckets jedoch so konfigurieren, dass sie stattdessen die serverseitige Verschlüsselung mit AWS Key Management Service (AWS KMS) -Schlüsseln () verwenden. 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. Außerdem SSE-KMS wird die S3-Prüfsumme (als Teil der Metadaten des Objekts) in verschlüsselter Form gespeichert, wenn sie für das Objekt angefordert wird. Weitere Informationen zur Prüfsumme finden Sie unter Überprüfen der Objektintegrität in Amazon S3.
Wenn Sie KMS-Schlüssel verwenden, können Sie AWS KMS mithilfe der AWS-Managementkonsole
-
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 die korrekte Verwendung der KMS-Schlüssel. Das Auditing wird von der AWS KMS -API unterstützt, nicht jedoch von der AWS KMS -Konsole;
.
Die Sicherheitskontrollen AWS KMS können Ihnen helfen, die 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 SSE-KMS Verschlüsselung mit einem S3-Bucket verwenden, AWS KMS keys muss sich dieser 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 im AWS Key Management Service -Entwicklerhandbuch und in den AWS KMS -Preisen
Anweisungen, wie Sie IAM-Benutzern den Zugriff auf KMS-encrypted Buckets ermöglichen, finden Sie unter Mein Amazon S3-Bucket verfügt über eine Standardverschlüsselung mit einem benutzerdefinierten AWS KMS Schlüssel. Wie kann ich Benutzern erlauben, vom Bucket herunterzuladen und in den Bucket hochzuladen?
Berechtigungen
Um erfolgreich eine PutObject Anfrage zur Verschlüsselung eines Objekts mit einem AWS KMS Schlüssel für Amazon S3 zu stellen, 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:Decrypt Berechtigungen für den Schlüssel. Um einen mehrteiligen Upload durchzuführen, um ein Objekt mit einem zu verschlüsseln AWS KMS key, benötigen Sie die kms:Decrypt Berechtigungen kms:GenerateDataKey und für den Schlüssel.
Wichtig
-
Überprüfen Sie sorgfältig die Berechtigungen, die in Ihren KMS-Schlüsselrichtlinien gewährt werden. Beschränken Sie die vom Kunden verwalteten KMS-Schlüsselrichtlinienberechtigungen immer nur auf die IAM-Prinzipale und AWS -Dienste, die auf die entsprechende Schlüsselaktion zugreifen müssen. AWS KMS Weitere Informationen finden Sie unter Schlüsselrichtlinien in AWS KMS.
-
Wenn ein Bucket als Ziel für die Amazon S3-Serverzugriffsprotokollierung verwendet wird, muss der Ziel-Bucket von Amazon S3 verwaltete Schlüssel () verwenden. SSE-S3 Wenn der Ziel-Bucket die SSE-KMS Standardverschlüsselung verwendet, liefert Amazon S3 möglicherweise Protokollobjekte, die mit einem Schlüssel verschlüsselt sind, auf den Sie nicht zugreifen können. Um dieses Problem zu beheben, ändern Sie die Standardverschlüsselung des Ziel-Buckets auf SSE-S3. Weitere Informationen finden Sie unter Aktivieren Sie die Amazon-S3-Server-Zugriffsprotokollierung.
Themen
AWS KMS keys
Wenn Sie die serverseitige Verschlüsselung mit AWS KMS (SSE-KMS) verwenden, können Sie den standardmäßigen AWS verwalteten Schlüssel verwenden, oder Sie können einen vom Kunden verwalteten Schlüssel angeben, den Sie bereits erstellt haben. AWS KMS unterstützt die Umschlagverschlüsselung. S3 verwendet die AWS KMS Funktionen der Umschlagverschlüsselung, um Ihre Daten weiter zu schützen. Bei der Umschlagverschlüsselung werden Ihre Klartextdaten mit einem Datenschlüssel verschlüsselt, und dieser Datenschlüssel wird dann mit einem KMS-Schlüssel verschlüsselt. Weitere Informationen zur Envelope-Verschlüsselung finden Sie unter Envelope-Verschlüsselung im AWS Key Management Service -Entwicklerhandbuch.
Wenn Sie keinen vom Kunden verwalteten Schlüssel angeben, erstellt Amazon S3 beim ersten Mal automatisch einen Von AWS verwalteter Schlüssel Schlüssel, mit AWS-Konto dem Sie ein verschlüsseltes Objekt SSE-KMS zu einem Bucket hinzufügen. Standardmäßig verwendet Amazon S3 diesen KMS-Schlüssel für SSE-KMS.
Anmerkung
Objekte, die SSE-KMS mit mit verschlüsselt wurden, Von AWS verwaltete Schlüssel können nicht kontoübergreifend geteilt werden. Wenn Sie SSE-KMS Daten kontoübergreifend teilen 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 verwenden möchten SSE-KMS, erstellen Sie vor der Konfiguration einen kundenverwalteten Schlüssel für symmetrische Verschlüsselung. SSE-KMS Geben Sie dann bei der Konfiguration SSE-KMS für Ihren Bucket den vorhandenen kundenverwalteten Schlüssel an. 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 verwalteten Schlüsseln finden Sie im AWS Key Management Service Entwicklerhandbuch unter AWS Kundenschlüssel und Schlüssel.
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 .
SSE-KMS Verschlüsselung für kontoübergreifende Operationen verwenden
Beachten Sie Folgendes, wenn Sie kontoübergreifende Operationen verschlüsseln:
-
Wenn zum Zeitpunkt der Anfrage oder über die Standardverschlüsselungskonfiguration des Buckets kein AWS KMS key Amazon-Ressourcenname (ARN) oder -Alias bereitgestellt wird, wird das Von AWS verwalteter Schlüssel (
aws/s3) aus dem Upload-Konto für die Verschlüsselung verwendet und ist für die Entschlüsselung erforderlich. -
Von AWS verwalteter Schlüssel (
aws/s3) kann als KMS-Schlüssel für kontoübergreifende Operationen verwendet werden, wenn die Upload- und Zugreifenden AWS Identity and Access Management (IAM) Principals von demselben stammen. AWS-Konto -
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 vollständig qualifizierten KMS-Schlüssel-ARN. Wenn Sie stattdessen einen KMS-Schlüsselalias verwenden, AWS KMS wird der Schlüssel im Konto des Anforderers aufgelöst. Dieses Verhalten kann dazu führen, dass Daten mit einem KMS-Schlüssel verschlüsselt werden, der dem Anforderer und nicht dem Bucket-Eigentümer gehört.
-
Sie müssen einen Schlüssel angeben, für den Ihnen (dem Anforderer) die Berechtigung
Encrypterteilt wurde. 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 .
Weitere Informationen darüber, wann Sie vom Kunden verwaltete Schlüssel und AWS verwaltete KMS-Schlüssel verwenden sollten, finden Sie unter Sollte ich einen Von AWS verwalteter Schlüssel oder einen vom Kunden verwalteten Schlüssel verwenden, um meine Objekte in Amazon S3 zu verschlüsseln?
SSE-KMS Verschlüsselungsworkflow
Wenn Sie sich dafür entscheiden, Ihre Daten mit einem Von AWS verwalteter Schlüssel oder einem vom Kunden verwalteten Schlüssel zu verschlüsseln, AWS KMS und Amazon S3 die folgenden Aktionen zur Verschlüsselung des Umschlags ausführen:
-
Amazon S3 fordert einen Klartext-Datenschlüssel und eine mit dem angegebenen KMS-Schlüssel verschlüsselte Kopie des Schlüssels an.
-
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.
-
Amazon S3 verschlüsselt die Daten mit dem Datenschlüssel und entfernt anschließend den Klartextschlüssel schnellstmöglich aus dem Arbeitsspeicher.
-
Amazon S3 speichert den verschlüsselten Datenschlüssel im Metadatenformat zusammen mit den verschlüsselten Daten.
Wenn Sie die Entschlüsselung Ihrer Daten anfordern, Amazon S3 und AWS KMS führen Sie die folgenden Aktionen aus:
-
Amazon S3 sendet den verschlüsselten Datenschlüssel AWS KMS in einer
DecryptAnfrage an. -
AWS KMS entschlüsselt den verschlüsselten Datenschlüssel mithilfe desselben KMS-Schlüssels und gibt den Klartext-Datenschlüssel an Amazon S3 zurück.
-
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 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 .
Überwachung der Verschlüsselung SSE-KMS
Um Anfragen zu identifizieren, die Folgendes angeben SSE-KMS, können Sie die Metriken Alle SSE-KMS Anfragen und% aller SSE-KMS Anfragen in den 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 Anzahl der SSE-KMS aktivierten Buckets und die% SSE-KMS aktivierten Buckets 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 Verwendung Ihrer AWS KMS Schlüssel für Ihre SSE-KMS verschlüsselten Daten zu überprüfen, können Sie Protokolle verwenden AWS CloudTrail . 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.
Amazon-S3-Bucket-Schlüssel
Wenn Sie die serverseitige Verschlüsselung mit AWS KMS (SSE-KMS) konfigurieren, können Sie Ihre Buckets so konfigurieren, dass sie S3-Bucket Keys dafür verwenden. SSE-KMS Durch die Verwendung eines Schlüssels auf Bucket-Ebene für SSE-KMS können Sie Ihre AWS KMS Anforderungskosten um bis zu 99 Prozent senken, indem der Anforderungsverkehr von Amazon S3 auf reduziert wird. AWS KMS
Wenn Sie einen Bucket für die Verwendung eines S3-Bucket-Schlüssels für neue Objekte konfigurieren, wird ein Schlüssel SSE-KMS auf Bucket-Ebene AWS KMS generiert, der verwendet wird, um eindeutige Datenschlüssel für Objekte im Bucket zu erstellen. Dieser S3-Bucket Key wird innerhalb von Amazon S3 für einen begrenzten Zeitraum verwendet, wodurch Amazon S3 noch weniger Anfragen stellen muss, um Verschlüsselungsvorgänge AWS KMS abzuschließen. Weitere Informationen zur Verwendung von S3-Bucket-Schlüsseln finden Sie unter Reduzierung 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. Beispielsweise verweigert die folgende Bucket-Richtlinie allen Benutzern die Upload-Object (s3:PutObject) -Berechtigung, wenn die Anfrage keinen x-amz-server-side-encryption-aws-kms-key-id Header enthält, mit dem eine serverseitige Verschlüsselung angefordert wird. SSE-KMS
Um zu verlangen, dass ein bestimmtes AWS KMS key Objekt zum Verschlüsseln der Objekte in einem Bucket verwendet 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 Resource Name (ARN) -Schlüssel verwenden, der das folgende arn:aws:kms: Format hat. AWS Identity and Access Management überprüft nicht, ob die Zeichenfolge für region:acct-id:key/key-ids3:x-amz-server-side-encryption-aws-kms-key-id existiert.
Anmerkung
Wenn Sie ein Objekt hochladen, können Sie den KMS-Schlüssel über den x-amz-server-side-encryption-aws-kms-key-id-Header angeben oder sich auf Ihre Standard-Bucket-Verschlüsselungskonfiguration verlassen. Wenn Ihre PutObject Anfrage zwar aws:kms im x-amz-server-side-encryption Header, aber nicht im x-amz-server-side-encryption-aws-kms-key-id Header angegeben ist, geht Amazon S3 davon aus, dass Sie den verwenden möchten Von AWS verwalteter Schlüssel. 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 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-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 einen S3-Bucket Key verwenden, SSE-KMS ohne ihn zu aktivieren, wird der Objekt-ARN als Verschlüsselungskontext verwendet.
arn:aws:s3:::object_ARN -
Wenn Sie einen S3-Bucket Key verwenden SSE-KMS und aktivieren, wird der Bucket-ARN als Verschlüsselungskontext verwendet. Weitere Informationen zu S3-Bucket-Schlüsseln finden Sie unter Reduzierung 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 Standard-ARN-Wert für den Verschlüsselungskontext verwenden, um relevante Anfragen nachzuverfolgen, AWS CloudTrail indem Sie sehen, welcher Amazon S3-ARN mit welchem Verschlüsselungsschlüssel verwendet 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 die optionale Funktion S3 Bucket Keys verwenden SSE-KMS , ist der Verschlüsselungskontextwert der 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
Alle GET PUT Anfragen für AWS KMS verschlüsselte Objekte müssen mithilfe von Secure Sockets Layer (SSL) oder Transport Layer Security (TLS) gestellt werden. Anfragen müssen außerdem mit gültigen Anmeldeinformationen wie AWS Signature Version 4 (oder AWS Signature Version 2) signiert werden.
AWS Bei Signature Version 4 werden über HTTP gesendete AWS Anfragen Authentifizierungsinformationen hinzugefügt. Aus Sicherheitsgründen AWS müssen die meisten Anfragen 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 dies verwendet SSE-KMS, senden Sie keine Header für GET Verschlüsselungsanfragen für Anfragen und HEAD Anfragen. Andernfalls erhalten Sie den Fehler HTTP 400 Bad Request.