ロードバランサー用の Amazon ECS インフラストラクチャの IAM ロール - Amazon Elastic Container Service

ロードバランサー用の Amazon ECS インフラストラクチャの IAM ロール

ロードバランサー用 Amazon ECS インフラストラクチャの IAM ロールは、Amazon ECS がユーザーに代わって、クラスター内のロードバランサーリソースを管理できるようにするためのものであり、次の場合に使用します。

  • Amazon ECS でブルー/グリーンデプロイを使用したい場合。インフラストラクチャロールにより、Amazon ECS でデプロイのロードバランサーリソースを管理できるようになります。

  • デプロイ操作中に、Amazon ECS でターゲットグループやリスナーなどのロードバランサーリソースを作成、変更、または削除する必要がある場合。

Amazon ECS がこの役割を引き受け、ユーザーに代わってアクションを実行すると、イベントが AWS CloudTrail に表示されます。Amazon ECS がこのロールを使用してブルー/グリーンデプロイのロードバランサーリソースを管理する場合、CloudTrail ログ roleSessionNameは、ECSNetworkingWithELB または ecs-service-scheduler になります。この名前を使用して、[ユーザー名]でフィルタリングすることで CloudTrail コンソールでイベントを検索できます。

Amazon ECS は、ロードバランサー管理に必要となるアクセス許可を含む管理ポリシーを提供します。詳細については、「AWS マネージドポリシーリファレンスガイド」の「AmazonECSInfrastructureRolePolicyForLoadBalancers」を参照してください。

ロードバランサー用の Amazon ECS インフラストラクチャロールの作成

すべての [ユーザー入力] は、お客様の情報で置き換えてください。

  1. IAM ロールに使用する信頼ポリシーが含まれている ecs-infrastructure-trust-policy.json という名前のファイルを作成します。ファイルには次の内容が含まれます。

    JSON
    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccessToECSForInfrastructureManagement", "Effect": "Allow", "Principal": { "Service": "ecs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. 前のステップで作成した信頼ポリシーを使用して、ecsInfrastructureRoleForLoadBalancers という名前のロールを作成するには、次の AWS CLI コマンドを使用します。

    aws iam create-role \ --role-name ecsInfrastructureRoleForLoadBalancers \ --assume-role-policy-document file://ecs-infrastructure-trust-policy.json
  3. AWS 管理ポリシー AmazonECSInfrastructureRolePolicyForLoadBalancersecsInfrastructureRoleForLoadBalancers ロールにアタッチします。

    aws iam attach-role-policy \ --role-name ecsInfrastructureRoleForLoadBalancers \ --policy-arn arn:aws:iam::aws:policy/AmazonECSInfrastructureRolePolicyForLoadBalancers

IAM コンソールの[カスタム信頼ポリシー]ワークフローを使用してロールを作成することもできます。詳細については、IAM ユーザーガイドの「カスタム信頼ポリシーを使用してロールを作成する (コンソール)」を参照してください。

重要

Amazon ECS がブルー/グリーンデプロイのロードバランサーリソースを管理するためにインフラストラクチャロールを使用している場合は、ロールを削除または変更する前に以下の点を確認してください。

  • アクティブなデプロイの進行中に、ロールが削除されない。

  • ロールの信頼ポリシーは、Amazon ECS アクセス (ecs.amazonaws.com) を削除するように変更されていません。

  • アクティブなデプロイの進行中に、管理ポリシー AmazonECSInfrastructureRolePolicyForLoadBalancers が削除されない。

ブルー/グリーンデプロイ中にロールを削除または変更すると、デプロイが失敗し、サービスが不整合な状態になる可能性があります。

ファイルを作成したら、Amazon ECS にロールを渡すためのアクセス許可をユーザーに付与する必要があります。

インフラストラクチャロールを Amazon ECS に渡すためのアクセス許可

ロードバランサー用の ECS インフラストラクチャの IAM ロールを使用するには、そのロールを Amazon ECS に渡すためのユーザー権限を付与する必要があります。ユーザーに、次の iam:PassRole 権限をアタッチします。ecsInfrastructureRoleForLoadBalancers を作成したインフラストラクチャロールの名前に置き換えます。

JSON
{ "Version": "2012-10-17", "Statement": [ { "Action": "iam:PassRole", "Effect": "Allow", "Resource": ["arn:aws:iam::*:role/ecsInfrastructureRoleForLoadBalancers"], "Condition": { "StringEquals": {"iam:PassedToService": "ecs.amazonaws.com"} } } ] }

iam:Passrole およびユーザーの権限の更新について詳しくは、AWS Identity and Access Management ユーザーガイドの「AWS サービスにロールを渡すためのアクセス許可の付与」と「IAM ユーザーの権限の変更」を参照してください。