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

单AWS账号执行CloudFormation栈时遇跨账号传角色不允许错误求助

排查单AWS账号下CloudFormation创建EKS栈时的"Cross-account pass role is not allowed"错误
  • 检查CloudFormation模板/自定义配置中的角色ARN
    确认custom.mk或CloudFormation模板里指定的所有IAM角色ARN(比如EKS集群角色、节点实例角色等)的账号ID与aws sts get-caller-identity --query 'Account' --output text返回的完全一致,避免手误填入其他账号ID。

  • 验证IAM角色的信任策略
    对于栈中用到的每个IAM角色,检查其信任策略是否仅允许当前账号的服务/主体调用:

    aws iam get-role --role-name <目标角色名> --query 'Role.AssumeRolePolicyDocument'
    

    确保Principal字段中没有包含其他账号的ARN(如arn:aws:iam::OTHER_ACCOUNT_ID:root),同时确认允许cloudformation.amazonaws.com、eks.amazonaws.com等必要服务主体。

  • 检查CloudFormation命令的角色参数
    查看Makefile中create-eks-cluster目标对应的aws cloudformation create-stack命令,确认是否指定了--role-arn参数,且该参数的值属于当前账号。如果该参数指向其他账号的角色,会直接触发跨账号错误。

  • 排查IAM用户的权限边界与会话策略
    即使属于admin组,用户可能被权限边界或会话策略限制了iam:PassRole操作:

    1. 查看用户的权限边界:
      aws iam get-user --user-name <你的IAM用户名> --query 'User.PermissionsBoundary'
      
    2. 确认边界策略允许对当前账号内的角色执行iam:PassRole动作。
  • 检查AWS Organizations服务控制策略(SCP)
    如果账号属于AWS Organizations,联系管理员检查组织级SCP是否存在限制iam:PassRole的规则,比如误将Resource设置为其他账号ARN,或者直接Deny了跨账号传递(即使你是同一账号,SCP的错误配置也可能触发拦截)。

  • 确认AWS CLI配置一致性
    执行aws configure list确认当前CLI默认配置的账号ID与aws sts get-caller-identity返回一致,同时检查Makefile中是否指定了--profile参数指向其他账号的配置文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 13:54:22