我想将一个IAM角色添加到AWS中的现有EC2实例。我尝试使用AWS CLI。但是,我找不到办法做到这一点。
答案 0 :(得分:16)
从昨天发布的AWS CLI v1.11.46 开始(请参阅GitHub上的CHANGELOG file),您现在可以将IAM角色附加到最初的现有EC2实例使用associate-iam-instance-profile
命令在没有IAM角色的情况下启动。
您还可以使用replace-iam-instance-profile-association
替换正在运行的实例的当前连接的IAM角色。
有关详细信息,请参阅以下有关AWS Security Blog的文章:
Attach an AWS IAM Role to an Existing Amazon EC2 Instance by Using the AWS CLI
<强>更新强>
自2017年2月22日起,您也可以从EC2 console将IAM角色附加/替换为现有的EC2实例。有关详细信息,请参阅this blog post。
答案 1 :(得分:14)
首次启动实例时,必须分配角色。
在启动后无法分配角色。
我建议通过启动更多此类控制台命令启动新实例。请注意,这将基于相同的AMI创建新的启动盘,因此您保存的所有数据都不会被复制。如果要保存数据,则需要从实例创建AMI并从该AMI启动新实例。
2017年2月更新:现在可以将IAM角色添加到现有实例。这可以通过AWS Command-Line Interface (CLI)完成。使用replace-iam-instance-profile-association
命令。
答案 2 :(得分:9)
如果您在尝试将角色附加到现有EC2实例时收到“关联不是活动关联”错误,那么您应该:
1. detach the existing role from the existing EC2 instance.
2. attach a new role to the existing EC2 instance.
一旦这样做,您就可以将角色附加到现有的EC2实例。
答案 3 :(得分:0)
那就是现在的严酷事实。您无法将IAM角色与现有实例相关联。我开始尝试使用System Server Manager服务时需要你的EC2实例与ssm api协同工作。
我想我们要再等一会儿。
答案 4 :(得分:0)
此功能为added,2017年2月9日。注意:您要查找的内容称为“实例配置文件”。该策略描述了权利。然后将该策略添加到角色和/或实例配置文件中。我没有看到有关具体操作方法的任何注释,因此我将其添加为答案。
源文档here
下面是一些具体说明,以符合有关链接腐烂的StackOverflow准则。
1)创建角色
aws iam create-role --role-name YourNewRole --assume-role-policy-document file://YourNewRole-Trust-Policy.json
2)将策略附加到角色
aws iam attach-role-policy --role-name YourNewRole --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess
3)创建实例配置文件(这是附加到实例时调用的角色)
aws iam create-instance-profile --instance-profile-name YourNewRole-Instance-Profile
4)将角色添加到实例配置文件
aws iam add-role-to-instance-profile --role-name YourNewRole --instance-profile-name YourNewRole-Instance-Profile
5)将实例配置文件附加到ec2实例
aws ec2 associate-iam-instance-profile --instance-id YourInstanceId --iam-instance-profile Name=YourNewRole-Instance-Profile