Я создал корзину 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 на SSE под управлением S3, он работает без какого-либо флага --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"
]
}
]
}
Чего мне не хватает, чтобы заставить это работать?