Amazon Elastic Container Service (Amazon ECS) タスクを実行したいのですが、AccessDenied エラーが表示されます。
簡単な説明
AccessDenied エラーは、Amazon ECS リソースが使用する AWS Identity and Access Management (IAM) ロールに、AWS リソースでアクションを実行するために必要なアクセス許可がない場合に発生します。この問題を解決するには、欠けているアクセス許可を IAM ロールに追加します。
解決策
IAM ロールに必要なアクセス許可が欠けていることを確認するには、サービスイベントメッセージと Amazon ECS タスクログに停止したタスクに関するエラーがないか確認します。
Amazon ECS リソースの IAM ロールに必要なアクセス許可がない場合、次のエラーメッセージが表示されます。
User: arn:aws:iam::123456789012:rolename is not authorized to perform: ecs:action on resource: arn:aws:ecs:region:123456789012:resource-type/resource-name
上記のエラーメッセージの例では、IAM ロールは arn:aws:iam::123456789012:rolename であり、アクセス許可 ecs:action が欠けており、リソース arn:aws:ecs:region:123456789012:resource-type/resource-name が影響を受けています。アクセス許可ポリシーで使用するために、これらの値を書き留めておきます。
Amazon ECS マネージドポリシーを使用する
Amazon ECS で IAM ロールを使用する場合は、Amazon ECS マネージドポリシーの使用をおすすめします。Amazon ECS マネージドポリシーには、最も一般的な必須アクセス許可が含まれています。
Amazon ECS マネージドポリシーを使用するには、次の手順を実行します。
- IAM コンソールを開きます。
- ナビゲーションペインで [ロール] を選択します。
- 影響を受けている IAM ロールを選択します。
- [アクセス許可を追加] を選択してから [ポリシーを直接アタッチする] を選択します。
- IAM ロールに必要なアクセス許可に応じて、検索バーにマネージドポリシーを入力し、選択します。
- [次へ] を選択し、[アクセス許可の追加] を選択します。
- アクセス許可をテストするために、エラーが発生した操作を実行します。
インラインポリシーを作成する
カスタムアクセス許可を設定するには、アクセス許可の要件に基づいてインラインポリシーを作成し、そのポリシーを Amazon ECS の IAM ロールにアタッチします。
関連情報
Amazon Elastic Container Service 用の ID とアクセス管理
Amazon ECS タスクで別の AWS アカウント内の IAM ロールを引き受けるための設定を行う方法を教えてください