我创建了一个 S3 存储桶并将默认 SSE 配置为使用 KMS。
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"
]
}
]
}
为了让这个工作,我缺少什么?