Amazon S3 のデフォルトバケット暗号化の有効化 - Amazon Simple Storage Service

Amazon S3 のデフォルトバケット暗号化の有効化

Amazon S3 バケットでデフォルトの暗号化動作を設定して、すべてのオブジェクトがバケットに保存される際に暗号化されるようにします。オブジェクトは、Amazon S3 で管理されたキー (SSE-S3) または AWS Key Management Service (AWS KMS) カスタマーマスターキー (CMK) のいずれかで、サーバー側の暗号化を使用して暗号化されます。

AWS KMS を使用してデフォルトの暗号化を設定する場合は、S3 バケットキーを設定することもできます。詳細については、Amazon S3 バケットキーを使用した SSE-KMS のコストの削減 を参照してください。

デフォルト暗号化は、すべての既存および新規の Amazon S3 バケットに対して動作します。デフォルト暗号化を使用しない場合、バケットに保存されたすべてのオブジェクトを暗号化するには、すべてのオブジェクトストレージのリクエストに暗号化情報を含める必要があります。Amazon S3 バケットポリシーを設定して、暗号化情報が含まれていないストレージリクエストを拒否する必要もあります。

S3 バケットのデフォルトの暗号化の使用に追加料金はかかりません。デフォルトの暗号化機能を設定するためのリクエストには、標準 Amazon S3 リクエスト料金がかかります。料金については、「Amazon S3 の料金」を参照してください。SSE-KMS CMK ストレージの場合は、AWS KMS の料金が適用され、AWS KMS の料金に表示されます。

Amazon S3 コンソール、AWS SDK、Amazon S3 REST API、および AWS Command Line Interface (AWS CLI) を使用して、Amazon S3 で S3 バケットのデフォルトの暗号化を有効にできます。

Amazon S3 バケットのデフォルト暗号化を有効にするには

  1. AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. [Buckets (バケット)] リストで、目的のバケットの名前を選択します。

  3. [プロパティ] を選択します。

  4. [Default encryption (デフォルトの暗号化)] で、[Edit (編集)] を選択します。

  5. サーバー側の暗号化を有効または無効にするには、[Enable (有効にする)] または [Disable (無効にする)] を選択します。

  6. Amazon S3 マネージドキーを使用してサーバー側の暗号化を有効にするには、[Encryption key type (暗号化キータイプ)] で [Amazon S3 key (SSE-S3) (Amazon S3 キー (SSE-S3))] を選択します。

    Amazon S3 のサーバー側の暗号化を使用してデータを暗号化する方法の詳細については、「Amazon S3 が管理する暗号化キーによるサーバー側の暗号化 (SSE-S3) を使用したデータの保護」を参照してください。

  7. AWS KMS CMK を使用してサーバー側の暗号化を有効にするには、次の手順に従います。

    1. [Encryption type] (暗号化キーのタイプ) で、[AWS Key Management Service key (SSE-KMS)] (AWS Key Management Service キー (SSE-KMS)) を選択します。

      重要

      デフォルト暗号化設定に AWS KMS オプションを使用する場合、AWS KMS の RPS (1 秒あたりのリクエスト) 制限が適用されます。AWS KMS クォータの詳細およびクォータの引き上げをリクエストする方法については、クォータを参照してください。

    2. [AWS KMS key] (AWS KMS キー) で、次のいずれかを選択します。

      • AWS マネージドキー (aws/s3)

      • KMS マスターキーから選択し、KMS マスターキーを選択します。

      • KMS マスターキー ARN と入力し、AWS KMS キー ARN を入力します。

      重要

      バケットと同じ AWS リージョンで有効になっている KMS CMK のみを使用できます。KMS マスターキーから選択すると、リージョンごとに 100 KMS CMK のみが表示されます。同じリージョンに 100 個より多い CMK がある場合、S3 コンソールには最初の 100 個の CMK しか表示されません。コンソールに表示されていない KMS CMK を使用するには、[カスタム KMS ARN] を選択し、KMS CMK ARN を入力します。

      Amazon S3 でサーバー側の暗号化に AWS KMS CMK を使用する場合は、対称 CMK を選択する必要があります。Amazon S3 では対称 CMK のみがサポートされ、非対称 CMK はサポートされません。詳細については、AWS Key Management Service デベロッパーガイド対称キーと非対称キーの使用を参照してください。

      AWS KMS CMK の作成の詳細については、AWS Key Management Service デベロッパーガイドキーの作成を参照してください。Amazon S3 での AWS KMS の使用に関する詳細は、AWS Key Management Service (SSE-KMS) に保存されている CMK でサーバー側の暗号化を使用してデータを保護する を参照してください。

  8. S3 バケットキーを使用するには、[バケットキー] で [有効化] を選択します。

    SSE-KMS でデフォルトの暗号化を使用するようにバケットを設定する場合は、S3 バケットキーを有効にすることもできます。S3 バケットキーは、Amazon S3 から AWS KMS へのリクエストトラフィックを減らし、暗号化のコストを削減します。詳細については、Amazon S3 バケットキーを使用した SSE-KMS のコストの削減 を参照してください。

  9. [Save changes] (変更を保存) をクリックします。

以下の例では、Amazon S3 管理の暗号化 (SSE-S3) または AWS KMS 暗号化 (SSE-KMS) と S3 バケットキーを使用して、デフォルトの暗号化を設定する方法を示します。

デフォルトの暗号化の詳細については、「 Amazon S3 バケットのデフォルトのサーバー側暗号化の動作設定」を参照してください。AWS CLI を使用してデフォルトの暗号化を設定する方法の詳細については、put-bucket-encryption を参照してください。

例 - SSE-S3 を使用したデフォルトの暗号化

この例では、Amazon S3 管理の暗号化を使用したデフォルトのバケット暗号化を設定します。

aws s3api put-bucket-encryption --bucket bucket-name --server-side-encryption-configuration '{ "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "AES256" } } ] }'

例 - S3 バケットキーを使用した SSE-KMS でのデフォルトの暗号化

この例では、S3 バケットキーを使用して SSE-KMS でデフォルトのバケット暗号化を設定します。

aws s3api put-bucket-encryption --bucket bucket-name --server-side-encryption-configuration '{ "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "aws:kms", "KMSMasterKeyID": "KMS-Key-ARN" }, "BucketKeyEnabled": true } ] }'

REST API の PUT Bucket encryption オペレーションを使用して、デフォルト暗号化を有効にし、使用するサーバー側の暗号化のタイプ (SSE-S3 または SSE-KMS) を設定します。

詳細については、Amazon Simple Storage Service API リファレンスの「PutBucketEncryption」を参照してください。

バケットのデフォルトの暗号化を有効にすると、以下の暗号化動作が適用されます。

  • デフォルト暗号化が有効にされる前にバケットに存在していたオブジェクトの暗号化は、変更されません。

  • デフォルト暗号化を有効にした後、オブジェクトをアップロードするとします。

    • PUT リクエストヘッダーに暗号化情報が含まれていない場合、Amazon S3 はオブジェクトを暗号化するために、バケットのデフォルトの暗号化設定を使用します。

    • PUT リクエストヘッダーに暗号化情報が含まれている場合、Amazon S3 は PUT リクエストの暗号化情報を使用してオブジェクトを Amazon S3 に保存する前に暗号化します。

  • デフォルト暗号化設定に SSE-KMS オプションを使用する場合、AWS KMS の RPS (1 秒あたりのリクエスト) 制限が適用されます。AWS KMS の制限と、制限の引き上げをリクエストする方法については、AWS KMS の制限を参照してください。

AWS SDK を使用してデフォルトの暗号化を有効にする方法については、AWS SDK およびエクスプローラーを使用して Amazon S3 で開発する を参照してください。