Amazon S3 から KMS で暗号化されたオブジェクトをダウンロードする際に、AWS KMS キーを指定する必要がありますか?

所要時間1分
0

Amazon Simple Storage Service (Amazon S3) で保存されているオブジェクトをダウンロードしたいと考えています。このオブジェクトには、AWS Key Management Service (SSE-KMS) 管理キーによるサーバー側の暗号化が使用されています。

解決方法

SSE-KMS で暗号化されたオブジェクトを S3 バケットからダウンロードする際、AWS Key Management Service (AWS KMS) のキー ID を指定する必要はありません。代わりに、AWS KMS キーを復号化するためのアクセス許可が必要です。

ユーザーが GET リクエストを送信する際、Amazon S3 で適切な認証が確認される必要があります。Amazon S3 では、リクエストを送信した AWS Identity and Access Management (IAM) ユーザーまたはロールにオブジェクトのキーを復号する権限があることが確認されます。IAM ユーザーまたはロールとキーが同じ AWS アカウントに属している場合は、復号のアクセス許可がキーポリシーで付与される必要があります。

注: IAM ユーザーまたはロールと KMS キーが同じアカウントにある場合、IAM ポリシーを使用してキーへのアクセスを制御できます。ただし、明示的に IAM ポリシーを有効にして、キーへのアクセスを許可するようにキーポリシーを変更する必要があります。詳細については、「AWS KMS で IAM ポリシーを使用する」を参照してください。

IAM ユーザーまたはロールとキーが異なるアカウントに属している場合、IAM ユーザーのポリシーとキーポリシーに対する復号のアクセス許可を付与する必要があります。

以下は、ユーザーによる AWS KMS キーの復号化、および S3 バケットからのダウンロードの両方を許可する IAM ポリシーの例です。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "VisualEditor0",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt",
        "s3:GetObject"
      ],
      "Resource": [
        "arn:aws:kms:example-region-1:123456789012:key/example-key-id",
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
      ]
    }
  ]
}

以下は、ユーザーによるキーの復号化を許可するキーポリシーステートメントの例です。

{
  "Sid": "Allow decryption of the key",
  "Effect": "Allow",
  "Principal": {
    "AWS": [
      "arn:aws:iam::123456789012:user/Bob"
    ]
  },
  "Action": [
    "kms:Decrypt"
  ],
  "Resource": "*"
}

注: バケットとは異なるアカウントに属する IAM ユーザーまたはロールの場合、バケットポリシーによりユーザーのオブジェクトへのアクセスも許可される必要があります。例えば、ユーザーがバケットからダウンロードを行う必要がある場合、ユーザーにはバケットポリシーで s3: GetObject アクションに対するアクセス許可が必要です。

キーを復号化するためのアクセス許可を取得したら、AWS コマンドラインインターフェイス (AWS CLI) を使用して、キーで暗号化された S3 オブジェクトをダウンロードできます。次のようなコマンドを実行します。

aws s3api get-object --bucket DOC-EXAMPLE-BUCKET --key dir/example-object-name example-object-name

注: AWS CLI コマンドの実行中にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください

関連情報

GetObject

get-object

AWS Key Management Service キー (SSE-KMS) に保存された CMK によるサーバー側の暗号を使用したデータの保護

AWS公式
AWS公式更新しました 1年前