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

Amazon ECS Anywhere IAM 权限

有一些适用于 Amazon ECS Anywhere 必需项和条件 IAM 权限。以下各节将更详细地描述 IAM 权限。

外部实例所需的 IAM 权限

将本地部署服务器或虚拟机(VM)注册到群集时,服务器或虚拟机需要 IAM 角色才能与 Amazon API 通信。您只需为每个创建此 IAM 角色一次 Amazon 账户。但是,此 IAM 角色必须与您注册到群集的每个服务器或虚拟机关联。此角色是 ECSAnywhereRole。您可以手动创建此角色。Amazon ECS 可以在您在 Amazon Web Services Management Console 中注册外部实例时代表您创建角色。

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

要创建ECS Anywhere IAM 角色 (Amazon Web Services Management Console)
  1. 通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择 Roles,然后选择 Create role

  3. 选择 Amazon 服务角色类型,然后选择 Systems Manager允许 SSM 代表您调用 Amazon 服务

  4. 选择 Systems Manager 用例,然后下一步:权限

  5. 附加的权限策略部分,搜索并选择 AmazonSSMManagedInstanceCoreAmazonEC2ContainerServiceforEC2Role 策略,然后选择下一步:查看

    重要

    AmazonEC2ContainerServiceforEC2Role 托管策略提供本地部署服务器或 VM 所需的权限。但是,AmazonEC2ContainerServiceforEC2Role 托管策略可能会授予您的用例不需要的权限。查看此策略授予的权限,并查看您的用例是否不需要所有权限。然后,根据您的情况,可以选择创建自定义策略并仅添加所需的权限。有关更多信息,请参阅Amazon ECS 容器实例 IAM 角色

  6. 对于添加标签(可选),指定要与策略关联的任何自定义标签,然后选择下一步:审核.

  7. 对于 角色名称,键入 ECSAnywhereRole,或者也可以输入描述。

  8. 查看角色信息,然后选择创建角色

  9. 执行搜索 ECSAnywhereRole,然后选择以查看角色详细信息。

要创建 ECS Anywhere IAM 角色 (Amazon CLI)
  1. 创建一个名为 ssm-trust-policy.json 的文件,其中包含要用于 IAM 角色的信任策略。该文件应包含以下内容:

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": {"Service": [ "ssm.amazonaws.com" ]}, "Action": "sts:AssumeRole" } }
  2. 使用在上一步中创建的信任策略创建名为 ecsAnywhereRole 的 IAM 角色。

    aws iam create-role \ --role-name ecsAnywhereRole \ --assume-role-policy-document file://ssm-trust-policy.json
  3. 将 Amazon 托管 AmazonSSMManagedInstanceCore 策略 附加到 ecsAnywhereRole 角色。此策略提供本地部署服务器或虚拟机所需的 Systems Manager API 权限。

    aws iam attach-role-policy \ --role-name ecsAnywhereRole \ --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore
  4. 将 Amazon 托管 AmazonEC2ContainerServiceforEC2Role 策略 附加到 ecsAnywhereRole 角色。

    aws iam attach-role-policy \ --role-name ecsAnywhereRole \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role
    重要

    AmazonEC2ContainerServiceforEC2Role 托管策略提供本地部署服务器或 VM 所需的权限。但是,AmazonEC2ContainerServiceforEC2Role 托管策略可能会授予您的用例不需要的权限。查看此策略授予的权限,并查看您的用例是否不需要所有权限。然后,根据您的情况,可以选择创建自定义策略并仅添加所需的权限。有关更多信息,请参阅Amazon ECS 容器实例 IAM 角色

条件 IAM 权限

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

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

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

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