创建CloudFormation的AWS::EC2::SubnetRouteTableAssociation遇403,需何种IAM权限?
排查CloudFormation创建SubnetRouteTableAssociation时的403权限问题
启用CloudFormation详细日志记录
在CloudFormation控制台找到目标栈,开启日志记录并关联CloudWatch日志组。日志中会明确显示CloudFormation尝试调用的具体API动作及对应资源ARN,直接定位失败的权限点。验证IAM权限的资源覆盖范围
即便已拥有ec2:AssociateRouteTable权限,需确认策略中的资源是否覆盖CloudFormation操作的子网和路由表ARN。可通过IAM权限模拟命令验证:aws iam simulate-principal-policy --policy-source-arn arn:aws:iam::123456789012:user/your-user --action-names ec2:AssociateRouteTable --resource-arns arn:aws:ec2:us-east-1:123456789012:subnet/subnet-xxxxxx arn:aws:ec2:us-east-1:123456789012:route-table/rtb-xxxxxx模拟结果会直接显示该用户对指定资源的
ec2:AssociateRouteTable权限是否允许。检查前置依赖权限
CloudFormation创建关联资源前,通常会调用ec2:DescribeSubnets、ec2:DescribeRouteTables验证资源合法性,这些权限缺失也可能触发403错误。可临时在IAM策略中添加这些Describe类权限,测试是否解决问题后再按需缩小范围。确认服务角色配置(若使用)
如果CloudFormation通过服务角色执行操作,需检查两点:- 服务角色的信任策略允许
cloudformation.amazonaws.com扮演该角色 - 执行CloudFormation操作的IAM用户拥有
iam:PassRole权限,允许将该服务角色传递给CloudFormation服务
- 服务角色的信任策略允许
内容的提问来源于stack exchange,提问作者peterh
相关产品推荐
相关产品推荐

