web-dev-qa-db-ja.com

ECSの役割要件に混乱

私はECSをセットアップしようとしていますが、これまでにいくつかの許可の問題が発生しており、このフォーラムですでにいくつかの質問を作成しています。

正直なところ、これらのすべての役割要件を1か所で簡潔に見つけることができないため、これまでのところ行き詰まっていると思います。

少なくとも2つの役割を定義する必要があるようです。

1)ECSコンテナhttp://docs.aws.Amazon.com/AmazonECS/latest/developerguide/instance_IAM_role.html

2)ECSタスクhttp://docs.aws.Amazon.com/AmazonECS/latest/developerguide/task-iam-roles。 html#enable_task_iam_roles

それが正しいか?

私は何かを逃したのですか?特別なIAM要件はありますか?

14
Anthony Kong

必要な役割は コンテナインスタンスIAM役割 のみです。このロールにより、EC2インスタンスで実行されるECSエージェントがAmazon ECSと通信できるようになります。

さまざまな目的のために役立つ他の5つの役割があります。

  • ECSサービスにリンクされたロール(SLR) -このロールにより、Amazon ECSはユーザーに代わってアプリケーションに関連付けられたさまざまなAWSリソースを管理できます。 Service を使用する場合、このロールにより、Amazon ECSはロードバランサー(クラシックロードバランサー、アプリケーションロードバランサー、ネットワークロードバランサー)およびサービスディスカバリー( ルート5 を使用)を管理できます)サービスに関連付けられています。 task networking を使用する場合、このロールにより、Amazon ECSがタスクに Elastic Network Interfaces(ENIs) をアタッチおよびデタッチできるようになります。 AWS Fargate を使用する場合、このロールが必要です。
  • Service Scheduler IAM role -ECS Service-Linked Role(SLR)が導入される前は、このロールは Service と組み合わせて使用​​され、Amazon ECSがサービスに関連付けられたロードバランサー。 ECSサービスでElastic Load Balancer(クラシックロードバランサー、アプリケーションロードバランサー、ネットワークロードバランサーのいずれか)を使用する場合は、このロールを使用できます。 ECS SLRが利用可能になったので、2つのロールのいずれかを使用できますが、特定のロードバランサーリソースをカバーするためにAmazon ECSに付与されるアクセス許可を制限する場合は、このロールを使用することもできます。
  • Auto Scaling IAMロール -このロールは Service と組み合わせて使用​​され、アプリケーションのAuto Scalingサービスがサービスの希望の数をスケールインまたはスケールアウトできるようにします。
  • タスクIAMロール -このロールは、任意の タスクサービス によって起動されたタスクを含む)で使用できます。このロールは EC2インスタンスプロファイル とよく似ていますが、アクセス許可を、それらのタスクをホストしている基になるEC2インスタンスではなく、個々のタスクに関連付けることができます。 ECSクラスター全体でいくつかの異なるアプリケーションを実行しており、必要な権限が異なる場合は、タスクIAMロールを使用して、クラスター内のすべてのEC2インスタンスに任意の権限の組み合わせを持たせるのではなく、各タスクに特定の権限を付与できます。アプリケーションが必要になります。
  • タスク実行ロール -このロールは AWS Fargate を使用する場合に必要であり、_ コンテナインスタンスIAMロール を置き換えます。これはFARGATE起動タイプ。このロールにより、AWS Fargateは Amazon ECR からコンテナーイメージをプルし、ログを Amazon CloudWatch Logs に転送できます。このロールは、(FargateとEC2の両方の起動タイプで) プライベートレジストリ認証 および AWS Secrets ManagerおよびAWS Systems Managerパラメーターストアからのシークレット を有効にするためにも使用されます。
26
Samuel Karp

@ samuel-karpのこの非常に優れた説明に加えて、今日、ECSサービスのカスタムtask_role_arnを組み合わせて従来のELBからALBに移行するときに問題が発生しました。

リンクTask IAM roleの後ろに記載されている指示に従いましたが、エラーは

役割を引き受け、指定されたtargetGroupArnを検証できません。渡されるECSサービスロールに適切な権限があることを確認してください。

事はサービスがロードバランサーでそれ自身を登録するようであるということです。プリンシパルをecs.amazonaws.comからに交換したときにのみ機能しました

"Principal": { "Service": "ecs-tasks.amazonaws.com" }

1
mana