You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS S3配置指定账户root ARN授予全账户访问权限失效问题

AWS S3跨账户全身份授权不生效解决方案

问题根因

在桶策略中填写对端账户root ARN作为Principal,是AWS跨账户授权的第一步,仅代表桶所属账户允许对端账户的身份访问该资源。按照AWS权限校验规则,对端账户的身份还需要在本账户内被分配对应的S3操作权限,才能正常访问,两层权限同时满足才会生效,缺省第二步就会出现配置不生效的情况。

两种可选配置方案

方案一:标准双层授权方案(安全等级高,推荐生产环境使用)

你需要同时在两个账户侧完成配置:

  • 桶所属账户侧保持现有Principal配置即可,完整的桶策略参考如下:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "GrantCrossAccountAccess",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:root",
                    "arn:aws:iam::444455556666:root"
                ]
            },
            "Action": [
                "s3:ListBucket",
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::<替换为你的桶名>",
                "arn:aws:s3:::<替换为你的桶名>/*"
            ]
        }
    ]
}
  • 对端授权账户侧,由管理员给需要访问S3桶的用户、角色、用户组添加对应S3操作权限,权限策略参考如下:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::<替换为桶名>",
                "arn:aws:s3:::<替换为桶名>/*"
            ]
        }
    ]
}

方案二:单桶策略直接授权(无需对端账户额外配置,适合测试/内部场景使用)

如果不需要对端账户做二次权限管控,可以直接通过桶策略条件匹配对端账户所有身份,无需对端账户做额外配置,策略参考如下:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "GrantAllIdentityInSpecificAccountAccess",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:ListBucket",
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::<替换为你的桶名>",
                "arn:aws:s3:::<替换为你的桶名>/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:PrincipalAccount": [
                        "111122223333",
                        "444455556666"
                    ]
                }
            }
        }
    ]
}

注意事项:使用该方案时需要先调整S3桶的「阻止公开访问」配置,关闭「阻止通过新的公开桶或访问点策略授予的公开访问」和「阻止通过任何公开桶或访问点策略授予的公开访问」两个开关,否则策略会被AWS主动拦截。

额外排查点

如果完成以上配置后仍然无法访问,可按以下顺序排查:

  • 确认桶策略中Action和Resource字段匹配你实际需要执行的操作,比如上传对象需要添加s3:PutObject权限
  • 确认桶内对象没有设置独立的ACL限制跨账户访问
  • 确认对端身份没有附加明确拒绝该S3桶访问的权限策略

内容的提问来源于stack exchange,提问作者Maik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 00:15:04