KMS キーで暗号化したオブジェクトのみを S3 バケットに保存したいのですが、これはどのように実行できますか?

最終更新日: 2018 年 8 月 31 日

簡単な説明

Amazon S3 デフォルト暗号化を使用して、暗号化ヘッダー (x-amz-server-side-encryption や x-amz-server-side-encryption-aws-kms-key-id など) なしでアップロードされたオブジェクトを (S3 バケットに保存する前に) AWS KMS で確実に暗号化します。次に、バケットポリシーを使用し、別の暗号化設定 (AES-256) を使用したオブジェクトのアップロードを禁止して、AWS KMS 暗号化でアップロードされたオブジェクトに AWS アカウントのキー ID が含まれていることを確認します。

注意: AWS KMS キーによって暗号化されたオブジェクトをアップロードするには、キーおよび S3 バケットが同じ AWS リージョンにある必要があります。

解決方法

Amazon S3 デフォルト暗号化

Amazon S3 コンソールでバケットの Amazon S3 デフォルト暗号化を AWS KMS に設定するには、以下のステップに従います。

  1. Amazon S3 コンソールを開きます。
  2. AWS KMS で暗号化したオブジェクト用のバケットを選択します。
  3. [Properties] (プロパティ) ビューを選択します。
  4. [Default encryption] (デフォルト暗号化)、[AWS-KMS] の順に選択します。
  5. [保存] を選択します。

注意: REST API、AWS Command Line Interface (AWS CLI)、または AWS SDK を使用して Amazon S3 デフォルト暗号化を有効にするには、「Amazon S3 のデフォルトバケット暗号化の有効化」を参照してください。

バケットポリシー

アップロードリクエストで異なる暗号化設定 (AES-256) を使用している場合や、AWS KMS 暗号化を使用しているが該当する AWS アカウントのキー ID とは異なる場合、これらのリクエストを拒否するようにバケットポリシーを設定するには、以下のステップに従います。

  1. Amazon S3 コンソールを開きます。
  2. AWS KMS で暗号化したオブジェクト用のバケットを選択します。
  3. [Permissions] (許可) ビューを選択します。
  4. [バケットポリシー] を選択します。
  5. 次のようなバケットポリシーを入力します。
    警告: samplebucketname は実際のバケット名に置き換え、 us-east-1:111122223333 は正しい AWS リージョンおよび AWS アカウント ID に置き換えてください。
{
    "Version": "2012-10-17",
    "Id": "PutObjPolicy",
    "Statement": [
        {
            "Sid": "DenySSE-S3",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::samplebucketname/*",
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-server-side-encryption": "AES256"
                }
            }
        },
  {
            "Sid": "RequireKMSEncryption",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::samplebucketname/*",
            "Condition": {
                "StringNotLikeIfExists": {
                    "s3:x-amz-server-side-encryption-aws-kms-key-id": "arn:aws:kms:us-east-1:111122223333:key/*"
                }
            }
        }
    ]
}

この記事はお役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?