ECS Anywhere IAM 角色 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

ECS Anywhere IAM 角色

当您将本地服务器或虚拟机 (VM) 注册到集群时,服务器或虚拟机需要一个 IAM 角色才能与 Amazon API 通信。您只需为每个 Amazon 账户创建一次此 IAM 角色。但是,此 IAM 角色必须与您注册到群集的每个服务器或虚拟机关联。此角色是 ECSAnywhereRole。您可以手动创建此角色。Amazon ECS 可以在您在 Amazon Web Services Management Console中注册外部实例时代表您创建角色。您可以使用 IAM 控制台搜索来搜索ecsAnywhereRole并查看您的账户是否已拥有该角色。有关更多信息,请参阅 IAM 用户指南中的 IAM 控制台搜索

Amazon 提供了两个可在创建 ECS Anywhere IAM 角色时使用的托管 IAM 策略,即AmazonSSMManagedInstanceCoreAmazonEC2ContainerServiceforEC2Role策略。AmazonEC2ContainerServiceforEC2Role 策略包含的权限可能会提供超出您需要的访问权限。因此,根据您的特定用例,我们建议您创建一个自定义策略,仅添加该策略中所需的权限。有关更多信息,请参阅 Amazon ECS 容器实例 IAM 角色

创建 ECS Anywhere (ecsAnywhereRole) 角色

用您自己的信息替换所有用户输入

  1. 使用以下信任策略创建ssm-trust-policy.json名为的本地文件。

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": {"Service": [ "ssm.amazonaws.com" ]}, "Action": "sts:AssumeRole" } }
  2. 使用以下 Amazon CLI 命令创建角色并附加信任策略。

    aws iam create-role --role-name ecsAnywhereRole --assume-role-policy-document file://ssm-trust-policy.json
  3. 使用以下命令附加 Amazon 托管策略。

    aws iam attach-role-policy --role-name ecsAnywhereRole --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore aws iam attach-role-policy --role-name ecsAnywhereRole --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role

您也可以使用 IAM 控制台的自定义信任策略工作流程 (https://console.aws.amazon.com/iam/) 来创建角色。有关更多信息,请参阅 IAM 用户指南中的使用自定义信任策略(控制台)创建角色

条件 IAM 权限

任务执行 IAM角色授予 Amazon ECS 容器代理代表您进行 Amazon API 调用的权限。使用任务执行 IAM 角色时,必须在任务定义中指定该角色。有关更多信息,请参阅 Amazon ECS 任务执行 IAM 角色

如果满足以下条件之一,则需要任务执行角色:

  • 您正在使用日志驱动程序将容器 CloudWatch 日志发送到 awslogs Logs。

  • 您的任务定义指定托管在 Amazon ECR 专用存储库中的容器映像。但是,如果与外部实例关联的 ECSAnywhereRole IAM角色还包括从 Amazon ECR 提取映像所需的权限,则您的任务执行角色不需要包括这些权限。