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

跨账号VPC对等连接授权角色:带会话名的扮演角色无法通过CloudFormation调用

解决带会话名的IAM角色无法被VPC对等连接授权角色信任的问题

这个场景我之前帮人排查过——带会话名的临时角色ARN确实没法提前加到信任策略里,毕竟它是运行时动态生成的。不过有几个可行的方案能绕开这个限制,咱们一个个看:

方案1:用通配符匹配会话角色的ARN前缀

会话角色的ARN格式是固定的:arn:aws:iam::ACCOUNT-ID:role/ROLE-NAME/session-name,所以你可以在VPC对等连接授权角色的信任策略里,用通配符*来匹配该基础角色下所有的会话实例。

比如,把信任策略的主体改成这样:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::123456789:role/Admin/*"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

这样所有从Admin角色衍生出的带会话名的临时角色,都能被这个授权角色信任了。不过要注意:只有当你完全信任Admin角色的所有使用者时才用这个方案,避免过度授权带来的安全风险。

方案2:改用角色链直接使用基础角色

如果不想用通配符,你可以先扮演基础的Admin角色(不带会话名),然后在这个角色的上下文里执行CloudFormation模板。这样CloudFormation会使用Admin角色本身的ARN,而不是临时会话角色,你只需要把arn:aws:iam::123456789:role/Admin加到授权角色的信任策略里就行。

举个AWS CLI的操作例子:

  1. 先获取基础角色的临时凭证:
aws sts assume-role --role-arn arn:aws:iam::123456789:role/Admin --role-session-name base-session
  1. 把返回的AccessKeyId、SecretAccessKey、SessionToken设置成环境变量:
export AWS_ACCESS_KEY_ID="..."
export AWS_SECRET_ACCESS_KEY="..."
export AWS_SESSION_TOKEN="..."
  1. 然后运行CloudFormation命令:
aws cloudformation deploy --template-file your-vpc-peering-template.yaml --stack-name vpc-peering-stack

方案3:基于会话标签的条件信任(进阶)

如果需要更精细的控制,你可以在扮演Admin角色时指定自定义标签,然后在授权角色的信任策略里添加条件,只允许带有特定标签的会话角色。

比如,扮演角色时指定标签:

aws sts assume-role --role-arn arn:aws:iam::123456789:role/Admin --role-session-name tagged-session --tags Key=VPCPeeringAccess,Value=Allowed

然后授权角色的信任策略改成:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::123456789:role/Admin/*"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalTag/VPCPeeringAccess": "Allowed"
        }
      }
    }
  ]
}

这样只有带有指定标签的会话角色才能被信任,兼顾了灵活性和安全性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:04:04