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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

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

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

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

注意

作为最佳实践,我们强烈建议您创建该角色,使其拥有应用程序所需的最低其他 AWS 服务 权限。

前提条件

创建在 Amazon 上运行的应用程序EC2可以担任的IAM角色。选择适当的权限,以便随后获得该角色的应用程序可以进行所需的特定API调用。

如果您使用IAM控制台而不是控制台中的一个 AWS SDKs, AWS CLI 则控制台会自动创建实例配置文件,并为其指定与其对应的角色相同的名称。

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

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

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

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

  5. 对于您的用例,请选择,EC2然后选择 “下一步”。

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

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

  8. 选择下一步

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

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

IAM权限

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

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

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

有关 Amazon A EC2 uto Scaling 如何验证使用启动模板的 Auto Scaling 组的iam:PassRole操作权限的信息,请参阅ec2:RunInstances 和 iam:PassRole 的权限验证

创建启动模板

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

使用中的create-launch-template命令创建启动模板时 AWS 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 IAM 角色的更多信息EC2,请参阅: