如何让AWS编程访问用户通过角色切换创建资源?权限报错求助
解决AWS编程访问用户(UserB)EC2/VPC权限报错问题
解码授权失败详情
AWS返回的编码错误信息可以直接用CLI解码,执行以下命令获取具体权限缺失原因:aws sts decode-authorization-message --encoded-message <你的编码错误内容>
解码结果会明确指出是操作不允许、资源不匹配还是存在条件限制。验证Policy Y的权限配置
检查Policy Y的JSON内容:- 确认Action字段包含
"ec2:*"和"vpc:*"(或至少包含ec2:CreateSecurityGroup、ec2:DescribeInstances等所需操作) - 确认Resource字段设置为
"*",如果指定了特定资源,UserB操作的资源需在范围内 - 排查是否存在显式拒绝策略:UserB可能继承了IAM组、账户级别的拒绝策略,或是AWS组织的SCP限制了相关操作
- 确认Action字段包含
确认UserB的凭证有效性
- 用CLI命令
aws configure list查看当前生效的Access Key,确认是UserB的凭证 - 检查Terraform的凭证配置:如果用环境变量,确认
AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY对应UserB;如果用credentials文件,确认使用的profile属于UserB
- 用CLI命令
检查权限边界与其他限制
- 查看UserB的IAM用户详情,确认是否设置了权限边界。权限边界会限制用户的最大权限,即使Policy Y授予全权限,边界不足也会导致报错
- 确认是否有MFA要求:如果Policy Y设置了MFA条件,编程访问时未提供MFA凭证会触发拒绝
核对操作区域
检查Terraform配置中的AWS区域,以及CLI执行aws ec2 describe-instances时的区域(可通过--region指定),确认与Policy Y中Condition限制的区域一致(若有区域限制)
内容的提问来源于stack exchange,提问作者Mohd
相关产品推荐
相关产品推荐

