如何使用简单的 s3 存储桶策略授予对加密存储桶的跨账户访问权限?



我有一个加密的 s3 存储桶

我想向其他账户授予对此存储桶的访问权限

通常我会这样做:

{
"Sid":"get",
"Effect":"Allow",
"Principal":{
"AWS":"arn:aws:iam::99999999999:root"
},
"Action":[
"s3:Get*",
],
"Resource":[
"arn:aws:s3:::my-bucket/*",
]
},

但是这个存储桶是加密的,他们会收到此错误:

upload failed: ./test to s3://my-bucket/test An error occurred (KMS.NotFoundException) when calling the PutObject operation: Key 'arn:aws:kms:us-east-1:99999999999:key/blahbalbhablhalbhalbh' does not exist

看起来他们需要 KMS 访问权限?我可以使用 kms 策略授予他们的帐户对 kms 密钥的访问权限,这将修复它吗?如果是这样,我需要创建自定义密钥来编辑策略吗?我想直接为其账户 ID 分配对加密存储桶的访问权限

你走在正确的道路上!您需要创建客户托管的 KMS 密钥 (CMK( 并更新 KMS 密钥策略以使用该密钥进行解密。在存储桶中放置项目时使用该加密密钥。确保 KMS 策略是最低特权!

最新更新