Amazon Elastic Container Service (Amazon ECS)/AWS Fargate タスクを実行すると、次のエラーが発生します。
ECS が、このタスクに提供された「arn:aws:iam::xxxxxxxxxxxx:role/yyyyyyyy」ロールを引き受けることができません。渡されたロールに適切な信頼関係とアクセス許可があり、IAM ユーザーがこのロールを渡すアクセス許可を持っていることを確認してください。
解決方法
このエラーは、次の 1 つまたは複数の理由で発生します。
- タスク定義で指定されているタスク実行 AWS Identity and Access Management (IAM) ロールまたはタスクロールが存在しない。
- タスク定義で指定されているタスク実行 IAM ロールまたはタスクロールに、正しい信頼関係ポリシーがない。
タスク実行ロールまたはタスクロールが存在することを確認する
コンソールを使用して、タスク定義で定義されているタスク実行ロールまたはタスクロールが存在するかどうかを確認するには、次の手順を実行します。
- IAM コンソールを開きます。
- [Roles] (ロール) を選択します。
- ロールのリストで、タスク定義に含めたタスク実行ロールまたはタスクロールを検索します。
AWS Command Line Interface (AWS CLI) を使用して、タスク実行ロールまたはタスクロールが存在するかどうかを確認するには、次のコマンドを実行します。
注: このコマンドは、指定された IAM ロールに関する情報を取得します。
aws iam get-role --role-name example-task-execution-role
注: AWS CLI コマンドの実行時にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください。
ロールが存在しない場合、次のエラーが表示されます。
An error occurred (NoSuchEntity) when calling the GetRole operation: The role with name example-task-execution-role cannot be found.
ロールが存在しない場合は、次のいずれかを実行することを検討してください。
タスク定義のタスク実行ロールまたはタスクロールに正しい信頼関係ポリシーが設定されているかどうかを確認する
ロールの信頼関係ポリシーで、サービス ecs-tasks.amazonaws.com が許可されていることを確認します。これは、Amazon ECS タスクが指定された IAM ロールを引き受けるために必要です。
信頼関係ポリシーを確認し、必要に応じて更新するには、次の手順を実行します。
1. IAM コンソールを開きます。
2. ナビゲーションペインで [Roles] を選択します。
3. ロールのリストで、タスク定義に含めたタスク実行ロールまたはタスクロールを検索します。
4. ロールを選択します。
5. [Trust Relationships] (信頼関係) を選択します。
6. ロールの信頼関係に次のポリシーが含まれているかどうかを確認します。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "ecs-tasks.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
7. 信頼関係がポリシーと一致する場合は、[Cancel] (キャンセル) を選択します。一致しない場合は、[Edit Trust relationship] (信頼関係の編集) を選択します。
8. 上記のポリシーを [Policy Document] (ポリシードキュメント) ウィンドウにコピーし、[Update Trust Policy] (信頼ポリシーの更新) を選択します。
関連情報
タスク用の IAM ロール
Amazon ECS タスク実行 IAM ロール
Amazon Elastic Container Service のアイデンティティとアクセスのトラブルシューティング