Reduzieren des Preises von SSE-KMS mit Amazon-S3-Bucket-Schlüsseln - Amazon Simple Storage Service

Reduzieren des Preises von SSE-KMS mit Amazon-S3-Bucket-Schlüsseln

Amazon-S3-Bucket-Schlüssel senken die Kosten für die serverseitige Verschlüsselung in Amazon S3 mit AWS Key Management Service (AWS KMS)-Schlüsseln (SSE-KMS). Mit einem Schlüssel auf Bucket-Ebene für SSE-KMS können Sie die AWS KMS-Anforderungskosten um bis zu 99 Prozent reduzieren, da der Anforderungsdatenverkehr von Amazon S3 zu AWS KMS verringert wird. Mit ein paar Klicks in der AWS-Managementkonsole und ohne Änderungen an Ihren Client-Anwendungen können Sie Ihren Bucket so konfigurieren, dass ein S3-Bucket-Schlüssel für die SSE-KMS-Verschlüsselung bei neuen Objekten verwendet wird.

Anmerkung

S3-Bucket-Schlüssel werden für die serverseitige Dual-Layer-Verschlüsselung mit AWS Key Management Service (AWS KMS)-Schlüsseln (DSSE-KMS) nicht unterstützt.

S3-Bucket-Schlüssel für SSE-KMS

Workloads, die auf Millionen oder gar Milliarden von mit SSE-KMS verschlüsselten Objekten zugreifen, können große Anforderungsvolumen für erzeuge AWS KMS. Wenn Sie Ihre Daten mit SSE-KMS ohne einen S3-Bucket-Schlüssel schützen, verwendet Amazon S3 für jedes Objekt einen individuellen AWS KMS Datenschlüssel. In diesem Fall ruft Amazon S3 AWS KMS jedes Mal auf, wenn eine Anforderung für ein mit KMS verschlüsseltes Objekt ausgeführt wird. Informationen zur Funktionsweise von SSE-KMS finden Sie unter Verwenden serverseitiger Verschlüsselung mit AWS KMS-Schlüsseln (SSE-KMS).

Wenn Sie Ihren Bucket für die Verwendung eines S3-Bucket-Schlüssels für SSE-KMS konfigurieren, generiert AWS einen kurzlebigen Schlüssel auf Bucket-Ebene aus AWS KMS und speichert ihn vorübergehend in S3. Dieser Schlüssel auf Bucket-Ebene erstellt während seines Lebenszyklus Datenschlüssel für neue Objekte. Diese S3-Bucket-Schlüssel werden für einen zeitlich begrenzten Zeitraum innerhalb von Amazon S3 verwendet, wodurch S3 keine Anforderungen an AWS KMS stellen muss, um Verschlüsselungsvorgänge abzuschließen. Damit wird der Datenverkehr von S3 zu AWS KMS reduziert, sodass Sie in Amazon S3 zu einem Bruchteil der vorherigen Kosten auf Objekte zu greifen können, die mit AWS KMS verschlüsselt sind.

Eindeutige Schlüssel auf Bucket-Ebene werden mindestens einmal pro Anforderer abgerufen, um sicherzustellen, dass der Zugriff des Anforderers auf den Schlüssel in einem AWS KMS-CloudTrail-Ereignis erfasst wird. Amazon S3 behandelt Anrufer als unterschiedliche Anforderer, wenn sie unterschiedliche Rollen oder Konten oder dieselbe Rolle mit unterschiedlichen Scoping-Richtlinien verwenden. Die Einsparungen bei AWS KMS-Anforderungen sind von der Anzahl der Anforderer, von den Anforderungsmustern und vom relativen Alter der angeforderten Objekte abhängig. Beispielsweise führt eine geringere Anzahl von Anforderern, die mehrere mit demselben Schlüssel auf Bucket-Ebene verschlüsselte Objekte in einem begrenzten Zeitfenster anfordern, zu größeren Einsparungen.

Anmerkung

Mit S3 Bucket Keys können Sie Kosten für AWS KMS-Anforderungen einsparen, indem Sie Ihre Anforderungen für Encrypt-, GenerateDataKey- und Decrypt-Operationen mittels eines Schlüssels auf Bucket-Ebene auf AWS KMS reduzieren. Standardmäßig führen nachfolgende Anforderungen mit diesen Schlüssel auf Bucket-Ebene nicht zu AWS KMS-API-Anfragen und validieren den Zugriff nicht anhand der AWS KMS-Schlüsselrichtlinie.

Wenn Sie einen S3-Bucket-Schlüssel konfigurieren, verwenden Objekte, die sich bereits im Bucket befinden, nicht den S3-Bucket-Schlüssel. Zum Konfigurieren eines S3-Bucket-Schlüssels für vorhandene Objekte können Sie eine CopyObject-Operation verwenden. Weitere Informationen finden Sie unter Konfigurieren eines S3-Bucket-Schlüssels auf Objektebene.

Amazon S3 gibt einen S3-Bucket-Schlüssel nur für Objekte frei, die mit demselben verschlüsselt werden AWS KMS key. S3 Bucket Keys sind kompatibel mit von AWS KMS erstellten KMS-Schlüsseln, importiertem Schlüsselmaterial und Schlüsselmaterial, das durch benutzerdefinierte Key Stores unterstützt wird.

Diagramm, das zeigt, wie AWS KMS einen Bucket-Schlüssel generiert, der Datenschlüssel für Objekte in einem Bucket erstellt.

Konfigurieren von S3-Bucket-Schlüsseln

Sie können Ihren Bucket so konfigurieren, dass er einen S3-Bucket-Schlüssel für SSE-KMS bei neuen Objekten über die Amazon-S3-Konsole, AWS-SDKs, AWS CLI oder REST-API verwendet. Wenn S3-Bucket-Schlüssel in Ihrem Bucket aktiviert sind, verwenden Objekte, die mit einem anderen angegebenen SSE-KMS-Schlüssel hochgeladen wurden, ihre eigenen S3-Bucket-Schlüssel. Unabhängig von Ihrer S3-Bucket-Schlüsseleinstellung können Sie den Header x-amz-server-side-encryption-bucket-key-enabled mit einem true- oder false-Wert in Ihre Anforderung aufnehmen, um die Bucket-Einstellung zu überschreiben.

Bevor Sie Ihren Bucket für die Verwendung eines S3-Bucket-Schlüssels konfigurieren, lesen Sie Änderungen, die Sie vor dem Aktivieren eines S3-Bucket-Schlüssels beachten sollten.

Konfigurieren eines S3-Bucket-Schlüssels mit der Amazon-S3-Konsole

Wenn Sie einen neuen Bucket erstellen, können Sie ihn so konfigurieren, dass er einen S3-Bucket-Schlüssel für SSE-KMS bei neuen Objekten verwendet. Sie können einen vorhandenen Bucket auch dafür konfigurieren, dass er einen S3-Bucket-Schlüssel für SSE-KMS bei neuen Objekten verwendet, indem Sie die Bucket-Eigenschaften aktualisieren. 

Weitere Informationen finden Sie unter Konfigurieren des Buckets für die Verwendung eines S3-Bucket-Schlüssels mit SSE-KMS bei neuen Objekten.

REST-API-, AWS CLI- und AWS-SDK-Unterstützung für S3-Bucket-Schlüssel

Sie können die REST-API, AWS CLI oder AWS-SDK verwenden, um Ihren Bucket für die Verwendung eines S3-Bucket-Schlüssels für SSE-KMS bei neuen Objekten zu konfigurieren. Sie können einen S3-Bucket-Schlüssel auch auf Objektebene aktivieren.

Weitere Informationen finden Sie unter: 

Die folgenden API-Operationen unterstützen S3-Bucket-Schlüssel für SSE-KMS:

Arbeiten mit CloudFormation

In CloudFormation enthält die AWS::S3::Bucket-Ressource eine Verschlüsselungs-Eigenschaft namens BucketKeyEnabled, die Sie zum Aktivieren oder Deaktivieren eines S3-Bucket-Schlüssels verwenden können.

Weitere Informationen finden Sie unter Verwenden von CloudFormation.

Änderungen, die Sie vor dem Aktivieren eines S3-Bucket-Schlüssels beachten sollten

Bevor Sie einen S3-Bucket-Schlüssel aktivieren, beachten Sie bitte die folgenden damit verbundenen Änderungen:

IAM- oder AWS KMS-Schlüsselrichtlinien

Wenn Ihre vorhandenen AWS Identity and Access Management (IAM)-Richtlinien oder AWS KMS-Schlüsselrichtlinien den Amazon-Ressourcennamen (ARN) des Objekts als Verschlüsselungskontext verwenden, um den Zugriff auf Ihre KMS-Schlüssel genauer festzulegen oder zu begrenzen, funktionieren diese Richtlinien mit einem S3-Bucket-Schlüssel nicht. S3-Bucket-Schlüssel verwenden den Bucket-ARN als Verschlüsselungskontext. Bevor Sie also einen S3-Bucket-Schlüssel aktivieren, aktualisieren Sie Ihre IAM-Richtlinien oder AWS KMS-Schlüsselrichtlinien so, dass der Bucket-ARN als Verschlüsselungskontext verwendet wird.

Weitere Informationen zum Verschlüsselungskontext und zu S3-Bucket-Schlüsseln finden Sie unter Verschlüsselungskontext.

CloudTrail-Ereignisse für AWS KMS

Nachdem Sie einen S3-Bucket-Schlüssel aktiviert haben, protokollieren die CloudTrail-Ereignisse für AWS KMS den Bucket-ARN und nicht mehr den Objekt-ARN. Darüber hinaus sehen Sie in Ihren Protokollen weniger CloudTrail-Ereignisse für SSE-KMS-Objekte. Da das Schlüsselmaterial in Amazon S3 zeitlich begrenzt ist, werden weniger Anforderungen an gestellt AWS KMS.

Verwenden eines S3-Bucket-Schlüssels mit Replikation

Sie können S3-Bucket-Schlüssel mit Replikation innerhalb derselben Region (SRR) und regionsübergreifender Replikation (CRR) verwenden.

Wenn Amazon S3 ein verschlüsseltes Objekt repliziert, werden im Allgemeinen die Verschlüsselungseinstellungen des Replikatobjekts im Ziel-Bucket beibehalten. Wenn das Quellobjekt jedoch nicht verschlüsselt ist und Ihr Ziel-Bucket eine Standard-Verschlüsselung oder einen S3-Bucket-Schlüssel verwendet, verschlüsselt Amazon S3 das Objekt mit der Konfiguration des Ziel-Buckets.

Die folgenden Beispiele veranschaulichen, wie ein S3-Bucket-Schlüssel mit der Replikation funktioniert. Weitere Informationen finden Sie unter Replizieren verschlüsselter Objekte (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)

Beispiel 1 – Quellobjekt verwendet S3-Bucket-Schlüssel; Ziel-Bucket verwendet Standardverschlüsselung

Wenn Ihr Quellobjekt einen S3-Bucket-Schlüssel verwendet, Ihr Ziel-Bucket jedoch eine Standard-Verschlüsselung mit SSE-KMS, behält das Replikatobjekt seine S3-Bucket-Schlüssel-Verschlüsselungseinstellungen im Ziel-Bucket bei. Der Ziel-Bucket verwendet weiterhin die Standard-Verschlüsselung mit SSE-KMS.

Beispiel 2 – Quellobjekt ist nicht verschlüsselt; Ziel-Bucket verwendet einen S3-Bucket-Schlüssel mit SSE-KMS

Wenn Ihr Quellobjekt nicht verschlüsselt ist und der Ziel-Bucket einen S3-Bucket-Schlüssel mit SSE-KMS verwendet, wird das Replikatobjekt mit einem S3-Bucket-Schlüssel mit SSE-KMS im Ziel-Bucket verschlüsselt. Daher unterscheidet sich das ETag des Quell-Objekts von dem ETag des Replikatobjekts. Sie müssen die Anwendungen, die das ETag verwenden, zur Anpassung an diesen Unterschied aktualisieren.

Arbeiten mit S3-Bucket-Schlüsseln

Weitere Informationen zum Aktivieren und Arbeiten mit S3-Bucket-Schlüsseln finden Sie in den folgenden Abschnitten: