Amazon Elastic Container Service
开发人员指南 (API Version 2014-11-13)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

任务 IAM 角色问题排查

如果在为自己群集中的任务配置 IAM 角色时遇到问题,您可以尝试使用这个已知良好的配置来帮助调试自己的配置。

下面的过程可帮助您:

  • 创建 CloudWatch Logs 日志组来存储测试日志

  • 创建具有完全 Amazon ECS 权限的任务 IAM 角色

  • 使用与任务 IAM 角色兼容的已知良好的 AWS CLI 配置注册任务定义

  • 从该任务定义运行任务,以测试您的容器实例是否支持任务的 IAM 角色

  • 在 CloudWatch Logs 中查看该任务的容器日志,以验证它是否正常工作

用已知良好的配置测试任务的 IAM 角色

  1. 创建一个称作 ecs-tasks 的 CloudWatch Logs 日志组。

    1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

    2. 在左侧导航窗格中,选择 Logs

    3. 选择 ActionsCreate log group

    4. 对于 Log Group Name,输入 ecs-tasks

    5. 选择 Create log group 以完成操作。

  2. 为您的任务创建一个要使用的 IAM 角色。

    1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

    2. 在导航窗格中,选择 RolesCreate new role

    3. 对于 AWS Service Role,选择 Amazon Elastic Container Service Task Role

    4. Attach Policy 页面上,选择 AmazonEC2ContainerServiceFullAccess,然后选择 Next Step

    5. Set role name and review 页面上,对于 Role name,输入 ECS-task-full-access,然后选择 Create role

  3. 注册使用您的新角色的任务定义。

    1. https://console.amazonaws.cn/ecs/ 上打开 Amazon ECS 控制台。

    2. 在导航窗格中,选择 Task Definitions

    3. Task Definitions 页面上,选择 Create new Task Definition

    4. 滚动到页面底部,选择 Configure via JSON

    5. 将下面的示例任务定义 JSON 粘贴到文本区域 (替换预填充的 JSON),然后选择 Save

      注意

      awslogs-region 的值替换成您创建的 CloudWatch Logs 日志组所在的区域。

      Copy
      { "taskRoleArn": "ECS-task-full-access", "containerDefinitions": [ { "memory": 128, "essential": true, "name": "amazonlinux", "image": "amazonlinux", "entryPoint": [ "/bin/bash", "-c" ], "command": [ "yum install -y aws-cli; aws ecs list-tasks --region us-west-2" ], "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "ecs-tasks", "awslogs-region": "us-west-2", "awslogs-stream-prefix": "iam-role-test" } } } ], "family": "iam-role-test" }
    6. 验证您的信息并选择 Create

  4. 从您的任务定义运行任务。

    1. Task Definition: iam-role-test 注册确认页面上,依次选择 ActionsRun Task

    2. Run Task 页面上,选择 Run Task 来运行您的任务。

  5. 在 CloudWatch Logs 控制台中查看容器日志。

    1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

    2. 在左侧导航窗格中,选择 Logs

    3. 选择 ecs-tasks 日志组。

    4. 选择最新的日志流。

    5. 向下滚动以查看日志流的最后几行。您应会看到 aws ecs list-tasks 命令的输出。

      Copy
      { "taskArns": [ "arn:aws:ecs:us-east-1:aws_account_id:task/d48feb62-46e2-4cbc-a36b-e0400b993d1d" ] }

      注意

      如果收到“Unable to locate credentials”错误,则说明您的容器实例未启用任务 IAM 角色。有关更多信息,请参阅 在容器实例上启用任务 IAM 角色