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

时间:2020-01-10 23:49:11

标签: amazon-web-services amazon-s3 aws-kms

我有一个加密的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访问权限直接分配给加密存储桶

1 个答案:

答案 0 :(得分:0)

您在正确的道路上!您需要创建客户管理的KMS密钥(CMK),并更新KMS密钥策略以使用密钥进行解密。将项目放入存储桶时,请使用该加密密钥。确保KMS策略具有最小特权!