Amazon Elastic Container Service
開発者ガイド (API バージョン 2014-11-13)

Amazon ECS タスク実行 IAM ロール

Amazon ECS コンテナエージェントはユーザーに代わって Amazon ECS API アクションを呼び出すため、エージェントがユーザーに属していることをサービスに伝えるために、IAM ポリシーおよびロールが必要です。以下のアクションがタスク実行ロールの AmazonECSTaskExecutionRolePolicy ポリシーの対象になります。

  • コンテナイメージをプルするための Amazon ECR の呼び出し

  • コンテナアプリケーションログを保存するための CloudWatch の呼び出し

注記

タスク実行ロールは ECS エージェントバージョン 1.16.0 以降でサポートされています。

Fargate 起動タイプを使用するタスクの場合、Amazon ECR からコンテナイメージをプルしたり、現在この起動タイプでサポートされている唯一のログオプションである awslogs ログドライバーを使用したりするには、タスク実行ロールが必要です。パブリックコンテナイメージ (Docker Hub のパブリックイメージなど) を使用していて、ログ設定を使用していない場合、タスク実行ロールは不要です。

EC2 起動タイプを使用するタスクの場合、タスク実行ロールによって付与されるアクセス権限はコンテナインスタンスの IAM ロールによってすでに付与されているため、タスク実行ロールは不要です。詳細については、「Amazon ECS コンテナインスタンスの IAM ロール」を参照してください。

AmazonECSTaskExecutionRolePolicy のポリシーを次に示します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*" } ] }

Amazon ECS タスク実行ロールは、コンソールの最初の実行時に自動的に作成されます。ただし、タスクのためのマネージド型 IAM ポリシーを手動でアタッチして、Amazon ECS に今後の新機能および機能拡張のためのアクセス許可を追加できるようにする必要があります。次の手順を使用してアカウントに既に Amazon ECS タスク実行のロールが存在するか確認し、必要に応じてマネージド IAM ポリシーをアタッチすることができます。

IAM コンソールで ecsTaskExecutionRole を確認するには

  1. https://console.aws.amazon.com/iam/ にある IAM コンソールを開きます。

  2. ナビゲーションペインで [Roles (ロール) ] を選択します。

  3. ロールのリストで ecsTaskExecutionRole を検索します。ロールが見つからない場合、次の手順を使用してロールを作成します。ロールが存在する場合は、そのロールを選択して、アタッチされているポリシーを表示します。

  4. [Permissions] タブを選択します。AmazonECSTaskExecutionRolePolicy マネージドポリシーがロールにアタッチされていることを確認します。ポリシーがアタッチされている場合、Amazon ECS タスク実行ロールは適切に設定されています。そうでない場合、次のサブステップに従ってポリシーをアタッチします。

    1. [Attach policy] を選択します。

    2. [Filter] ボックスに、アタッチする利用可能なポリシーを絞り込むために [AmazonECSTaskExecutionRolePolicy] と入力します。

    3. [AmazonECSTaskExecutionRolePolicy] ポリシーの左にあるボックスをオンにし、[Attach policy] を選択します。

  5. [Trust relationships] タブと、[Edit trust relationship] を選択します。

  6. 信頼関係に以下のポリシーが含まれていることを確認します。信頼関係が以下のポリシーと一致する場合、[Cancel] を選択します。信頼関係が一致しない場合、ポリシーを [Policy Document] ウィンドウにコピーし、[Update Trust Policy] を選択します。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ecs-tasks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

ecsTaskExecutionRole IAM ロールを作成するには

  1. https://console.aws.amazon.com/iam/ にある IAM コンソールを開きます。

  2. ナビゲーションペインで [Roles] を選択した後、[Create role] を選択します。

  3. [信頼されたエンティティの種類を選択] セクションで、[Elastic Container Service] を選択します。

  4. [ユースケースの選択] セクションで、[Elastic Container Service のタスク]、[次の手順: アクセス許可] の順に選択します。

  5. [Attach permissions policy] セクションで、[AmazonECSTaskExecutionRolePolicy] を検索し、ポリシーを選択して [Next: Review] を選択します。

  6. [Role Name] に ecsTaskExecutionRole と入力し、[Create role] を選択します。