我已生成 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 用户访问。我这里漏掉了什么?