AWS KMS キーによる二層式サーバー側の暗号化 (DSSE-KMS) の使用 - Amazon Simple Storage Service

AWS KMS キーによる二層式サーバー側の暗号化 (DSSE-KMS) の使用

AWS Key Management Service (AWS KMS) キーによる二層式サーバー側の暗号化 (DSSE-KMS) を使用すると、オブジェクトが Amazon S3 にアップロードされるときに 2 つの暗号化レイヤーが適用されます。DSSE-KMS を使用すると、データに多層暗号化を適用し、暗号化キーを完全に制御する必要があるコンプライアンス基準をより簡単に満たすことができます。

S3 バケットで DSSE−KMS を使用する場合、AWS KMS キーはバケットと同じリージョンに存在する必要があります。また、オブジェクトに対して DSSE-KMS がリクエストされると、オブジェクトのメタデータの一部である S3 チェックサムが暗号化された形式で保存されます。チェックサムの詳細については、「オブジェクトの整合性をチェックする」を参照してください。

DSSE-KMS と AWS KMS keys の使用には、追加料金がかかります。DSSE-KMS 料金の詳細については、『AWS Key Management Service デベロッパーガイド』の「AWS KMS key の概念」と「AWS KMS の料金」を参照してください。

注記

S3 バケットキーは DSSE-KMS ではサポートされていません。

AWS KMS keys キーによる二層式サーバー側の暗号化 (DSSE-KMS) の要求

特定の Amazon S3 バケット内のすべてのオブジェクトの二層式サーバー側の暗号化を要求するには、バケットポリシーを使用できます。例えば、DSSE-KMS を使用したサーバー側の暗号化を要求する x-amz-server-side-encryption ヘッダーがリクエストに含まれていない場合、次のバケットポリシーはすべてのユーザーに対し、オブジェクト (s3:PutObject) をアップロードするアクセス許可を拒否します。

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