メニュー
Amazon Simple Storage Service
開発者ガイド (API バージョン 2006-03-01)

Amazon S3 で管理された暗号化キーによるサーバー側の暗号化 (SSE-S3) を使用したデータの保護

サーバー側の暗号化は、保管中のデータを保護します。Amazon S3 で管理された暗号化キーを使用したサーバー側の暗号化 (SSE-S3) では、強力な多要素暗号化を使用しています。Amazon S3 は各オブジェクトを一意のキーで暗号化します。さらにセキュリティを強化するために、キー自体が、定期的に更新されるマスターキーで暗号化されます。Amazon S3 のサーバー側の暗号化では、最強のブロック暗号の一つである、256 ビットの高度暗号化規格 (AES-256) を使用してデータを暗号化します。

バケットに保存されているすべてのオブジェクトに対してサーバー側の暗号化を必要とする場合は、バケットポリシーを使用します。たとえば、次のバケットポリシーは、サーバー側の暗号化を要求する x-amz-server-side-encryption ヘッダーがリクエストに含まれない限り、オブジェクトをアップロードする許可を拒否します。

{ "Version": "2012-10-17", "Id": "PutObjPolicy", "Statement": [ { "Sid": "DenyIncorrectEncryptionHeader", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::YourBucket/*", "Condition": { "StringNotEquals": { "s3:x-amz-server-side-encryption": "AES256" } } }, { "Sid": "DenyUnEncryptedObjectUploads", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::YourBucket/*", "Condition": { "Null": { "s3:x-amz-server-side-encryption": "true" } } } ] }

サーバー側の暗号化では、オブジェクトのメタデータではなく、オブジェクトデータのみが暗号化されます。

サーバー側の暗号化での API サポート

オブジェクト作成の REST API を使用してサーバー側の暗号化を要求するには、x-amz-server-side-encryption リクエストヘッダーを提供します。REST API の詳細については、「REST API を使用したサーバー側の暗号化の指定」を参照してください。

以下の Amazon S3 API でこのヘッダーがサポートされています。

  • PUT オペレーション - PUT API を使用してデータをアップロードする場合は、リクエストヘッダーを指定します。詳細については、「PUT Object」を参照してください。

  • マルチパートアップロードの開始 — マルチパートアップロード API を使用して大きいオブジェクトをアップロードするときに、開始リクエストでヘッダーを指定します。詳細については、マルチアップロードの開始について参照してください。

  • COPY オペレーション – オブジェクトをコピーする場合、ソースオブジェクトとターゲットオブジェクトがあります。詳細については、PUT オブジェクトのコピーについて参照してください。

注記

POST オペレーションを使用してオブジェクトをアップロードする場合は、リクエストヘッダーを指定する代わりに、フォームフィールドで同じ情報を指定します。詳細については、「POST Object 」を参照してください。

AWS SDK にも、サーバー側の暗号化を要求するために使用できるラッパー API があります。また、AWS マネジメントコンソール を使用して、オブジェクトをアップロードしてサーバー側の暗号化を要求することもできます。

注記

署名付き URL を使ってアップロードされたオブジェクトで、SSE-S3 暗号化を強要することはできません。サーバー側の暗号化は、AWS マネジメントコンソールまたは HTTP リクエストヘッダーのみで指定できます。詳細については、「ポリシーでの条件の指定」を参照してください。