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

AWS Java SDK调用SimulatePrincipalPolicy返回隐式拒绝结果异常

SimulatePrincipalPolicy接口返回隐式拒绝与实际权限不符问题处理

问题场景

通过Java SDK调用IAM simulateprincipalpolicy接口做权限模拟时,返回结果和实际权限表现不一致。

  • 已挂载到IAM角色Myrole的权限策略:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "id",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeTags"
            ],
            "Resource": "*"
        }
    ]
}
  • 调用接口使用的Java代码:
SimulatePrincipalPolicyRequest simulatePrincipalPolicyRequest = new SimulatePrincipalPolicyRequest()
simulatePrincipalPolicyRequest.setPolicySourceArn("arn:aws:iam::123456789012:role/Myrole");
simulatePrincipalPolicyRequest.withActionNames("ec2:DescribeTags");
  • 接口返回结果:
{
    EvalActionName: ec2:DescribeTags,
    EvalResourceName: *,
    EvalDecision: implicitDeny,
    MatchedStatements: [],
    MissingContextValues: [],
    OrganizationsDecisionDetail: {AllowedByOrganizations: false},
    EvalDecisionDetails: {},
    ResourceSpecificResults: []
}

实际使用该角色执行ec2:DescribeTags操作可正常成功,无权限不足问题。

问题根因

返回结果中OrganizationsDecisionDetail.AllowedByOrganizations字段值为false是核心原因:

  • 默认情况下SimulatePrincipalPolicy接口会同时校验AWS Organizations的服务控制策略(SCP)对请求的影响
  • 如果调用SDK的身份没有Organizations服务的策略读取权限,接口无法拉取到目标账号绑定的SCP配置,会默认判定SCP拦截请求,返回implicitDeny结果,且不会匹配到角色上挂载的身份策略
  • 实际操作时角色本身的身份策略、SCP均已放行ec2:DescribeTags操作,所以真实调用不会报错。

修复方案

根据模拟需求二选一即可:

  1. 不需要模拟SCP影响的场景:在请求中显式关闭SCP校验逻辑
SimulatePrincipalPolicyRequest simulatePrincipalPolicyRequest = new SimulatePrincipalPolicyRequest();
simulatePrincipalPolicyRequest.setPolicySourceArn("arn:aws:iam::123456789012:role/Myrole");
simulatePrincipalPolicyRequest.withActionNames("ec2:DescribeTags");
// 新增:关闭组织SCP策略模拟校验
simulatePrincipalPolicyRequest.setIncludeOrganizationsPolicyDecision(false);
  1. 需要同时模拟SCP影响的场景:给调用SDK使用的身份添加organizations:DescribePolicy、organizations:ListPoliciesForTarget权限,保证接口可以正常拉取组织SCP配置,即可返回准确的模拟结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 08:12:31