@shinyaz

ECS の NLB 用インフラロールポリシーの ARN に service-role/ プレフィックスはない

約1分

ECS の NLB 用インフラロールに AmazonECSInfrastructureRolePolicyForLoadBalancers をアタッチしようとして、他の ECS ポリシーと同じノリで書いたら失敗した。

Terminal
# ❌ これは失敗する
aws iam attach-role-policy --role-name myRole \
  --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSInfrastructureRolePolicyForLoadBalancers
Output
An error occurred (NoSuchEntity) when calling the AttachRolePolicy operation: Policy ... does not exist or is not attachable.

正しい ARN は service-role/ プレフィックスなし。

Terminal
# ✅ こちらが正しい
aws iam attach-role-policy --role-name myRole \
  --policy-arn arn:aws:iam::aws:policy/AmazonECSInfrastructureRolePolicyForLoadBalancers

AmazonECSTaskExecutionRolePolicyarn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy なので、同じパターンだと思い込みやすい。さらに厄介なことに、同じ AmazonECSInfrastructureRolePolicyFor* シリーズでも ForVolumesForServiceConnectTransportLayerSecurityservice-role/ 付きで、ForLoadBalancersForVpcLattice にはない。aws iam list-policies --scope AWS --query "Policies[?starts_with(PolicyName,'AmazonECS')].[PolicyName,Arn]" で確認するのが確実である。

共有する

田原 慎也

田原 慎也

ソリューションアーキテクト @ AWS

AWS ソリューションアーキテクトとして金融業界のお客様を中心に技術支援をしており、クラウドアーキテクチャや AI/ML に関する学びをこのサイトで発信しています。このサイトの内容は個人の見解であり、所属企業の公式な意見や見解を代表するものではありません。