在 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 角色(控制台)
通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/
。 -
在左侧的导航窗格中,选择角色。
-
选择 Create role(创建角色)。
-
对于选择可信实体,选择 Amazon 服务。
-
对于您的使用案例,选择 EC2,然后选择 Next(下一步)。
-
如果可能,选择要用作权限策略的策略,或选择 Create policy(创建策略)以打开新的浏览器选项卡并从头开始创建新策略。有关更多信息,请参阅 IAM 用户指南 中的创建 IAM policy。在您创建策略后,关闭该选项卡并返回到您的原始选项卡。选中您希望服务具有的权限策略旁边的复选框。
-
(可选)设置权限边界。这是一项可用于服务角色的高级功能。有关更多信息,请参阅《IAM 用户指南》中的 IAM 实体的权限边界。
-
选择 Next(下一步)。
-
在 Name, review, and create(命名、检查并创建)页面上,对于 Role name(角色名称),请输入一个角色名称以帮助标识此角色的作用。此名称在您的 Amazon Web Services 账户中必须唯一。由于其他 Amazon 资源可能会引用此角色,因此角色创建完毕后将无法编辑角色名称。
-
检查该角色,然后选择创建角色。
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-descriptionversion1
\ --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-idami-04d5cc9b88example
--instance-typet2.micro
\ --iam-instance-profilemy-instance-profile
另请参阅
有关帮助您开始了解和使用 Amazon EC2 的 IAM 角色的更多信息,请参阅:
-
适用于 Linux 实例的 Amazon EC2 用户指南中的 Amazon EC2 的 IAM 角色
-
IAM 用户指南中的使用使用实例配置文件和使用 IAM 角色为 Amazon EC2 实例上运行的应用程序授予权限