如何将IAM角色添加到aws中的现有实例?

时间:2016-03-10 10:34:46

标签: amazon-web-services amazon-ec2 aws-cli

我想将一个IAM角色添加到AWS中的现有EC2实例。我尝试使用AWS CLI。但是,我找不到办法做到这一点。

5 个答案:

答案 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