为什么我可以访问加密的 S3 文件?

为什么我可以访问加密的 S3 文件?

我已生成 AWS 密钥和 S3 文件,我想在服务器端对其进行加密。但我不明白为什么其中一个用户可以解密它。我的设置是:

关键在于 3 项政策声明:

  • arn:aws:iam::${AWS::AccountId}:root可以访问kms:*
  • arn:aws:iam::${AWS::AccountId}:user/bank_trans_admin可以访问kms:Encryptkms: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 用户访问。我这里漏掉了什么?

相关内容