本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon ECS 实例角色
Amazon Batch计算环境中有 Amazon ECS 容器实例。他们在本地运行 Amazon ECS 容器代理。Amazon ECS 容器代理将代表您调用Amazon API 操作。因此,运行该代理的容器实例需要一个 IAM 策略和角色,以便这些服务识别该代理属于您。您必须创建 IAM 角色和实例配置文件,以便容器实例在启动时使用。否则,您无法创建计算环境并在其中启动容器实例。此要求适用于使用或不使用亚马逊提供的 Amazon ECS 优化型 AMI 启动的容器实例。有关更多信息,请参阅 Amazon Elastic Contain ic C ontainic Containic Con tainin
在控制台首次运行体验中将自动为您创建 Amazon ECS 实例角色和实例配置文件。但是,您可以按照以下步骤检查您的账户是否已有 Amazon ECS 实例角色和实例配置文件。以下步骤还涵盖了如何附加托管 IAM 策略。
在 IAM 控制台中检查 ecsInstanceRole
通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/
。 -
在导航窗格中,选择 Roles(角色)。
-
在角色列表中搜索
ecsInstanceRole
。如果该角色不存在,请使用以下步骤创建该角色。-
请选择 Create Role(创建角色)。
-
对于 Trusted entity type(可信实体类型),选择 Amazon Web Service。
-
对于常见用例,请选择 EC2。
-
选择 Next(下一步)。
-
有关权限策略,请搜索 AmazoneC2ContainerServicefor EC2Role。
-
选中 AmazoneC2ContainerServicefor EC2Role 旁边的复选框,然后选择 “下一步”。
-
对于 Role Name (角色名称),键入
ecsInstanceRole
,然后选择 Create Role (创建角色)。注意
如果使用创建 Amazon EC2 的角色,则控制台将使用与角色相同的名称创建实例配置文件。Amazon Web Services Management Console
-
或者,您可以使用创建ecsInstanceRole
IAM 角色。Amazon CLI以下示例使用信任策略和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" } ] }
-
使用 c reate- 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 API 中使用单独的操作创建角色Amazon CLI和实例配置文件。
$
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