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.
Die serverseitige Verschlüsselung dient zum Schutz ruhender Daten. Die serverseitige Verschlüsselung verschlüsselt nur die Objektdaten, nicht die Metadaten des Objekts. Mit der serverseitigen Verschlüsselung mit kundenseitig bereitgestellten Schlüsseln (SSE-C) können Sie Ihre Daten mit Ihren eigenen Verschlüsselungsschlüsseln verschlüsselt speichern. Mit dem Verschlüsselungsschlüssel, den Sie als Teil Ihrer Anforderung bereitstellen, verwaltet Amazon S3 die Datenverschlüsselung, wenn es auf Datenträger schreibt, und die Entschlüsselung, wenn Sie auf Ihre Objekte zugreifen. Sie müssen also für die Datenverschlüsselung und -entschlüsselung keinen Code mehr verwalten. Sie müssen nur noch die von Ihnen bereitgestellten Verschlüsselungsschlüssel verwalten.
Wenn Sie ein Objekt hochladen, verwendet Amazon S3 den von Ihnen bereitgestellten Verschlüsselungsschlüssel, um eine AES-256-Verschlüsselung auf Ihre Daten anzuwenden. Amazon S3 entfernt dann den Verschlüsselungsschlüssel aus dem Speicher. Wenn Sie ein Objekt abrufen, müssen Sie denselben Verschlüsselungsschlüssel als Teil Ihrer Anfrage angeben. Amazon S3 überprüft zuerst, ob der von Ihnen bereitgestellte Verschlüsselungsschlüssel übereinstimmt, und entschlüsselt das Objekt, bevor Objektdaten zurückgegeben werden.
Für die Nutzung von SSE-C fallen keine zusätzlichen Gebühren an. Für Anforderungen zum Konfigurieren und Verwenden von SSE-C werden jedoch Standardgebühren für Amazon-S3-Anforderungen berechnet. Informationen zu Preisen finden Sie unter Amazon S3 – Preise
Anmerkung
Amazon S3 speichert den von Ihnen bereitgestellten Verschlüsselungsschlüssel nicht. Stattdessen wird ein zufällig mit einem Salt versehener Hash-basierter Nachrichtenauthentifizierungscode (HMAC) des Verschlüsselungsschlüssels gespeichert, um zukünftige Anfragen zu überprüfen. Der mit einem Salt versehene HMAC-Wert kann nicht verwendet werden, um den Wert des Verschlüsselungsschlüssels abzuleiten oder den Inhalt des verschlüsselten Objekts zu entschlüsseln. Das bedeutet, wenn Sie den Verschlüsselungsschlüssel verlieren, verlieren Sie das Objekt.
Die S3-Replikation unterstützt Objekte, die mit SSE-C verschlüsselt sind. Weitere Informationen zum Replizieren verschlüsselter Objekte finden Sie unter Replizieren verschlüsselter Objekte (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C).
Weitere Informationen zu SSE-C finden Sie in den folgenden Themen.
Themen
Übersicht über SSE-C
Dieser Abschnitt bietet eine Übersicht über SSE-C. Bei der Verwendung von SSE-C sind die folgenden Punkte zu beachten.
-
Sie müssen HTTPS verwenden.
Wichtig
Amazon S3 weist Anfragen über HTTP zurück, wenn SSE-C verwendet wird. Aus Sicherheitsgründen sollten Sie jeden Schlüssel, den Sie versehentlich mittels HTTP senden, als nicht vertrauenswürdig betrachten. Verwerfen Sie den Schlüssel und rotieren Sie ihn wie erforderlich.
-
Das Entity-Tag (ETag) in der Antwort ist nicht der MD5 Hash der Objektdaten.
-
Sie Verwalten ein Mapping, welcher Verschlüsselungsschlüssel für die Verschlüsselung welches Objekts verwendet wurde. Amazon S3 speichert keine Verschlüsselungsschlüssel. Sie sind dafür verantwortlich, zu verwalten, welchen Verschlüsselungsschlüssel Sie für welches Objekt angegeben haben.
-
Wenn für Ihren Bucket Versioning aktiviert ist, kann jede Objektversion, die Sie mit dieser Funktion hochladen, einen eigenen Verschlüsselungsschlüssel haben. Sie sind dafür verantwortlich, zu verwalten, welcher Verschlüsselungsschlüssel für welche Objektversion verwendet wurde.
-
Sie verwalten die Verschlüsselungsschlüssel auf der Clientseite, deshalb verwalten Sie auch alle zusätzlichen Sicherungsmechanismen auf der Clientseite, wie beispielsweise die Schlüsselrotation.
Warnung
Wenn Sie den Verschlüsselungsschlüssel verlieren, schlagen alle
GET
-Anfragen für ein Objekt ohne seinen Verschlüsselungsschlüssel fehl und Sie verlieren das Objekt. -
Anfordern und Einschränken von SSE-C
Um SSE-C für alle Objekte in einem bestimmten Amazon-S3-Bucket anzufordern, können Sie eine Bucket-Richtlinie verwenden.
Die folgende Bucket-Richtlinie verweigert beispielsweise die Berechtigung zum Hochladen von Objekten (s3:PutObject
) für alle Anfragen, die nicht den Header x-amz-server-side-encryption-customer-algorithm
enthalten, der SSE-C anfordert.
{
"Version": "2012-10-17",
"Id": "PutObjectPolicy",
"Statement": [
{
"Sid": "RequireSSECObjectUploads",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::amzn-s3-demo-bucket
/*",
"Condition": {
"Null": {
"s3:x-amz-server-side-encryption-customer-algorithm": "true"
}
}
}
]
}
Sie können auch eine Richtlinie verwenden, um die serverseitige Verschlüsselung aller Objekte in einem bestimmten Amazon-S3-Bucket einzuschränken. Beispielsweise verweigert die folgende Bucket-Richtlinie jedem die s3:PutObject
-Berechtigung zum Hochladen von Objekten, wenn die Anfrage nicht den x-amz-server-side-encryption-customer-algorithm
-Header enthält, der SSE-C anfordert.
{
"Version": "2012-10-17",
"Id": "PutObjectPolicy",
"Statement": [
{
"Sid": "RestrictSSECObjectUploads",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::amzn-s3-demo-bucket
/*",
"Condition": {
"Null": {
"s3:x-amz-server-side-encryption-customer-algorithm": "false"
}
}
}
]
}
Wichtig
Wenn Sie eine Bucket-Richtlinie verwenden, bei der SSE-C aktiviert sein musss3:PutObject
, müssen Sie den x-amz-server-side-encryption-customer-algorithm
Header in alle mehrteiligen Upload-Anfragen (CreateMultipartUpload UploadPart, und) aufnehmen. CompleteMultipartUpload
Vorsigniert und SSE-C URLs
Sie können eine vorsignierte URL erstellen, die für Operationen wie das Hochladen eines neuen Objekts, das Abrufen eines vorhandenen Objekts oder von Objekt-Metadaten verwendet werden kann. Presigned URLs unterstützt SSE-C wie folgt:
-
Beim Erstellen einer vorsignierten URL müssen Sie den Algorithmus unter Verwendung des
x-amz-server-side-encryption-customer-algorithm
-Headers in der Signaturberechnung angeben. -
Wenn Sie die vorsignierte URL verwenden, um ein neues Objekt hochzuladen, ein vorhandenes Objekt abzurufen oder nur Objekt-Metadaten abzurufen, müssen Sie in der Anforderung Ihrer Client-Anwendung alle Verschlüsselungs-Header angeben.
Anmerkung
Für non-SSE-C Objekte können Sie eine vorsignierte URL generieren und diese URL direkt in einen Browser einfügen, um auf die Daten zuzugreifen.
Dies ist für SSE-C-Objekte jedoch nicht möglich, da Sie zusätzlich zur vorsignierten URL auch HTTP-Header einfügen müssen, die für SSE-C-Objekte spezifisch sind. Daher können Sie vorsignierte Objekte URLs für SSE-C nur programmgesteuert verwenden.
Weitere Hinweise zu vorsigniert finden Sie unter. URLs Laden Sie Objekte mit vorsignierten Objekten herunter und laden Sie sie hoch URLs
Angeben der serverseitigen Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C)
Zum Zeitpunkt der Objekterstellung über die REST-API können Sie die serverseitige Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C) angeben. Wenn Sie SSE-C verwenden, müssen Sie mithilfe der folgenden Anforderungs-Header Informationen zum Verschlüsselungsschlüssel bereitstellen.
Name | Beschreibung |
---|---|
x-amz-server-side-encryption-customer-algorithm
|
Verwenden Sie diesen Header, um den Verschlüsselungsalgorithmus anzugeben. Der Header-Wert muss |
x-amz-server-side-encryption-customer-key
|
Verwenden Sie diesen Header, um den base64-codierten 256-bit-Verschlüsselungsschlüssel für Amazon S3 bereitzustellen, mit dem Ihre Daten verschlüsselt und entschlüsselt werden. |
x-amz-server-side-encryption-customer-key-MD5
|
Verwenden Sie diesen Header, um den Base64-codierten MD5 128-Bit-Digest des Verschlüsselungsschlüssels gemäß RFC 1321 bereitzustellen. |
Sie können AWS SDK-Wrapper-Bibliotheken verwenden, um diese Header zu Ihrer Anfrage hinzuzufügen. Falls nötig, können Sie auch die REST-API-Aufrufe in Amazon S3 direkt von Ihrer Anwendung aus durchführen.
Anmerkung
Sie können die Amazon-S3-Konsole nicht zum Hochladen eines Objekts und zum Anfordern von SSE-C verwenden. Sie können die Konsole auch nicht verwenden, um ein vorhandenes Objekt zu aktualisieren (beispielsweise durch Ändern der Speicherklasse oder Hinzufügen von Metadaten), das mittels SSE-C gespeichert wurde.
Amazon S3 S3-Rest APIs , der SSE-C unterstützt
Die folgenden Amazon S3 APIs unterstützen serverseitige Verschlüsselung mit vom Kunden bereitgestellten Verschlüsselungsschlüsseln (SSE-C).
-
GET-Operation – Sie können beim Abrufen von Objekten über die GET-API (siehe GET Object) die Anforderungs-Header angeben.
-
HEAD-Operation – Um Objektmetadaten über die HEAD-API abzurufen (siehe HEAD Object), können Sie diese Anforderungs-Header angeben.
-
Operation PUT: Sie können beim Hochladen von Daten über die PUT Object API (siehe PUT Object) diese Anforderungs-Header angeben.
-
Multipart Upload – Sie können beim Hochladen großer Objekte über die Multipart Upload-API diese Header angeben. Sie geben diese Header in der Initiierungsanforderung (siehe Initiieren mehrteiliger Uploads) und in jeder nachfolgenden Anforderung für einen Teil-Upload an (siehe Hochladen von Teilen oder Hochladen von Teilen – Kopieren). Für jede teilweise Upload-Anfrage muss dieselbe Verschlüsslungsinformation angegeben werden, wie diejenige, die Sie in der Initiierungsanfrage für den mehrteiligen Upload angegeben haben.
-
POST-Operation – Bei Verwendung einer POST-Operation zum Hochladen eines Objekts (siehe POST Object) geben Sie die Informationen in den Formularfeldern und nicht in den Anforderungs-Headern an.
-
Copy-Operation – Wenn Sie ein Objekt kopieren (siehe PUT Object – Copy), erhalten Sie ein Quell- und ein Zielobjekt:
-
Wenn Sie möchten, dass das Zielobjekt mit serverseitiger Verschlüsselung mit AWS verwalteten Schlüsseln verschlüsselt wird, müssen Sie den Anforderungsheader angeben.
x-amz-server-side-encryption
-
Wenn das Zielobjekt unter Verwendung von SSE-C verschlüsselt werden soll, müssen Sie die Verschlüsselungs-Informationen unter Verwendung der drei Header angeben, die in der obigen Tabelle beschrieben sind.
-
Wenn das Quellobjekt unter Verwendung von SSE-C verschlüsselt ist, müssen Sie die Verschlüsselungsschlüsselinformationen unter Verwendung der folgenden Header angeben, sodass Amazon S3 das Objekt zum Kopieren entschlüsseln kann.
Name Beschreibung x-amz-copy-source-server-side-encryption-customer-algorithm
Verwenden Sie diesen Header, um den Verschlüsselungsalgorithmus anzugeben, den Amazon S3 für die Entschlüsselung des Quellobjekts verwenden soll. Dieser Wert muss
AES256
lauten.x-amz-copy-source-server-side-encryption-customer-key
Verwenden Sie diesen Header, um den base64-codierten 256-bit-Verschlüsselungsschlüssel für Amazon S3 bereitzustellen, mit dem das Quellobjekt entschlüsselt werden soll. Dieser Verschlüsselungsschlüssel muss derjenige sein, den Sie Amazon S3 beim Erstellen des Quellobjekts bereitgestellt haben. Andernfalls kann Amazon S3 das Objekt nicht entschlüsseln.
x-amz-copy-source-server-side-encryption-customer-key-MD5
-
In den folgenden Beispielen wird gezeigt, wie Sie für Objekte die serverseitige Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C) anfordern. Dabei werden folgende Vorgänge ausgeführt. Jeder Vorgang zeigt, wie SSE-C-related Header in der Anfrage angegeben werden:
-
Put object – Lädt ein Objekt hoch und fordert die serverseitige Verschlüsselung mit einem vom Kunden bereitgestellten Verschlüsselungsschlüssel an.
-
Get object – Lädt das im vorigen Schritt hochgeladene Objekt herunter. Sie stellen in der Anforderung dieselben Verschlüsselungs-Informationen bereit, die Sie beim Hochladen des Objekts angegeben haben. Amazon S3 benötigt diese Informationen, um das Objekt zu entschlüsseln und an Sie zurückzugeben.
-
Get object metadata – Ruft die Metadaten des Objekts ab. Sie stellen dieselben Verschlüsselungs-Informationen bereit, die beim Erstellen des Objekts verwendet wurden.
-
Copy object – Erstellt eine Kopie des zuvor hochgeladenen Objekts. Da das Quellobjekt mit SSE-C gespeichert wurde, müssen Sie seine Verschlüsselungs-Informationen in Ihrer Kopieranfrage bereitstellen. Standardmäßig verschlüsselt Amazon S3 die Kopie des Objekts nur, wenn Sie dies ausdrücklich anfordern. In diesem Beispiel wird Amazon S3 dazu angewiesen, eine verschlüsselte Kopie des Objekts zu speichern.
Das Beispiel im obigen Abschnitt zeigt, wie Sie eine serverseitige Verschlüsselung mit einem vom Kunden bereitgestellten Schlüssel (SSE-C) in den PUT-, GET-, Head- und Copy-Vorgänge anfordern. In diesem Abschnitt werden andere Amazon S3 beschrieben APIs , die SSE-C unterstützen.