メニュー
Amazon Elastic Container Service
開発者ガイド (API バージョン 2014-11-13)

タスク用の IAM ロールのトラブルシューティング

クラスターでタスク用の IAM ロールを設定するときに問題が発生する場合は、この既知の良好な設定を試して、実際の設定のデバッグに役立てることができます。

ここでは、以下の手順について説明します。

  • テストログを保存する CloudWatch Logs ロググループを作成する

  • 完全な Amazon ECS アクセス権限のあるタスク用の IAM ロールを作成する

  • タスク用の IAM ロールと互換性のある既知の良好な AWS CLI 設定でタスク定義を登録する

  • そのタスク定義からタスクを実行して、タスク用の IAM ロールに対してコンテナインスタンスのサポートをテストする

  • CloudWatch Logs でそのタスクからのコンテナログを表示して、機能していることを確認する

既知の良好な設定を使用してタスク用の IAM ロールをテストする

  1. ecs-tasks という名前の CloudWatch Logs ロググループを作成します。

    1. https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。

    2. 左のナビゲーションペインで [Logs] を選択します。

    3. [Actions]、[Create log group] の順に選択します。

    4. [Log Group Name] に「ecs-tasks」と入力します。

    5. [Create log group] を選択して終了します。

  2. タスクに使用する IAM ロールを作成する

    1. https://console.aws.amazon.com/iam/ にある IAM コンソールを開きます。

    2. ナビゲーションペインで [Roles]、[Create role] の順に選択します。

    3. [Select type of trusted entity] (信頼されたエンティティの種類を選択) で、[Elastic Container Service] を選択します。

    4. [ユースケースの選択] で、[Elastic Container Service タスク]、[Next: Permissions] (次へ: アクセス権限) の順に選択します。

    5. [アタッチされたアクセス権限ポリシー] ページで、[AmazonEC2ContainerServiceFullAccess]、[Next: Review (次の手順: 確認)] の順に選択します。

    6. [Review] ページで、[Role name] に ECS-task-full-access と入力し、[Create role] を選択します。

  3. 新しいロールを使用するタスク定義を登録します。

    1. https://console.aws.amazon.com/ecs/ にある Amazon ECS コンソールを開きます。

    2. ナビゲーションペインで、[Task Definitions] を選択します。

    3. [Task Definitions] ページで、[Create new Task Definition] を選択します。

    4. [Select launch type compatibility] ページで、[EC2]、[Next step] の順に選択します。

    5. ページの末尾までスクロールし、[Configure via JSON] を選択します。

    6. 以下のサンプルタスク定義 JSON をテキスト領域に貼り付け (その領域にあらかじめ入力されている JSON を置き換え)、[Save] を選択します。

      注記

      awslogs-region 値を、CloudWatch Logs ロググループを作成したリージョンに置き換えます。

      { "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", "requiresCompatibilities": [ "EC2" ], "volumes": [], "placementConstraints": [], "networkMode": null, "memory": null, "cpu": null }
    7. 情報を確認し、[Create] を選択します。

  4. タスク定義からタスクを実行します。

    1. [Task Definition: iam-role-test] 登録確認ページで、[Actions]、[Run Task] の順に選択します。

    2. [Run Task] ページで、[EC2] の起動タイプ、クラスターを選択し、[Run Task] を選択してタスクを実行します。

  5. CloudWatch Logs コンソールでコンテナログを表示します。

    1. https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。

    2. 左のナビゲーションペインで [Logs] を選択します。

    3. ecs-tasks ロググループを選択します。

    4. 最新のログストリームを選択します。

    5. スクロールダウンして、ログストリームの最後の行を表示します。aws ecs list-tasks コマンドの出力が表示されています。

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

      注記

      "Unable to locate credentials" エラーが発生した場合、タスク用の IAM ロール機能はコンテナインスタンスに対して有効ではありません。詳細については、「コンテナインスタンスでタスクの IAM ロールを有効にする」を参照してください。