У меня есть сгенерированный ключ AWS и файл S3, который я хотел зашифровать на стороне сервера. Я не понимаю, почему один из пользователей может его расшифровать. У меня есть такая установка:
Ключ с 3 заявлениями о политике:
arn:aws:iam::${AWS::AccountId}:root
с доступом к kms:*
arn:aws:iam::${AWS::AccountId}:user/bank_trans_admin
с доступом к kms:Encrypt
и kms:DescribeKey
kms:Decrypt
и kms:DescribeKey
я использую aws-vault
с bank_trans_admin
настроен. Используя это, я загрузил какой-то файл, который работал, как ожидалось:
aws-vault exec bank_trans_admin -- aws s3 cp --sse aws:kms --sse-kms-key-id alias/TransactionAccountsKey the_file s3://some-bucket/
Я проверил в веб-консоли AWS, что файл зашифрован с помощью KMS / sse.
Но теперь я хотел убедиться, что не могу использовать расшифровку в той же учетной записи, поэтому я сделал:
aws-vault exec bank_trans_admin -- aws s3 cp --sse aws:kms --sse-kms-key-id alias/TransactionAccountsKey s3://some-bucket/the_file the_file
и это сработало! Я ожидал, что мне будет отказано в доступе, так как я разрешил только Encrypt
для этого пользователя IAM. Что мне здесь не хватает?