翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
タスク用の IAM ロールのトラブルシューティング
クラスターでタスク用の IAM ロールを設定するときに問題が発生する場合は、この既知の正常な設定を試して、実際の設定のデバッグに役立てることができます。
ここでは、以下の手順について説明します。
-
テストログを保存する CloudWatch Logs ロググループを作成します。
-
完全な Amazon ECS アクセス権限のあるタスク用の IAM ロールを作成します。
-
タスク用の IAM ロールと互換性のある既知の正常な AWS CLI 設定でタスク定義を登録します。
-
そのタスク定義からタスクを実行して、タスク用の IAM ロールに対してコンテナインスタンス サポートをテストします。
-
そのタスクのコンテナログを CloudWatch Logs で表示して、機能することを確認します。
既知の正常な設定を使用してタスク用の IAM ロールをテストする
-
という CloudWatch ロググループを作成します
ecs-tasks
。https://console.aws.amazon.com/cloudwatch/
で CloudWatch コンソールを開きます。 -
左のナビゲーションペインで、[Logs (ログ)]、[Actions (アクション)]、[Create log group (ロググループの作成)] の順に選択します。
-
[Log Group Name (ロググループ名)] では
ecs-tasks
と入力し、[Create log group (ロググループの作成)] を選択します。
-
使用するタスクに IAM ロールを作成する
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションペインで [ロール]、[ロールの作成] の順に選択します。
-
[Select type of trusted entity (信頼されたエンティティの種類を選択)] で、[Elastic Container Service] を選択します。
-
[Select your use case] (ユースケースの選択) で、[Elastic Container Service Task] (Elastic Container Service タスク)、[Next: Permissions] (次: 権限) を選択します。
-
「アタッチされたアクセス許可ポリシー」ページで、「AmazonECS _FullAccess」、「次へ: を確認する」を選択します。
-
[Review (確認)] ページで、[Role name (ロール名)] に
ECS-task-full-access
と入力し、[Create role (ロールの作成)] を選択します。
-
新しいロールを使用するタスク定義を登録します。
コンソール (https://console.aws.amazon.com/ecs/v2
) を開きます。 -
ナビゲーションペインで、タスクの定義 を選択します。
-
[Create new task definition] (新しいタスク定義の作成)、[Create new task definition with JSON] (JSON で新しいタスク定義を作成) の順に選択します。
-
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 }
-
情報を確認し、[Create] (作成) を選択します。
-
タスク定義からタスクを実行します。
-
タスク定義: iam-role-test 登録確認ページで、デプロイ、タスクの実行を選択します。
-
[タスクを実行] ページでクラスターを選択し、[デプロイ] を選択してタスクを実行します。
-
-
ログコンソールでコンテナ CloudWatch ログを表示します。
https://console.aws.amazon.com/cloudwatch/
で CloudWatch コンソールを開きます。 -
左のナビゲーションペインで [Logs] (ログ) を選択します。
-
ecs-tasks
ロググループを選択します。 -
最新のログストリームを選択します。
-
スクロールダウンして、ログストリームの最後の行を表示します。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 ロール機能は、コンテナインスタンスで有効ではありません。詳細については、「Amazon EC2 または外部インスタンスでタスク IAM ロールを使用する」を参照してください。
-
認証情報の URL が調整されています。
ECS_TASK_METADATA_RPS_LIMIT
コンテナエージェントパラメータを使用して、スロットル制限を設定できます。詳細については、「Amazon ECS コンテナエージェントの設定」を参照してください。
-