Amazon ECS Anywhere IAM 角色 - Amazon Elastic Container Service

Amazon ECS Anywhere IAM 角色

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

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

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

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

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

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

创建 Amazon ECS Anywhere 角色

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

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

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

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

    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 自定义信任策略工作流来创建该角色。有关更多信息,请参阅《IAM 用户指南》中的使用自定义信任策略创建角色(控制台)