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

IAM Identity Center自定义策略与权限集失效问题排查

解决IAM Identity Center权限集Outdated及Pulumi关联自定义策略404问题

问题核心原因

  1. 自定义策略的存储位置错误:IAM Identity Center权限集关联的自定义IAM策略,必须存在于你要授权的目标成员账户中,而非管理IAM Identity Center的主账户。你报错的策略ARN属于目标账户,但大概率是策略被误删,或是Pulumi未先在目标账户创建策略就直接尝试关联,导致AWS找不到资源报404。
  2. Pulumi资源类型用错:关联SSO权限集的自定义策略,不能用普通的CustomerManagedPolicyAttachment(这个是给IAM用户/组/角色用的),必须用SSO专属的关联资源。

Pulumi 分步解决代码示例

1. 先在目标账户创建自定义IAM策略

首先配置目标账户的Provider(通过组织默认的OrganizationAccountAccessRole跨账户操作),然后在目标账户内创建策略:

// 配置目标账户的Provider
const targetAccountProvider = new aws.Provider("target-account-provider", {
  assumeRole: {
    roleArn: "arn:aws:iam::838965223641:role/OrganizationAccountAccessRole",
  },
});

// 在目标账户创建S3自定义策略
const s3ListPolicy = new aws.iam.Policy("cloud-devs-s3-list-policy", {
  name: "cloud_devs_s3_list_all_buckets_policy",
  policy: JSON.stringify({
    Version: "2012-10-17",
    Statement: [
      {
        Effect: "Allow",
        Action: "s3:ListAllMyBuckets",
        Resource: "*",
      },
    ],
  }),
}, { provider: targetAccountProvider }); // 指定用目标账户的Provider创建

2. 关联策略到SSO权限集

使用SSO专属的PermissionSetCustomerManagedPolicyAttachment资源关联:

// 假设已存在的权限集资源
const devPermissionSet = new aws.ssoadmin.PermissionSet("dev-s3-permission-set", {
  name: "DevS3Access",
  instanceArn: "arn:aws:sso:::instance/ssoins-xxxxxxxxx", // 替换为你的IAM Identity Center实例ARN
});

// 关联自定义策略到权限集
new aws.ssoadmin.PermissionSetCustomerManagedPolicyAttachment("s3-policy-attach", {
  instanceArn: devPermissionSet.instanceArn,
  permissionSetArn: devPermissionSet.arn,
  customerManagedPolicyReference: {
    name: s3ListPolicy.name,
    path: "/",
  },
});

3. 修复权限集Outdated状态

控制台更新失败时,用CLI强制同步权限集:

aws sso-admin provision-permission-set \
  --instance-arn arn:aws:sso:::instance/ssoins-xxxxxxxxx \
  --permission-set-arn arn:aws:sso:::permissionSet/ssoins-xxxxxxxxx/ps-xxxxxxxxx \
  --target-id 838965223641 \
  --target-type AWS_ACCOUNT

或者重新部署Pulumi的AccountAssignment资源,触发自动同步。

关键注意点

  • 自定义策略必须在目标成员账户创建,不能放在管理IAM Identity Center的主账户
  • 关联SSO权限集一定要用aws.ssoadmin.PermissionSetCustomerManagedPolicyAttachment,别用普通IAM的策略附件资源
  • 权限集显示Outdated后,控制台更新失效时,优先用CLI或重新部署账户关联来触发同步

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 09:32:33