タスク用の IAM ロールのトラブルシューティング - Amazon Elastic Container Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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

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

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

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

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

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

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

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

既知の正常な設定を使用してタスク用の IAM ロールをテストする
  1. という CloudWatch ロググループを作成しますecs-tasks

    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. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

    2. ナビゲーションペインで [ロール][ロールの作成] の順に選択します。

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

    4. [Select your use case] (ユースケースの選択) で、[Elastic Container Service Task] (Elastic Container Service タスク)、[Next: Permissions] (次: 権限) を選択します。

    5. 「アタッチされたアクセス許可ポリシー」ページで、「AmazonECS _FullAccess」、「次へ: を確認する」を選択します。

    6. [Review (確認)] ページで、[Role name (ロール名)] に ECS-task-full-access と入力し、[Create role (ロールの作成)] を選択します。

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

    1. コンソール (https://console.aws.amazon.com/ecs/v2) を開きます。

    2. ナビゲーションペインで、タスクの定義 を選択します。

    3. [Create new task definition] (新しいタスク定義の作成)、[Create new task definition with JSON] (JSON で新しいタスク定義を作成) の順に選択します。

    4. JSON エディタボックスで、JSON ファイルを編集し、

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

      注記

      cluster-name の値を自分のクラスター名に置き換えます。region 値を、クラスターを作成したリージョンに置き換えます。

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

      { "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 --cluster cluster-name --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 }
    5. 情報を確認し、[Create] (作成) を選択します。

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

    1. タスク定義: iam-role-test 登録確認ページで、デプロイ、タスクの実行を選択します

    2. [タスクを実行] ページでクラスターを選択し、[デプロイ] を選択してタスクを実行します。

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

    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」エラーが表示された場合、次の原因が考えられます。