SSE-KMS としてデフォルトの暗号化が有効になっている S3 バケットにファイルをアップロードしようとしていますが、AWS コンソールを使用してバケット ポリシーへの拒否ステートメントを使用していますが、アクセス拒否エラーが発生します。バケット ポリシーから拒否条件を削除すると、AWS コンソールを使用してファイルを S3 にアップロードできます。
これは aws cli を使用して渡すことで実現できることは理解していますが、 AWS コンソール--sse aws:kms --sse-kms-key-id <kms-key-id>
からファイルをアップロードする方法はありますか?
バケット ポリシー -->
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "KMSPut",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::MyBucket/*",
"Condition": {
"StringNotEquals": {
"s3:x-amz-server-side-encryption": "aws:kms"
}
}
}
]
}
KMS ポリシー -->
{
"Version": "2012-10-17",
"Id": "key-default-1",
"Statement": [
{
"Sid": "Allow use of the key",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::12345678:role/MyRole",
]
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:DescribeKey"
],
"Resource": "*"
}
]
}
IAM ロール ポリシー -->
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:ListAllMyBuckets"
],
"Resource": [
"arn:aws:s3:::*"
],
"Effect": "Allow"
},
{
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::MyBucket"
],
"Effect": "Allow"
},
{
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::MyBucket/*"
],
"Effect": "Allow"
},
{
"Action": [
"kms:Encrypt",
"kms:Decrypt"
],
"Resource": [
"arn:aws:kms:eu-west-1:12345678:key/1234-abcd-dcba-4321"
],
"Effect": "Allow"
}
]
}