创建AWS托管实例激活时提示“Not existing role”的问题咨询
解决AWS SSM托管实例激活时的角色不存在错误问题
我之前也碰到过一模一样的问题,其实核心就是报错里的那个IAM角色要么没正确创建,要么权限/信任关系配置不到位。下面给你梳理创建托管实例激活前必须完成的操作:
1. 确认并创建指定的IAM服务角色
报错里的AmazonEC2RunCommandRoleForManagedInstances是AWS为SSM托管实例提供的专属服务角色,如果你的账号里还没有这个角色,需要手动创建:
- 登录IAM控制台,进入「角色」页面,点击「创建角色」
- 选择受信任的实体类型为「AWS服务」,然后在服务列表里选「Systems Manager」,点击「下一步」
- 搜索并附加
AmazonEC2RoleforSSM托管策略(这是给角色赋予SSM所需权限的核心策略) - 角色名称填写
AmazonEC2RunCommandRoleForManagedInstances,完成创建
2. 验证角色的信任关系是否正确
创建完角色后,一定要检查信任关系,确保SSM服务能正确扮演这个角色:
- 进入该角色的「信任关系」标签页,点击「编辑信任策略」
- 确认策略文档包含以下内容(如果没有就替换成这个):
这一步很关键,要是信任关系不对,就算角色存在,SSM也没法使用它。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ssm.amazonaws.com", "ec2messages.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
3. 确保操作账号有足够权限
你用来创建托管实例激活的IAM用户/角色,必须拥有两个核心权限:
ssm:CreateActivation:允许创建托管实例激活iam:PassRole:允许将刚才创建的AmazonEC2RunCommandRoleForManagedInstances角色传递给SSM服务
可以给账号附加AmazonSSMAutomationRole托管策略,或者自定义一个包含这两个权限的策略。
4. 准确填写角色ARN
创建激活的时候,一定要仔细核对输入的角色ARN,确保账号ID、角色名没有拼写错误,正确的ARN格式是:
arn:aws:iam::你的AWS账号ID:role/service-role/AmazonEC2RunCommandRoleForManagedInstances
如果用AWS CLI创建激活,命令示例如下:
aws ssm create-activation \ --iam-role arn:aws:iam::123456789012:role/service-role/AmazonEC2RunCommandRoleForManagedInstances \ --registration-limit 5 \ --description "激活本地服务器用于SSM管理"
做完这些步骤,再去创建托管实例激活应该就不会报角色不存在的错误了。
内容的提问来源于stack exchange,提问作者Kimi Wu
相关产品推荐
相关产品推荐

