S3 バケットを作成し、KMS を使用するようにデフォルトの SSE を設定しました。
フラグ
aws-cli
を渡せば、バケットにファイルをアップロードできます。--sse aws:kms
aws s3 cp --sse aws:kms test.txt s3://my-bucket
ただし、これはデフォルトの暗号化であるため、フラグなしで機能すると予想してい--sse aws:kms
ます。つまり、暗号化ヘッダーが指定されていない場合に適用する必要があります。
ヘッダーなしで試すと失敗します:
aws s3 cp test.txt s3://my-bucket
upload failed: ./test.txt to s3://my-bucket/test.txt An error occurred (AccessDenied) when calling the PutObject operation: Access Denied
AWS KMS の使用から S3 管理の SSE に変更すると、--sse
フラグなしで機能しますが、AWS KMS を使用する必要があります。リクエストを行っている IAM ユーザーに次のポリシーを追加しようとしましたが、それでも失敗します。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:*",
"kms:*"
],
"Resource": [
"arn:aws:s3:::my-bucket",
"arn:aws:s3:::my-bucket/*",
"arn:aws:kms:eu-west-2:1111112222:key/aaaabbbb-1122-2222-4444-eeeeff3333"
]
}
]
}
これを機能させるために何が欠けていますか?