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

尝试从AWS美西政府账户访问商用账户时遇Invalid Principal错误

解决AWS商用账户无法信任政府云IAM用户作为角色主体的问题

AWS商用云(aws:分区)与政府云(aws-us-gov:分区)是完全独立的环境,商用账户的IAM信任策略无法直接将政府云IAM用户的ARN作为Principal——这就是你遇到Invalid principal in policy错误的核心原因。

正确的配置方式是先信任整个政府云账户,再通过条件键精准限制到目标IAM用户,具体操作如下:

修改商用账户的角色信任策略

将原策略替换为以下内容(替换实际的政府云账户ID和用户ARN):

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws-us-gov:iam::111111111111:root"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:PrincipalArn": "arn:aws-us-gov:iam::111111111111:user/theusername"
                }
            }
        }
    ]
}

也可以直接用政府云账户ID作为Principal,效果一致:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "111111111111"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:PrincipalArn": "arn:aws-us-gov:iam::111111111111:user/theusername"
                }
            }
        }
    ]
}

补充政府云IAM用户的权限配置

在政府云的目标IAM用户上,附加允许其Assume商用账户角色的权限策略(替换商用账户ID和角色名):

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "arn:aws:iam::222222222222:role/mysuperrolename"
        }
    ]
}

原理说明

商用云IAM系统无法直接验证政府云ARN的合法性,因此必须先信任整个政府云账户(通过账户ID或root ARN),再利用aws:PrincipalArn条件键过滤出唯一的目标用户,既满足商用账户的策略验证要求,又能确保权限的最小化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 06:05:14