View a markdown version of this page

Amazon ECS インフラストラクチャ IAM ロール - Amazon Elastic Container Service

Amazon ECS インフラストラクチャ IAM ロール

Amazon ECS インフラストラクチャ IAM ロールを使用すると、Amazon ECS はユーザーに代わってクラスター内のインフラストラクチャリソースを管理できます。次の場合に使用します。

  • Amazon EBS ボリュームを Fargate または EC2 起動タイプの Amazon ECS タスクにアタッチできます。インフラストラクチャロールにより、Amazon ECS はタスクの Amazon EBS ボリュームを管理できます。

    AmazonECSInfrastructureRolePolicyForVolumes 管理ポリシーを使用できます。

  • Amazon ECS Service Connect サービス間のトラフィックを暗号化するには、Transport Layer Security (TLS) を使用します。

    AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity 管理ポリシーを使用できます。

  • Amazon VPC Lattice ターゲットグループを作成する場合。

    AmazonECSInfrastructureRolePolicyForVpcLattice 管理ポリシーを使用できます。

  • Amazon ECS クラスターで Amazon ECS マネージドインスタンスを使用します。インフラストラクチャロールにより、Amazon ECS はマネージドインスタンスのライフサイクルを管理できます。

    AmazonECSInfrastructureRolePolicyForManagedInstances 管理ポリシーを使用できます。

  • Express Mode の使用を希望する場合。インフラストラクチャロールは、Amazon ECS が Express Mode サービスに必要なインフラストラクチャコンポーネント (ロードバランシング、セキュリティグループ、SSL 証明書、自動スケーリング設定など) のプロビジョニングと管理を行えるようにします。

    AmazonECSInfrastructureRoleforExpressGatewayServices 管理ポリシーを使用できます。

Amazon ECS がこの役割を引き受け、ユーザーに代わってアクションを実行すると、イベントが AWS CloudTrail に表示されます。Amazon ECS がそのロールを使用してタスクにアタッチされた Amazon EBS ボリュームを管理する場合、CloudTrail ログ roleSessionName は ECSTaskVolumesForEBS となります。ロールを使用して Service Connect サービス間のトラフィックを暗号化する場合、CloudTrail ログ roleSessionName は ECSServiceConnectForTLS になります。ロールを使用して VPC Lattice のターゲットグループを作成する場合、CloudTrail ログ roleSessionName は ECSNetworkingWithVPCLattice になります。ロールを使用して Amazon ECS マネージドインスタンスを管理する場合、CloudTrail ログ roleSessionName は ECSManagedInstancesForCompute になります。この名前を使用して、[ユーザー名]でフィルタリングすることで CloudTrail コンソールでイベントを検索できます。

Amazon ECS では、ボリュームのアタッチメント、TLS、VPC Lattice、マネージドインスタンスに必要なアクセス許可を含むマネージドポリシーを提供しています。詳細については、「AWS マネージドポリシーのリファレンスガイド」の「AmazonECSInfrastructureRolePolicyForVolumes」、「AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity」、「AmazonECSInfrastructureRolePolicyForVpcLattice」、「AmazonECSInfrastructureRolePolicyForManagedInstances」、および「AmazonECSInfrastructureRoleforExpressGatewayServices」を参照してください。

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. 前のステップで作成した信頼ポリシーを使用して、ecsInfrastructureRole という名前のロールを作成するには、次の AWS CLI コマンドを使用します。

    aws iam create-role \ --role-name ecsInfrastructureRole \ --assume-role-policy-document file://ecs-infrastructure-trust-policy.json
  3. ユースケースに応じて、マネージドポリシーを ecsInfrastructureRole ロールにアタッチします。

    • Amazon EBS ボリュームを Fargate または EC2 起動タイプの Amazon ECS タスクにアタッチするには、AmazonECSInfrastructureRolePolicyForVolumes マネージドポリシーをアタッチします。

    • Transport Layer Security (TLS) を使用して Amazon ECS Service Connect サービス間のトラフィックを暗号化するには、AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity マネージドポリシーをアタッチします。

    • Amazon VPC Lattice ターゲットグループを作成するには、AmazonECSInfrastructureRolePolicyForVpcLattice マネージドポリシーをアタッチします。

    • Amazon ECS クラスターで Amazon ECS マネージドインスタンスを使用するには、AmazonECSInfrastructureRolePolicyForManagedInstances マネージドポリシーをアタッチします。

    aws iam attach-role-policy \ --role-name ecsInfrastructureRole \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSInfrastructureRolePolicyForVolumes
    aws iam attach-role-policy \ --role-name ecsInfrastructureRole \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity
    aws iam attach-role-policy \ --role-name ecsInfrastructureRole \ --policy-arn arn:aws:iam::aws:policy/AmazonECSInfrastructureRolePolicyForManagedInstances

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

重要

Amazon ECS がタスクにアタッチされた Amazon EBS ボリュームを管理するためにインフラストラクチャロールを使用している場合は、Amazon EBS ボリュームを使用するタスクを停止する前に、次の点を確認してください。

  • ロールが削除されていません。

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

  • マネージドポリシー AmazonECSInfrastructureRolePolicyForVolumes は削除されていません。ロールのアクセス許可を変更する必要がある場合は、ボリュームを削除するために、少なくとも ec2:DetachVolume、ec2:DeleteVolume、ec2:DescribeVolumes を残してください。

Amazon EBS ボリュームがアタッチされたタスクを停止する前にロールを削除または変更すると、タスクが DEPROVISIONING で停止し、関連する Amazon EBS ボリュームは削除されません。Amazon ECS は、必要なアクセス許可が回復するまで、定期的に自動的に再試行してタスクを停止し、ボリュームを削除します。DescribeTasks API を使用して、タスクのボリュームアタッチ状態と関連するステータス理由を表示できます。

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

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

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

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

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