本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon ECS 实例角色
Amazon Batch 计算环境已填充有 Amazon ECS 容器实例。它们在本地运行 Amazon ECS 容器代理。Amazon ECS 容器代理将代表您调用各种 Amazon API 操作。因此,运行该代理的容器实例需要一个 IAM policy 和角色,以便该服务了解该代理属于您。您必须创建一个 IAM 角色和一个实例配置文件,以便容器实例在启动时使用。否则,您无法创建计算环境并在其中启动容器实例。此要求适用于在使用或未使用由 Amazon 提供的经 Amazon ECS 优化的 AMI 的情况下启动的容器实例。有关更多信息,请参阅 Amazon Elastic Container Service 开发人员指南中的容器实例 中的 Amazon ECS 容器实例 IAM 角色。
在控制台首次运行体验中将自动为您创建 Amazon ECS 实例角色和实例配置文件。但是,您可以按照以下步骤检查您的账户是否已有 Amazon ECS 实例角色和实例配置文件。以下步骤还介绍了如何附加托管 IAM policy。
在 IAM 控制台中检查 ecsInstanceRole
通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/
。 -
在导航窗格中,选择 Roles(角色)。
-
在角色列表中搜索
ecsInstanceRole
。如果该角色不存在,请使用以下步骤创建该角色。-
请选择 Create Role(创建角色)。
-
对于 Trusted entity type(可信实体类型),选择 Amazon Web Service。
-
对于 常用案例,选择 EC2。
-
选择 Next(下一步)。
-
要查看权限策略,请搜索 AmazonEC2ContainerServiceforEC2Role。
-
选中 AmazonEC2ContainerServiceforEC2Role 旁边的复选框,然后选择下一步。
-
对于 Role Name (角色名称),键入
ecsInstanceRole
,然后选择 Create Role (创建角色)。注意
如果使用 Amazon Web Services Management Console 创建 Amazon EC2 的角色,则控制台创建实例配置文件,将其命名为与角色相同的名称。
-
或者,您可以使用 Amazon CLI 创建 ecsInstanceRole
IAM 角色。使用以下示例通过信任策略和 Amazon 托管策略,创建一个 IAM 角色。
创建 IAM 角色和实例配置文件(Amazon CLI)
-
创建以下信任策略并将其保存在名为
ecsInstanceRole-role-trust-policy.json
的文本文件中。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com"}, "Action": "sts:AssumeRole" } ] }
-
使用 create-role 命令创建
ecsInstanceRole
角色。在assume-role-policy-document
参数中指定信任策略文件的位置。$
aws iam create-role \ --role-name ecsInstanceRole \ --assume-role-policy-document file://ecsInstanceRole-role-trust-policy.json
以下为响应示例。
{ "Role": { "Path": "/", "RoleName: "ecsInstanceRole", "RoleId": "AROAT46P5RDIY4EXAMPLE", "Arn": "arn:aws:iam::123456789012:role/ecsInstanceRole". "CreateDate": "2022-12-12T23:46:37.247Z", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service: "ec2.amazonaws.com" } "Action": "sts:AssumeRole", } ] } }
-
使用 create-instance-profile 命令创建名为
ecsInstanceRole
的实例配置文件。注意
您需要在 Amazon CLI 和 Amazon API 中将角色和实例配置文件创建为单独的操作。
$
aws iam create-instance-profile --instance-profile-name ecsInstanceRole
以下为响应示例。
{ "InstanceProfile": { "Path": "/", "InstanceProfileName": "ecsInstanceRole", "InstanceProfileId": "AIPAT46P5RDITREXAMPLE", "Arn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceRole", "CreateDate": "2022-06-30T23:53:34.093Z", "Roles": [], } }
-
使用 add-role-to-instance-profile 命令将
ecsInstanceRole
角色附加到ecsInstanceRole
实例配置文件。aws iam add-role-to-instance-profile \ --role-name ecsInstanceRole --instance-profile-name ecsInstanceRole
-
使用 attach-role-policy 命令将
AmazonEC2ContainerServiceforEC2Role
Amazon托管策略附加到ecsInstanceRole
角色。$
aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role \ --role-name ecsInstanceRole