【问题标题】:How do I grant cross account access to an encrypted bucket with a simple s3 bucket policy?如何使用简单的 s3 存储桶策略授予对加密存储桶的跨账户访问权限?
【发布时间】:2020-01-10 23:49:11
【问题描述】:

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

【问题讨论】:

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


【解决方案1】:

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

【讨论】:

  • 我还建议在附加到您用于访问存储桶的角色的 IAM 策略中的关键资源中包括该区域。由于某种原因,除非我包含它,否则它不起作用。
猜你喜欢
  • 2021-06-28
  • 2013-10-31
  • 2022-01-17
  • 1970-01-01
  • 1970-01-01
  • 2019-04-23
  • 1970-01-01
  • 2012-12-16
  • 2023-01-12
相关资源
最近更新 更多