Amazon ECS インフラストラクチャ IAM ロール
Amazon ECS インフラストラクチャ IAM ロールを使用すると、Amazon ECS はユーザーに代わってクラスター内のインフラストラクチャリソースを管理できます。次の場合に使用します。
-
Amazon EBS ボリュームを Fargate または EC2 起動タイプの Amazon ECS タスクにアタッチできます。インフラストラクチャロールにより、Amazon ECS はタスクの Amazon EBS ボリュームを管理できます。
-
Amazon ECS Service Connect サービス間のトラフィックを暗号化するには、Transport Layer Security (TLS) を使用します。
Amazon ECS がこの役割を引き受け、ユーザーに代わってアクションを実行すると、イベントが AWS CloudTrail に表示されます。Amazon ECS がそのロールを使用してタスクにアタッチされた Amazon EBS ボリュームを管理する場合、CloudTrail ログ roleSessionName
は ECSTaskVolumesForEBS
となります。ロールを使用して Service Connect サービス間のトラフィックを暗号化する場合、CloudTrail ログ roleSessionName
は ECSServiceConnectForTLS
になります。この名前を使用して、[ユーザー名]でフィルタリングすることで CloudTrail コンソールでイベントを検索できます。
Amazon ECS では、ボリュームのアタッチメントと TLS に必要なアクセス許可を含むマネージドポリシーを提供しています。詳細については、「AWS マネージドポリシーリファレンスガイド」の「AmazonECSInfrastructureRolePolicyForVolumes」および「AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity」を参照してください。
Amazon ECS インフラストラクチャロールを作成する
すべての [ユーザー入力]
は、お客様の情報で置き換えてください。
-
IAM ロールに使用する信頼ポリシーが含まれている
ecs-infrastructure-trust-policy.json
という名前のファイルを作成します。ファイルには次の内容が含まれます。{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccessToECSForInfrastructureManagement", "Effect": "Allow", "Principal": { "Service": "ecs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
前のステップで作成した信頼ポリシーを使用して、
ecsInfrastructureRole
という名前のロールを作成するには、次の AWS CLI コマンドを使用します。aws iam create-role \ --role-name
ecsInfrastructureRole
\ --assume-role-policy-document file://ecs-infrastructure-trust-policy.json
-
ユースケースに応じて、AWS マネージド
AmazonECSInfrastructureRolePolicyForVolumes
ポリシーまたはAmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity
ポリシーをecsInfrastructureRole
ロールにアタッチします。aws iam attach-role-policy \ --role-name
ecsInfrastructureRole
\ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSInfrastructureRolePolicyForVolumesaws iam attach-role-policy \ --role-name
ecsInfrastructureRole
\ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity
IAM コンソールの[カスタム信頼ポリシー]ワークフローを使用してロールを作成することもできます。詳細については、IAM ユーザーガイドの「カスタム信頼ポリシーを使用してロールを作成する (コンソール)」を参照してください。
重要
Amazon ECS がタスクにアタッチされた Amazon EBS ボリュームを管理するために ECS インフラストラクチャロールを使用している場合は、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
を置き換えます。
{ "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 ユーザーの権限の変更」を参照してください。