如何将 IAM 角色添加到 AWS 中的现有实例?
How to add an IAM role to an existing instance in AWS?
我想向 AWS 中的现有 EC2
实例添加 IAM
角色。我尝试使用 AWS CLI
。但是,我找不到这样做的方法。
必须在首次启动实例时分配角色。
启动后无法分配角色。
我建议通过 Launch More Like This 控制台命令启动一个新实例。请注意,这将基于相同的 AMI 创建一个新的启动磁盘,因此您保存的任何数据都不会被复制。如果您希望保存数据,则需要从实例创建 AMI 并从该 AMI 启动新实例。
2017 年 2 月更新: 现在可以向现有实例添加 IAM 角色。这可以通过 AWS Command-Line Interface (CLI). Use the replace-iam-instance-profile-association
命令完成。
嗯,这就是现在的残酷事实。您不能将 IAM 角色关联到现有实例。我开始知道当我尝试 System Server Manager 服务时需要您的 EC2 实例与 ssm api.
我想我们还得再等一段时间。
截至昨天发布的 AWS CLI v1.11.46(参见 GitHub 上的 CHANGELOG file),您现在可以附加一个 IAM角色分配给最初使用 associate-iam-instance-profile
命令在没有 IAM 角色的情况下启动的现有 EC2 实例。
您还可以使用 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 as well. See this blog post attach/replace 现有 EC2 实例的 IAM 角色以获取更多详细信息。
如果您在尝试将角色附加到现有 EC2 实例时遇到 "The association is not the active association" 错误,那么您应该:
1. detach the existing role from the existing EC2 instance.
2. attach a new role to the existing EC2 instance.
执行此操作后,您将能够将角色附加到现有的 EC2 实例。
此功能是 added 2017 年 2 月 9 日。注意:您正在寻找的东西称为 "Instance Profile"。该政策描述了权利。然后将该策略添加到角色 and/or 实例配置文件中。我没有看到任何关于具体如何操作的注释,所以我将添加为答案。
源文档here
下面的具体说明符合关于 link rot.
的 Whosebug 指南
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
我想向 AWS 中的现有 EC2
实例添加 IAM
角色。我尝试使用 AWS CLI
。但是,我找不到这样做的方法。
必须在首次启动实例时分配角色。
启动后无法分配角色。
我建议通过 Launch More Like This 控制台命令启动一个新实例。请注意,这将基于相同的 AMI 创建一个新的启动磁盘,因此您保存的任何数据都不会被复制。如果您希望保存数据,则需要从实例创建 AMI 并从该 AMI 启动新实例。
2017 年 2 月更新: 现在可以向现有实例添加 IAM 角色。这可以通过 AWS Command-Line Interface (CLI). Use the replace-iam-instance-profile-association
命令完成。
嗯,这就是现在的残酷事实。您不能将 IAM 角色关联到现有实例。我开始知道当我尝试 System Server Manager 服务时需要您的 EC2 实例与 ssm api.
我想我们还得再等一段时间。
截至昨天发布的 AWS CLI v1.11.46(参见 GitHub 上的 CHANGELOG file),您现在可以附加一个 IAM角色分配给最初使用 associate-iam-instance-profile
命令在没有 IAM 角色的情况下启动的现有 EC2 实例。
您还可以使用 replace-iam-instance-profile-association
.
有关详细信息,请参阅 AWS Security Blog 上的以下文章:
Attach an AWS IAM Role to an Existing Amazon EC2 Instance by Using the AWS CLI.
更新
自 2017 年 2 月 22 日起,您可以从 EC2 console as well. See this blog post attach/replace 现有 EC2 实例的 IAM 角色以获取更多详细信息。
如果您在尝试将角色附加到现有 EC2 实例时遇到 "The association is not the active association" 错误,那么您应该:
1. detach the existing role from the existing EC2 instance.
2. attach a new role to the existing EC2 instance.
执行此操作后,您将能够将角色附加到现有的 EC2 实例。
此功能是 added 2017 年 2 月 9 日。注意:您正在寻找的东西称为 "Instance Profile"。该政策描述了权利。然后将该策略添加到角色 and/or 实例配置文件中。我没有看到任何关于具体如何操作的注释,所以我将添加为答案。
源文档here
下面的具体说明符合关于 link rot.
的 Whosebug 指南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