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 (ログ)]、[Actions (アクション)]、[Create log group (ロググループの作成)] の順に選択します。

    3. [Log Group Name (ロググループ名)] では ecs-tasks と入力し、[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 Task (Elastic Container Service タスク)]、[Next: Permissions (次の手順: アクセス権限)] の順に選択します。

    5. [Attached permissions policy (アタッチされたアクセス権限ポリシー)] ページで、[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 (タスク定義: 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」エラーが表示された場合、次の原因が考えられます。