在 Amazon EC2 实例上运行的应用程序的 IAM 角色 - Amazon EC2 Auto Scaling
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

在 Amazon EC2 实例上运行的应用程序的 IAM 角色

在 Amazon EC2 实例上运行的应用程序需要凭证以访问其他 Amazon Web Services。要以安全的方式提供这些凭证,请使用 IAM 角色。角色可提供临时权限,以供应用程序在访问其他 Amazon 资源时使用。角色的权限将确定允许访问资源的应用程序。

对于 Auto Scaling 组中的实例,您必须创建启动模板或启动配置,并选择要与实例关联的实例配置文件。实例配置文件是 IAM 角色的容器,在实例启动时允许 Amazon EC2 将 IAM 角色传递到实例。首先,创建具有访问 Amazon 资源所需的所有权限的 IAM 角色。然后,创建实例配置文件并将该角色分配给它。

注意

作为一项最佳实践,我们强烈建议您创建角色,使其具有您的应用程序需要的其他 Amazon Web Services 的最小权限。

先决条件

创建运行在 Amazon EC2 上的应用程序可代入的 IAM 角色。选择适当的权限,以便随后向应用程序提供可以进行所需 API 调用的角色。

如果您使用 IAM 控制台而不是 Amazon CLI 或其中一个 Amazon SDK,控制台自动创建实例配置文件,按相应的角色为文件命名。

创建 IAM 角色(控制台)
  1. 通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在左侧的导航窗格中,选择角色

  3. 选择 Create role(创建角色)。

  4. 对于选择可信实体,选择 Amazon 服务

  5. 对于您的使用案例,选择 EC2,然后选择 Next(下一步)。

  6. 如果可能,选择要用作权限策略的策略,或选择 Create policy(创建策略)以打开新的浏览器选项卡并从头开始创建新策略。有关更多信息,请参阅 IAM 用户指南 中的创建 IAM policy。在您创建策略后,关闭该选项卡并返回到您的原始选项卡。选中您希望服务具有的权限策略旁边的复选框。

  7. (可选)设置权限边界。这是一项可用于服务角色的高级功能。有关更多信息,请参阅《IAM 用户指南》中的 IAM 实体的权限边界

  8. 选择 Next(下一步)。

  9. Name, review, and create(命名、检查并创建)页面上,对于 Role name(角色名称),请输入一个角色名称以帮助标识此角色的作用。此名称在您的 Amazon Web Services 账户中必须唯一。由于其他 Amazon 资源可能会引用此角色,因此角色创建完毕后将无法编辑角色名称。

  10. 检查该角色,然后选择创建角色

IAM 权限

使用基于 IAM 身份的策略来控制对新 IAM 角色的访问。使用指定实例配置文件的启动模板创建或更新自动扩缩组,或创建指定实例配置文件的启动配置的 IAM 身份(用户或角色)将需要 iam:PassRole 权限。

下面的策略示例授予仅传递名称以 qateam- 开头的 IAM 角色的权限。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/qateam-*", "Condition": { "StringEquals": { "iam:PassedToService": [ "ec2.amazonaws.com", "ec2.amazonaws.com.cn" ] } } } ] }

创建启动模板

当您使用 Amazon Web Services Management Console 创建启动模板时,在高级详细信息部分中,从 IAM 实例配置文件中选择角色。有关更多信息,请参阅配置启动模板的高级设置

当您使用 create-launch-template 命令从 Amazon CLI 中创建启动模板时,指定 IAM 角色的实例配置文件名称,如以下示例所示。

aws ec2 create-launch-template --launch-template-name my-lt-with-instance-profile --version-description version1 \ --launch-template-data '{"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro","IamInstanceProfile":{"Name":"my-instance-profile"}}'

创建启动配置

使用 Amazon Web Services Management Console 创建启动配置时,在其他配置部分中,从 IAM 实例配置文件中选择该角色。有关更多信息,请参阅创建启动配置

当您使用 create-launch-configuration 命令从 Amazon CLI 中创建启动配置时,指定 IAM 角色的实例配置文件名称,如以下示例所示。

aws autoscaling create-launch-configuration --launch-configuration-name my-lc-with-instance-profile \ --image-id ami-04d5cc9b88example --instance-type t2.micro \ --iam-instance-profile my-instance-profile

另请参阅

有关帮助您开始了解和使用 Amazon EC2 的 IAM 角色的更多信息,请参阅: