如何在 Amazon Elastic Compute Cloud(Amazon EC2)实例上附加或替换实例配置文件?
解决方法
请按照以下说明在 EC2 实例上附加或替换实例配置文件。
注意:
- 如果您是使用 AWS 管理控制台创建的该 AWS Identity and Access Management(IAM)角色并且对于 AWS 服务选择的是 EC2,则实例配置文件和 IAM 角色的名称相同。
- 如果您是使用 AWS 命令行界面(AWS CLI)创建的该 IAM 角色,则该实例配置文件也必须使用 AWS CLI 创建。IAM 角色名称和实例配置文件名称可以不同。
- 如果在运行 AWS CLI 命令时遇到错误,请确保您使用的是最新版本的 AWS CLI。
- 您必须具有启动 EC2 实例的权限和传递 IAM 角色的权限。有关详细信息,请参阅在 Amazon EC2 中使用角色所需的权限。
AWS 管理控制台
- 打开 Amazon EC2 控制台,然后选择实例。
- 选择要向其附加 IAM 角色的实例。
- 检查 Details(详细信息)窗格下的 IAM 角色,以确认是否有 IAM 角色已经附加到此 Amazon EC2 实例。如果已经附加了某个 IAM 角色,则应确认更改附加到此 Amazon EC2 实例的角色不会影响您的应用程序或对 AWS 服务的访问。注意:EC2 实例权限会根据附加的 IAM 角色而改变,实例上运行的应用程序可能会受到影响。
- 依次选择 Actions(操作)、Security(安全性)和 Modify IAM role(修改 IAM 角色)。
注意:Amazon EC2 使用实例配置文件作为 IAM 角色的容器。有关更多信息,请参阅实例类型。
- 在 Choose IAM role(选择 IAM 角色)下拉列表中,选择要附加的实例配置文件。
- 选择 Save(保存)。
有关更多信息,请参阅创建 IAM 角色(控制台)。
AWS 命令行界面 (AWS CLI)
将角色添加到某个实例配置文件,然后再将该实例配置文件附加到 EC2 实例。
1. 如果您尚未创建实例配置文件,则运行以下 AWS CLI 命令:
aws iam create-instance-profile --instance-profile-name EXAMPLEPROFILENAME
2. 运行以下 AWS CLI 命令以将该角色添加至实例配置文件:
$ aws iam add-role-to-instance-profile --instance-profile-name EXAMPLEPROFILENAME --role-name EXAMPLEROLENAME
3. 运行以下 AWS CLI 命令以将该实例配置文件附加到 EC2 实例:
$ aws ec2 associate-iam-instance-profile --iam-instance-profile Name=EXAMPLEPROFILENAME --instance-id i-012345678910abcde
注意:如果此 EC2 实例已经关联了某个实例配置文件,则 associate-iam-instance-profile 命令将会失败。要解决此问题,请运行 describe-iam-instance-profile-associations 命令以获取关联的实例 ID。然后,请执行以下操作之一:
运行 replace-iam-instance-profile-association 命令以替换实例配置文件。
–或者–
运行 disassociate-iam-instance-profile 命令以分离该实例配置文件,然后重新运行 associate-iam-instance-profile 命令。
4. 运行以下 AWS CLI 命令以验证该 IAM 角色是否已经附加到该实例:
$ aws ec2 describe-iam-instance-profile-associations --filters Name=instance-id,Values=i-012345678910abcde
相关信息
使用 IAM 角色向在 Amazon EC2 实例上运行的应用程序授予权限
使用实例配置文件
IAM 和 Amazon EC2 问题排查