Schutz von Daten mit serverseitiger Verschlüsselung mit in AWS Key Management Service (SSE-KMS) gespeicherten CMKs - Amazon Simple Storage Service

Dieses Handbuch wird nicht mehr aktualisiert. Aktuelle Informationen und Anweisungen finden Sie im neuen Amazon S3-Benutzerhandbuch.

Schutz von Daten mit serverseitiger Verschlüsselung mit in AWS Key Management Service (SSE-KMS) gespeicherten CMKs

Serverseitige Verschlüsselung ist die Verschlüsselung von Daten am Zielort durch die Anwendung oder den Service, der sie erhält. AWS Key Management Service (AWS KMS) ist ein Service, der sichere, hochverfügbare Hard- und Software kombiniert, um ein System für die Schlüsselverwaltung bereitzustellen, das für die Cloud skaliert ist. Amazon S3 verwendet AWS KMS-Kundenmasterschlüssel (CMKs), um Ihre Amazon S3-Objekte zu verschlüsseln. AWS KMS verschlüsselt nur die Objektdaten. Objektmetadaten werden grundsätzlich nicht verschlüsselt.

Bei der Verwendung von CMKs können Sie mit AWS KMS über die AWS-Managementkonsole oder die AWS KMS-APIs zentral CMKs erstellen, Richtlinien zur Kontrolle der Verwendungsmöglichkeiten von CMKs definieren und die Verwendung von CMKs prüfen, um nachzuweisen, dass sie korrekt verwendet werden. Sie können mit diesen CMKs Ihre Daten in Amazon S3-Buckets schützen. Wenn Sie die SSE-KMS-Verschlüsselung mit einem S3-Bucket verwenden, muss sich der AWS KMS-CMK in derselben Region wie der Bucket befinden.

Für die Nutzung von AWS KMS-CMKs fallen zusätzliche Gebühren an. Weitere Informationen finden Sie unter AWS Key Management Service-Konzepte - Kundenmasterschlüssel (CMKs) und AWS Key Management Service-Preise im AWS Key Management Service-Entwicklerhandbuch.

Wichtig

Sie benötigen die Berechtigung kms:Decrypt, wenn Sie ein mit einem AWS KMS-CMK verschlüsseltes Amazon S3-Objekt hoch- oder herunterladen. Sie benötigen diese Berechtigung zusätzlich zu den Berechtigungen kms:ReEncrypt, kms:GenerateDataKey und kms:DescribeKey. Weitere Informationen finden Sie unter Fehler beim Hochladen einer großen Datei zu Amazon S3 mit Verschlüsselung über einen AWS KMS-CMK.

Von AWS verwaltete CMKs und kundenverwaltete CMKs

Wenn Sie serverseitige Verschlüsselung mit AWS KMS (SSE-KMS) verwenden, können Sie den standardmäßigen AWS-verwalteten CMK verwenden oder einen kundenverwalteten CMK angeben, den Sie bereits erstellt haben.

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

Wenn Sie ein vom Kunden verwaltetes CMK für SSE-KMS verwenden möchten, können Sie das CMK erstellen, bevor Sie SSE-KMS konfigurieren. Wenn Sie dann SSE-KMS für Ihren Bucket konfigurieren, können Sie den vorhandenen vom Kunden verwalteten CMK angeben.

Durch die Erstellung eines eigenen kundenverwalteten CMK erhalten Sie mehr Flexibilität und Kontrolle über das CMK. Beispielsweise können Sie kundenverwaltete CMKs erstellen, drehen und deaktivieren. Sie können auch Zugriffskontrollen definieren und die vom Kunden verwalteten CMKs prüfen, mit denen Sie Ihre Daten schützen. Weitere Informationen über vom Kunden verwaltete und von AWS verwaltete CMKs finden Sie unter AWS KMS-Konzepte im AWS Key Management Service-Entwicklerhandbuch.

Wichtig

Wenn Sie einen AWS KMS-CMK für serverseitige Verschlüsselung in Amazon S3 verwenden, müssen Sie einen symmetrischen CMK wählen. Amazon S3 unterstützt nur symmetrische CMKs und keine asymmetrischen CMKs. Weitere Informationen finden Sie unter Verwenden von symmetrischen und asymmetrischen Schlüsseln im AWS Key Management Service-Entwicklerhandbuch.

AWS Signatur Version 4

Wenn Sie mit SSE-KMS verschlüsselte Objekte hochladen oder darauf zugreifen, benötigen Sie AWS Signature Version 4 für eine zusätzliche Sicherheit. Weitere Informationen zur Ausführung über einen AWS SDK finden Sie unter Angeben der Signaturversion bei der Anforderungsauthentifizierung.

Wichtig

Alle GET- und PUT-Anforderungen für ein durch AWS KMS geschütztes Objekt schlagen fehl, wenn sie nicht über SSL, TLS oder SigV4 erfolgen.

SSE-KMS-Highlights

Die Highlights von SSE-KMS sind wie folgt:

  • Sie können einen vom Kunden verwalteten CMK wählen, den Sie erstellen und verwalten, oder Sie können einen von AWS verwalteten CMK auswählen, den Amazon S3 in Ihrem AWS-Konto erstellt und für Sie verwaltet. Wie ein vom Kunden verwalteter CMK ist Ihr von AWS verwalteter CMK einzigartig für Ihr AWS-Konto und Ihre Region. Nur Amazon S3 hat die Berechtigung, diesen CMK in Ihrem Namen zu verwenden. Amazon S3 unterstützt nur symmetrische CMKs.

  • Über die AWS KMS-Konsole können Sie prüffähige vom Kunden verwaltete CMKs erstellen, rotieren und deaktivieren.

  • Das ETag in der Antwort ist nicht das MD5 der Objektdaten.

  • Die für die Verschlüsselung Ihrer Daten verwendeten Datenschlüssel sind ebenfalls verschlüsselt und werden zusammen mit den Daten gespeichert, die sie schützen.

  • Die Sicherheitskontrollen in AWS KMS tragen dazu bei, dass Sie Ihre Compliance-Anforderungen bezüglich der Verschlüsselung erfüllen.

Erzwingen serverseitiger Verschlüsselung

Um die serverseitige Verschlüsselung aller Objekte in einem bestimmten Amazon S3-Bucket anzufordern, können Sie eine Bucket-Richtlinie verwenden. 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-Header enthält, der eine serverseitige Verschlüsselung mit SSE-KMS anfordert.

{ "Version":"2012-10-17", "Id":"PutObjectPolicy", "Statement":[{ "Sid":"DenyUnEncryptedObjectUploads", "Effect":"Deny", "Principal":"*", "Action":"s3:PutObject", "Resource":"arn:aws:s3:::awsexamplebucket1/*", "Condition":{ "StringNotEquals":{ "s3:x-amz-server-side-encryption":"aws:kms" } } } ] }

Um festzulegen, dass ein bestimmter AWS KMS-CMK verwendet werden muss, 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 AWS KMS-CMK festzulegen, müssen Sie einen Amazon-Ressourcennamen (ARN) verwenden, der im Format arn:aws:kms:region:acct-id:key/key-id" vorliegt.

Anmerkung

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

Die vollständige Liste der Amazon S3-spezifischen Bedingungsschlüssel und weitere Informationen zur Angabe von Bedingungsschlüsseln finden Sie unter Amazon S3-Bedingungsschlüssel.

Verwenden des AWS Key Management Service in der Amazon S3-Konsole

Weitere Informationen zur Verwendung der Amazon S3-Konsole mit in AWS KMS gespeicherten CMKs finden Sie unter Wie füge ich Verschlüsselung zu einem S3-Objekt hinzu? im Benutzerhandbuch für die Amazon Simple Storage Service Console.

API-Unterstützung für AWS Key Management Service in Amazon S3

Um SSE-KMS in den REST-APIs der Objekterstellung anzufordern, verwenden Sie den x-amz-server-side-encryption-Header. Um die ID des AWS KMS-CMKs anzugeben, der für das Objekt verwendet wurde, verwenden Sie x-amz-server-side-encryption-aws-kms-key-id. Die Amazon S3-API unterstützt auch einen Verschlüsselungskontext mit dem x-amz-server-side-encryption-context-Header. Weitere Informationen finden Sie unter Angeben des AWS Key Management Service in Amazon S3 unter Verwendung der REST-API.

Die AWS SDKs stellen auch Wrapper-APIs für Sie bereit, damit Sie eine SSE-KMS mit Amazon S3 anfordern können. Weitere Informationen finden Sie unter Angeben des AWS Key Management Service in Amazon S3 unter Verwendung der AWS SDKs.