提问者:小点点

如何从us-east-1帐户访问在us-west-2区域创建的S3 bucket?


我在us-east-1地区有帐户A,有IAM角色rt-profileRole和我的应用程序设置。帐户B在us-west-1和US-West-2中创建了S3存储桶。

我正在尝试使用aws cli和role RTProfile列出对象。这两个bucket策略都与下面资源相似,具有正确的bucket arn(策略附加到的bucket的bucket arn)。

问题是我可以从我的本地系统中使用aws s3 ls在us-west-1中创建的桶中列出对象。但是,当我对us-west-2中创建的bucket进行相同的尝试时,我遇到了错误。调用ListObjectsV2操作时出现了错误(AccessDenied):访问被拒绝

我累了多个bucket并得出结论,使用帐户一个角色

  1. 我可以访问在US-East-1中创建的帐户A的桶
  2. 我可以访问在US-West-1中创建的帐户B的桶
  3. 我无法访问在US-West-2中创建的帐户B的存储桶。

请帮我了解一下这里的西二区有什么问题。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DelegateS3Access",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::AccountA:role/rt-profileRole"
                ]
            },
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::bucket-name/*",
                "arn:aws:s3:::bucket-name"
            ]
        }
    ]
}

共1个答案

匿名用户

一旦将bucket策略添加到bucket中,还必须确保角色在其IAM策略中具有特权。

此外,如果您在AWS组织中,请确保帐户A上没有SCP阻止特定区域内的操作。

关于bucket策略,一旦确认bucket可以工作(当前bucket上的每一个S3操作,包括删除),您应该将其范围扩大到希望bucket使用的权限。