Amazon ECS のサービスリンクロールの使用 - Amazon Elastic Container Service

Amazon ECS のサービスリンクロールの使用

Amazon Elastic Container Service は、AWS Identity and Access Management (IAM) のサービスにリンクされたロールを使用します。サービスリンクロールは、Amazon ECS に直接リンクされた特殊なタイプの IAM ロールです。サービスリンクロールは Amazon ECS によって事前に定義されており、サービスがユーザーに代わって他の AWS サービスを呼び出すために必要な、すべての許可が含まれています。

サービスにリンクされたロールを使用すると、必要な許可を手動で追加する必要がないため、Amazon ECS のセットアップが簡単になります。サービスリンクロールの許可は Amazon ECS が定義し、特に定義されない限り、Amazon ECS のみがそのロールを引き受けることができます。定義したアクセス許可には、信頼ポリシーと許可ポリシーが含まれます。この許可ポリシーを他の IAM エンティティにアタッチすることはできません。

サービスリンクロールをサポートする他のサービスについては、「IAM と連動する AWS のサービス」を参照し、[Service-linked role (サービスリンクロール)] の列内で [Yes (はい)] と表記されたサービスを確認してください。サービスにリンクされたロールに関するドキュメントをサービスで表示するには、[Yes] (はい) リンクを選択します。

Amazon ECS のサービスリンクロール許可

Amazon ECS は、[AWSServiceRoleForECS] という名前のサービスにリンクされたロールを使用します。

サービスにリンクされたロール AWSServiceRoleForECS は、次のサービスを信頼してロールを引き受けます。

  • ecs.amazonaws.com

AmazonECSServiceRolePolicy という名前のロールのアクセス許可ポリシーは、指定したリソースに対して以下のアクションを実行することを Amazon ECS に許可します。

  • アクション: awsvpc Amazon ECS タスクのネットワークモードを使用する場合、Amazon ECS はタスクに関連するエラスティックネットワークインターフェイスのライフサイクルを管理します。これには、Amazon ECS がエラスティックネットワークインターフェイスに追加するタグも含まれます。

  • アクション: Amazon ECS サービスでロードバランサーを使用する場合、Amazon ECS は、ロードバランサーへのリソースの登録と登録解除を管理します。

  • アクション: Amazon ECS サービス検出を使用する場合、Amazon ECS は必要な Route 53 を管理し、AWS Cloud Map サービス検出が機能するためのリソース

  • アクション: Amazon ECS サービスのオートスケーリングを使用する場合、Amazon ECS は必要な Auto Scaling リソースを管理します。

  • アクション: Amazon ECS は、Amazon ECS リソースのモニタリングに役立つ CloudWatch アラームとログストリームを作成および管理します。

  • アクション: Amazon ECS Exec を使用する場合、Amazon ECS Exec セッションを開始するために必要なタスクへのアクセス権限は Amazon ECS が管理します。

  • アクション: Amazon ECS Service Connect を使用する場合、その機能を使用するために必要な AWS Cloud Map リソースは Amazon ECS が管理します。

  • アクション: Amazon ECS キャパシティープロバイダーを使用する場合、Auto Scaling グループとその Amazon EC2 インスタンスを変更するために必要なアクセス権限は Amazon ECS が管理します。

サービスリンクロールの作成、編集、削除を IAM エンティティ (ユーザー、グループ、ロールなど) に許可するには、アクセス許可を設定する必要があります。詳細については、「IAM User Guide」(IAM ユーザーガイド) の「Service-linked role permissions」(サービスにリンクされたロールのアクセス権限) を参照してください。

Amazon ECS のサービスリンクロールの作成

ほとんどの場合、サービスにリンクされたロールを手動で作成する必要はありません。AWS Management Console、AWS CLI、または AWS API でクラスターを作成したり、サービスを作成または更新したりすると、Amazon ECS によってサービスにリンクされたロールが自動的に作成されます。クラスターを作成した後に AWSServiceRoleForECS ロールが表示されない場合は、以下を実行して問題を解決してください。

  • Amazon ECS がユーザーに代わってサービスにリンクされたロールを作成、編集、または削除できるようにするためのアクセス許可を確認して設定します。詳細については、「IAM User Guide」(IAM ユーザーガイド) の「Service-linked role permissions」(サービスにリンクされたロールのアクセス権限) を参照してください。

  • クラスター作成操作を再試行するか、サービスにリンクされたロールを手動で作成してください。

    IAM コンソールを使用して、AWSServiceRoleForECS サービスにリンクされたロールを作成できます。AWS CLI または AWS API では、ecs.amazonaws.com サービス名を使用してサービスにリンクされたロールを作成します。詳細については、『IAM ユーザーガイド』の「サービスにリンクされたロールの作成」を参照してください。

重要

このサービスリンクロールは、このロールでサポートされている機能を使用する別のサービスでアクションが完了した場合にアカウントに表示されます。

このサービスリンクロールを削除した後で再度作成する必要が生じた場合は、同じ方法でアカウントにロールを再作成できます。クラスターを作成したり、サービスを作成または更新したりすると、Amazon ECS によってサービスにリンクされたロールが自動的に作成されます。

このサービスにリンクされたロールを削除する場合、この同じ IAM プロセスを使用して、もう一度ロールを作成できます。

Amazon ECS のサービスリンクロールの編集

Amazon ECS では、AWSServiceRoleForECS サービスリンクロールを編集できません。サービスリンクロールを作成した後は、多くのエンティティによってロールが参照される可能性があるため、ロール名を変更することはできません。ただし、IAM を使用したロールの説明の編集はできます。詳細については、「IAM ユーザーガイド」の「サービスリンクロールの編集」を参照してください。

Amazon ECS のサービスリンクロールの削除

サービスリンクロールが必要な機能またはサービスが不要になった場合には、そのロールを削除することをお勧めします。そうすることで、積極的にモニタリングまたは保守されていない未使用のエンティティを排除できます。ただし、手動で削除する前に、サービスリンクロールのリソースをクリーンアップする必要があります。

注記

リソースを削除しようとしたときに Amazon ECS サービスがロールを使用している場合は、削除が失敗する可能性があります。失敗した場合は、数分待ってから操作を再試行してください。

サービスにリンクされたロールがアクティブなセッションを持っているかどうかを確認するには
  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. ナビゲーションペインで、[Roles] (ロール) を選択し、AWSServiceRoleForECS の名前を選択します。(チェックボックスではなく)

  3. Summary] (概要) ページで Access Advisor] (アクセスアドバイザー) を選択し、サービスにリンクされたロールの最新のアクティビティを確認します。

    注記

    Amazon ECS が AWSServiceRoleForECS ロールを使用しているかどうか不明な場合は、ロールを削除してみてください。サービスがロールを使用している場合、削除は失敗し、ロールが使用されているリージョンを表示できます。ロールが使用されている場合は、ロールを削除する前にセッションが終了するのを待つ必要があります。サービスにリンクされたロールのセッションを取り消すことはできません。

AWSServiceRoleForECS サービスリンクロールが使用している Amazon ECS リソースを削除するには

AWSServiceRoleForECS ロールを削除する前に、AWS リージョンすべての Amazon ECS クラスターを削除する必要があります。

  1. すべての Amazon ECS サービスをすべてのリージョンで必要数 0 に縮小してから、サービスを削除します。詳細については、コンソールを使用した Amazon ECS サービスの更新およびコンソールを使用して Amazon ECS サービスの削除を参照してください。

  2. すべてのリージョンですべてのクラスターからすべてのコンテナインスタンスを登録解除します。詳細については、「Amazon ECS コンテナインスタンスの登録を解除する」を参照してください。

  3. すべてのリージョンですべての Amazon ECS クラスターを削除します。詳細については、「Amazon ECS クラスターを削除する」を参照してください。

サービスにリンクされたロールを IAM で手動削除するには

IAM コンソール、AWS CLI、または AWS API を使用して、サービスにリンクされたロールである AWSServiceRoleForECS を削除します。詳細については、 IAM ユーザーガイド の「サービスにリンクされたロールの削除」を参照してください。

Amazon ECS サービスリンクロールがサポートされるリージョン

Amazon ECS は、サービスが利用可能なすべてのリージョンでサービスにリンクされたロールの使用をサポートします。詳細については、「AWS リージョンとエンドポイント」を参照してください。