ロールを使用して 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 エンティティにアタッチすることはできません。
サービスリンクロールを削除するには、最初に関連リソースを削除する必要があります。こうすることで、不注意によりリソースにアクセスするための許可を削除することがなくなるため、Amazon ECS リソースが保護されます。
サービスにリンクされたロールをサポートする他のサービスについては、「IAM と連携する AWS のサービス」を参照し、サービスにリンクされたロール列内で [はい] と表記されたサービスを確認してください。サービスリンクロールに関するドキュメントをサービスで表示するには、リンクで [はい] を選択します。
Amazon ECS のサービスリンクロール許可
Amazon ECS は、AWSServiceRoleForECS という名前のサービスにリンクされたロールを使用します。このロールにより、Amazon ECS はクラスターを管理できるようになります。
サービスにリンクされたロール AWSServiceRoleForECS は、次のサービスを信頼してロールを引き受けます。
-
ecs.amazonaws.com
AmazonECSServiceRolePolicy という名前のロールのアクセス許可ポリシーは、指定したリソースに対して以下のアクションを実行することを Amazon ECS に許可します。
-
アクション:
awsvpcAmazon 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 が管理します。
-
アクション: Amazon ECS は、Amazon ECS が管理するサービスの AWS Cloud Map サービス属性を更新できます。
-
アクション: Amazon ECS は、タスクの開始時と停止時に Amazon EC2 のプロビジョニング及びプロビジョニング解除用 ENI を呼び出すことができます。
-
アクション: Amazon ECS は Event Windows に関連付けられたサービスとクラスターのために Amazon EC2 Event Windows を取得することが可能になります。
ユーザー、グループ、またはロールにサービスリンクロールの作成、編集、または削除を許可するには、アクセス許可を設定する必要があります。詳細についてはIAM ユーザーガイド の「サービスにリンクされた役割のアクセス許可」を参照してください。
Amazon ECS のサービスリンクロールの作成
サービスリンクロールを手動で作成する必要はありません。AWS マネジメントコンソール、AWS CLI、または AWS API でクラスターを作成したり、サービスを作成または更新したりすると、Amazon ECS によってサービスにリンクされたロールが自動的に作成されます。
重要
このサービスリンクロールはこのロールでサポートされている機能を使用する別のサービスでアクションが完了した場合にアカウントに表示されます。2017 年 1 月 1 日より前に Amazon ECS サービスを使用している場合、サービスにリンクされたロールのサポートの開始時に、Amazon ECS によって AWSServiceRoleForECS ロールがアカウントに作成されています。詳細については、「AWS アカウントに新しいロールが表示される」を参照してください。
AWSServiceRoleForECS ユースケースでサービスにリンクされたロールを作成するには、IAM コンソールを使用します。AWS CLI または AWS API で、IAM を使用してサービスにリンクされたロール (サービス名は ecs.amazonaws.com) で作成します。詳細については、「IAM ユーザーガイド」の「サービスリンクロールの作成」を参照してください。このサービスリンクロールを削除しても、同じ方法でロールを再作成できます。
このサービスリンクロールを削除した後で再度作成する必要が生じた場合は同じ方法でアカウントにロールを再作成できます。クラスターを作成したり、サービスを作成または更新したりすると、Amazon ECS によってサービスにリンクされたロールが自動的に作成されます。
このサービスにリンクされたロールを削除する場合、この同じ IAM プロセスを使用して、もう一度ロールを作成できます。
Amazon ECS のサービスリンクロールの編集
Amazon ECS では、AWSServiceRoleForECS サービスリンクロールを編集できません。サービスリンクロールの作成後は、さまざまなエンティティがロールを参照する可能性があるため、ロール名を変更することはできません。ただし、IAM を使用してロールの説明を編集することはできます。詳細については、「IAM ユーザーガイド」の「サービスリンクロールの編集」を参照してください。
Amazon ECS のサービスリンクロールの削除
AWSServiceRoleForECS ロールを手動で削除する必要はありません。AWS マネジメントコンソール、AWS CLI、AWS API の全リージョンのクラスターを削除すると、Amazon ECS がリソースをクリーンアップし、サービスリンクロールを削除します。
サービスリンクロールを必要とする機能やサービスが不要になった場合は、ロールを削除することをお勧めします。そうすることで、モニタリングや保守が積極的に行われていない未使用のエンティティを排除できます。ただし、手動で削除する前に、サービスリンク役割をクリーンアップする必要があります。
サービスリンク役割のクリーンアップ
IAM を使用してサービスにリンクされた役割を削除するには最初に、その役割で使用されているリソースをすべて削除する必要があります。
注記
リソースを削除しようとしたときに Amazon ECS サービスがロールを使用している場合は、削除が失敗する可能性があります。失敗した場合は数分待ってから操作を再試行してください。
AWSServiceRoleForECS が使用している Amazon ECS リソースを削除するには (コンソール)
-
すべての Amazon ECS サービスをすべてのリージョンで必要数 0 に縮小してから、サービスを削除します。詳細については、「Amazon ECS サービスを更新する」および「コンソールを使用して Amazon ECS サービスの削除」を参照してください。
-
全リージョンのすべてのクラスターからすべてのコンテナインスタンスを強制的に登録解除します。詳細については、「Amazon ECS コンテナインスタンスの登録を解除する」を参照してください。
-
すべてのリージョンですべての Amazon ECS クラスターを削除します。詳細については、「Amazon ECS クラスターを削除する」を参照してください。
AWSServiceRoleForECS が使用している Amazon ECS リソースを削除するには (AWS CLI)
-
すべての Amazon ECS サービスをすべてのリージョンで必要数 0 に縮小してから、サービスを削除します。詳細については、「AWS Command Line Interfaceリファレンス」の「update–service」および「delete–service」を参照してください。
-
全リージョンのすべてのクラスターからすべてのコンテナインスタンスを強制的に登録解除します。詳細については、「deregister–container–instance」を参照してください。
-
全リージョンですべての Amazon ECS クラスターを削除します。詳細については、「delete–cluster」を参照してください。
AWSServiceRoleForECS が使用している Amazon ECS リソースを削除するには (API)
-
すべての Amazon ECS サービスをすべてのリージョンで必要数 0 に縮小してから、サービスを削除します。詳細については、Amazon ECS API リファレンスの「UpdateService」および「DeleteService」を参照してください。
-
全リージョンのすべてのクラスターからすべてのコンテナインスタンスを強制的に登録解除します。詳細については、「DeregisterContainerInstance」を参照してください。
-
全リージョンですべての Amazon ECS クラスターを削除します。詳細については、「DeleteCluster」を参照してください。
サービスリンク役割の手動による削除
IAM コンソール、AWS CLI、または AWS API を使用して、サービスにリンクされたロールである AWSServiceRoleForECS を削除します。詳細については、「IAM ユーザーガイド」の「サービスにリンクされたロールの削除」を参照してください。
Amazon ECS サービスリンクロールがサポートされるリージョン
Amazon ECS は、サービスが利用可能なすべてのリージョンでサービスにリンクされたロールの使用をサポートします。詳細については、「AWS リージョンとエンドポイント」を参照してください。