S3 по умолчанию SSE с KMS по-прежнему требует параметр для aws-cli - PullRequest
0 голосов
/ 11 мая 2018

Я создал корзину 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" ] } ] }

Чего мне не хватает, чтобы заставить это работать?

1 Ответ

0 голосов
/ 07 марта 2019

Это верно только потому, что в вашей политике ключей KMS не указано, что пользователь / роль, которую вы использовали для загрузки, может выполнять GenerateDataKey, Encrypt и Decrypt для ключа.

Добавьте это в свою политику ключей(укажите себя как ключевого пользователя), и это должно работать.

...