AWS CLI创建EC2实例绑定实例配置时出现UnauthorizedOperation报错如何解决
根因
从你解码的授权失败信息可直接定位问题:发起run-instances操作的身份(EC2实例A绑定的IAM角色)缺少iam:PassRole权限。
AWS有强制安全规则:任何身份要给新创建的EC2实例绑定实例配置文件(关联IAM角色)时,必须具备iam:PassRole权限,允许将目标角色传递给EC2服务,避免身份越权滥用自己无权使用的高权限角色。
解决步骤
- 打开AWS IAM控制台,找到实例A绑定的实例配置文件对应的IAM角色
- 给该角色添加如下权限策略(可选择内联策略,也可新建托管策略绑定):
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "<你要绑定给实例B的角色ARN>", "Condition": { "StringEquals": { "iam:PassedToService": "ec2.amazonaws.com" } } } ] }
- 把上述策略中
Resource字段的值替换为解码信息里给出的目标角色ARN,配置完成后等待10秒左右权限生效,再次执行实例创建命令即可成功。
补充说明
添加Condition限制是遵循最小权限原则,确保这个PassRole权限只能用于给EC2服务传递角色,避免权限被滥用。如果你需要支持传递多个角色,可以把Resource改为arn:aws:iam::<你的AWS账号ID>:role/*,或者用数组列出所有允许传递的角色ARN。
内容的提问来源于stack exchange,提问作者dovregubben
相关产品推荐
相关产品推荐

