AmazonECSInfrastructureRoleForGatewayHostSharedALB
Summary
Default policy for the Amazon ECS Infrastructure Role for Amazon ECS Service Gateway Services.
Permissions imported from the AWS Managed Policy Reference Guide; other sections pending editorial review.
Identity
- ARN
arn:aws:iam::aws:policy/AmazonECSInfrastructureRoleForGatewayHostSharedALB- Default version
- v2
- Created
- Last edited
- Services
- acm, ec2, elasticloadbalancing, iam, wafv2
Control-plane actions (49)
By access level: 6 List, 8 Read, 3 Tagging, 32 Write.
| Service | Granted | Access levels and limits | Granted by |
|---|---|---|---|
| Certificate Manager | 4 of 42 | 1 Read, 1 Tagging, 2 Write; 4 restricted, 3 conditional | acm:AddTagsToCertificate, acm:DeleteCertificate, acm:DescribeCertificate, acm:RequestCertificate |
| EC2 | 12 of 834 | 5 List, 1 Tagging, 6 Write; 7 restricted, 6 conditional | ec2:AuthorizeSecurityGroupEgress, ec2:AuthorizeSecurityGroupIngress, ec2:CreateSecurityGroup, ec2:CreateTags, ec2:DeleteSecurityGroup, ec2:DescribeRouteTables, ec2:DescribeSecurityGroupRules, ec2:DescribeSecurityGroups, ec2:DescribeSubnets, ec2:DescribeVpcs, ec2:RevokeSecurityGroupEgress, ec2:RevokeSecurityGroupIngress |
| ELB | 28 of 77 | 1 List, 5 Read, 1 Tagging, 21 Write; 23 restricted, 19 conditional | elasticloadbalancing:AddListenerCertificates, elasticloadbalancing:AddTags, elasticloadbalancing:CreateListener, elasticloadbalancing:CreateLoadBalancer, elasticloadbalancing:CreateRule, elasticloadbalancing:CreateTargetGroup, elasticloadbalancing:CreateWebACLAssociation, elasticloadbalancing:DeleteListener, elasticloadbalancing:DeleteLoadBalancer, elasticloadbalancing:DeleteRule, elasticloadbalancing:DeleteTargetGroup, elasticloadbalancing:DeleteWebACLAssociation and 16 more |
| IAM | 1 of 190 | 1 Write; 1 restricted, 1 conditional | iam:CreateServiceLinkedRole |
| WAF V2 | 4 of 64 | 2 Read, 2 Write; 4 restricted, 0 conditional | wafv2:AssociateWebACL, wafv2:DisassociateWebACL, wafv2:GetWebACL, wafv2:GetWebACLForResource |
Certificate Manager: 4 actions
- acm:AddTagsToCertificate (Tagging)
- acm:DeleteCertificate (Write)
- acm:DescribeCertificate (Read)
- acm:RequestCertificate (Write)
EC2: 12 actions
- ec2:AuthorizeSecurityGroupEgress (Write)
- ec2:AuthorizeSecurityGroupIngress (Write)
- ec2:CreateSecurityGroup (Write)
- ec2:CreateTags (Tagging)
- ec2:DeleteSecurityGroup (Write)
- ec2:DescribeRouteTables (List)
- ec2:DescribeSecurityGroupRules (List)
- ec2:DescribeSecurityGroups (List)
- ec2:DescribeSubnets (List)
- ec2:DescribeVpcs (List)
- ec2:RevokeSecurityGroupEgress (Write)
- ec2:RevokeSecurityGroupIngress (Write)
ELB: 28 actions
- elasticloadbalancing:AddListenerCertificates (Write)
- elasticloadbalancing:AddTags (Tagging)
- elasticloadbalancing:CreateListener (Write)
- elasticloadbalancing:CreateLoadBalancer (Write)
- elasticloadbalancing:CreateRule (Write)
- elasticloadbalancing:CreateTargetGroup (Write)
- elasticloadbalancing:CreateWebACLAssociation (Write)
- elasticloadbalancing:DeleteListener (Write)
- elasticloadbalancing:DeleteLoadBalancer (Write)
- elasticloadbalancing:DeleteRule (Write)
- elasticloadbalancing:DeleteTargetGroup (Write)
- elasticloadbalancing:DeleteWebACLAssociation (Write)
- elasticloadbalancing:DeregisterTargets (Write)
- elasticloadbalancing:DescribeListeners (Read)
- elasticloadbalancing:DescribeLoadBalancers (List)
- elasticloadbalancing:DescribeRules (Read)
- elasticloadbalancing:DescribeTargetGroups (Read)
- elasticloadbalancing:DescribeTargetHealth (Read)
- elasticloadbalancing:GetLoadBalancerWebACL (Read)
- elasticloadbalancing:ModifyListener (Write)
- elasticloadbalancing:ModifyLoadBalancerAttributes (Write)
- elasticloadbalancing:ModifyRule (Write)
- elasticloadbalancing:ModifyTargetGroupAttributes (Write)
- elasticloadbalancing:RegisterTargets (Write)
- elasticloadbalancing:RemoveListenerCertificates (Write)
- elasticloadbalancing:SetRulePriorities (Write)
- elasticloadbalancing:SetSecurityGroups (Write)
- elasticloadbalancing:SetWebAcl (Write)
IAM: 1 actions
- iam:CreateServiceLinkedRole (Write)
WAF V2: 4 actions
- wafv2:AssociateWebACL (Write)
- wafv2:DisassociateWebACL (Write)
- wafv2:GetWebACL (Read)
- wafv2:GetWebACLForResource (Read)
Data-plane actions (0)
By access level: none.
This policy grants no actions in this plane.
Excluded and conditional actions
No patterns are excluded by NotAction or Deny statements.
Resource scope and attachment
Resource scope across granted actions: mixed.
Can be attached: Yes, to users, groups and roles.
Why this tier
- Grants 35 write, tagging or permissions-management actions, short of full control of any service.
Guidance
Pending editorial review. The permission data on this page comes straight from AWS; this section will be filled in once a reviewed guide exists.
Related policies
Same service
- AdministratorAccess-AWSElasticBeanstalk
- AIDevOpsReleaseManagementVPCPolicy
- AmazonAppStreamServiceAccess
- AmazonBioDiscoveryServiceLinkedRolePolicy
- AmazonDataZoneEnvironmentRolePermissionsBoundary
- AmazonDataZoneProjectDeploymentPermissionsBoundary
- AmazonDataZoneProjectRolePermissionsBoundary
- AmazonDataZoneSageMakerProvisioningRolePolicy
Same domain
- AmazonAPIGatewayAdministrator
- AmazonAPIGatewayInvokeFullAccess
- AmazonApplicationRecoveryControllerRegionSwitchPlanExecutionPolicy
- AmazonECSInfrastructureRoleforExpressGatewayServices
- AmazonECSInfrastructureRolePolicyForLoadBalancers
- AmazonECSInfrastructureRolePolicyForVpcLattice
- AmazonEKSClusterPolicy
- AmazonEKSLoadBalancingPolicy
Frequently asked questions
Pending editorial review. The permission data on this page comes straight from AWS; this section will be filled in once a reviewed guide exists.
Policy JSON
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ServiceLinkedRoleCreateOperations",
"Effect": "Allow",
"Action": "iam:CreateServiceLinkedRole",
"Resource": "arn:aws:iam::*:role/aws-service-role/elasticloadbalancing.amazonaws.com/*",
"Condition": {
"StringEquals": {
"iam:AWSServiceName": "elasticloadbalancing.amazonaws.com"
}
}
},
{
"Sid": "ELBOperations",
"Effect": "Allow",
"Action": [
"elasticloadbalancing:CreateListener",
"elasticloadbalancing:CreateLoadBalancer",
"elasticloadbalancing:CreateRule",
"elasticloadbalancing:CreateTargetGroup",
"elasticloadbalancing:ModifyTargetGroupAttributes",
"elasticloadbalancing:ModifyListener",
"elasticloadbalancing:ModifyLoadBalancerAttributes",
"elasticloadbalancing:ModifyRule",
"elasticloadbalancing:SetRulePriorities",
"elasticloadbalancing:AddListenerCertificates",
"elasticloadbalancing:RemoveListenerCertificates",
"elasticloadbalancing:RegisterTargets",
"elasticloadbalancing:DeregisterTargets",
"elasticloadbalancing:DeleteTargetGroup",
"elasticloadbalancing:DeleteLoadBalancer",
"elasticloadbalancing:DeleteRule",
"elasticloadbalancing:DeleteListener",
"elasticloadbalancing:SetSecurityGroups"
],
"Resource": [
"arn:aws:elasticloadbalancing:*:*:loadbalancer/app/*/*",
"arn:aws:elasticloadbalancing:*:*:listener/app/*/*/*",
"arn:aws:elasticloadbalancing:*:*:listener-rule/app/*/*/*/*",
"arn:aws:elasticloadbalancing:*:*:targetgroup/*/*"
],
"Condition": {
"StringEquals": {
"aws:ResourceTag/AmazonECSManaged": "true"
}
}
},
{
"Sid": "TagOnCreateELBResources",
"Effect": "Allow",
"Action": "elasticloadbalancing:AddTags",
"Resource": [
"arn:aws:elasticloadbalancing:*:*:loadbalancer/app/*/*",
"arn:aws:elasticloadbalancing:*:*:listener/app/*/*/*",
"arn:aws:elasticloadbalancing:*:*:listener-rule/app/*/*/*/*",
"arn:aws:elasticloadbalancing:*:*:targetgroup/*/*"
],
"Condition": {
"StringEquals": {
"elasticloadbalancing:CreateAction": [
"CreateLoadBalancer",
"CreateListener",
"CreateRule",
"CreateTargetGroup"
]
}
}
},
{
"Sid": "BlanketAllowCreateSecurityGroupsInVPCs",
"Effect": "Allow",
"Action": "ec2:CreateSecurityGroup",
"Resource": "arn:aws:ec2:*:*:vpc/*"
},
{
"Sid": "CreateSecurityGroupResourcesWithTags",
"Effect": "Allow",
"Action": [
"ec2:CreateSecurityGroup",
"ec2:AuthorizeSecurityGroupEgress",
"ec2:AuthorizeSecurityGroupIngress"
],
"Resource": [
"arn:aws:ec2:*:*:security-group/*",
"arn:aws:ec2:*:*:security-group-rule/*"
],
"Condition": {
"StringEquals": {
"aws:RequestTag/AmazonECSManaged": "true"
}
}
},
{
"Sid": "ModifySecurityGroupOperations",
"Effect": "Allow",
"Action": [
"ec2:AuthorizeSecurityGroupEgress",
"ec2:AuthorizeSecurityGroupIngress",
"ec2:DeleteSecurityGroup",
"ec2:RevokeSecurityGroupEgress",
"ec2:RevokeSecurityGroupIngress"
],
"Resource": [
"arn:aws:ec2:*:*:security-group/*",
"arn:aws:ec2:*:*:vpc/*"
],
"Condition": {
"StringEquals": {
"aws:ResourceTag/AmazonECSManaged": "true"
}
}
},
{
"Sid": "TagOnCreateEC2Resources",
"Effect": "Allow",
"Action": "ec2:CreateTags",
"Resource": [
"arn:aws:ec2:*:*:security-group/*",
"arn:aws:ec2:*:*:security-group-rule/*"
],
"Condition": {
"StringEquals": {
"ec2:CreateAction": [
"CreateSecurityGroup",
"AuthorizeSecurityGroupIngress",
"AuthorizeSecurityGroupEgress"
]
}
}
},
{
"Sid": "CertificateOperations",
"Effect": "Allow",
"Action": [
"acm:AddTagsToCertificate",
"acm:DeleteCertificate"
],
"Resource": "arn:aws:acm:*:*:certificate/*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/AmazonECSManaged": "true"
}
}
},
{
"Sid": "CertificateCreateOperations",
"Effect": "Allow",
"Action": [
"acm:RequestCertificate"
],
"Resource": "arn:aws:acm:*:*:certificate/*",
"Condition": {
"StringEquals": {
"aws:RequestTag/AmazonECSManaged": "true"
}
}
},
{
"Sid": "CertificateReadOperations",
"Effect": "Allow",
"Action": "acm:DescribeCertificate",
"Resource": "arn:aws:acm:*:*:certificate/*"
},
{
"Sid": "WAFAssociationOnALBs",
"Effect": "Allow",
"Action": [
"wafv2:AssociateWebACL",
"wafv2:DisassociateWebACL"
],
"Resource": "arn:aws:wafv2:*:*:regional/webacl/*/*"
},
{
"Sid": "ELBSetWebACLOnALBs",
"Effect": "Allow",
"Action": [
"elasticloadbalancing:CreateWebACLAssociation",
"elasticloadbalancing:DeleteWebACLAssociation",
"elasticloadbalancing:SetWebACL"
],
"Resource": "arn:aws:elasticloadbalancing:*:*:loadbalancer/app/*/*"
},
{
"Sid": "WAFReadOperations",
"Effect": "Allow",
"Action": [
"wafv2:GetWebACL",
"wafv2:GetWebACLForResource"
],
"Resource": "arn:aws:wafv2:*:*:regional/webacl/*/*"
},
{
"Sid": "ELBGetWebACLOnALBs",
"Effect": "Allow",
"Action": "elasticloadbalancing:GetLoadBalancerWebACL",
"Resource": "arn:aws:elasticloadbalancing:*:*:loadbalancer/app/*/*"
},
{
"Sid": "ELBReadOperations",
"Effect": "Allow",
"Action": [
"elasticloadbalancing:DescribeLoadBalancers",
"elasticloadbalancing:DescribeTargetGroups",
"elasticloadbalancing:DescribeTargetHealth",
"elasticloadbalancing:DescribeListeners",
"elasticloadbalancing:DescribeRules"
],
"Resource": "*"
},
{
"Sid": "VPCReadOperations",
"Effect": "Allow",
"Action": [
"ec2:DescribeSecurityGroups",
"ec2:DescribeSecurityGroupRules",
"ec2:DescribeSubnets",
"ec2:DescribeRouteTables",
"ec2:DescribeVpcs"
],
"Resource": "*"
}
]
}
Version history
Current version v2, edited by AWS on 2026-11-09. Version history is recorded from 2026-11-11. Earlier versions are in the IAM console under Policy versions.
Attach snippets
AWS CLI
aws iam attach-role-policy --role-name ROLE_NAME --policy-arn arn:aws:iam::aws:policy/AmazonECSInfrastructureRoleForGatewayHostSharedALB
aws iam attach-user-policy --user-name USER_NAME --policy-arn arn:aws:iam::aws:policy/AmazonECSInfrastructureRoleForGatewayHostSharedALB
aws iam attach-group-policy --group-name GROUP_NAME --policy-arn arn:aws:iam::aws:policy/AmazonECSInfrastructureRoleForGatewayHostSharedALBCloudFormation
Resources:
ExampleRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument: {} # replace with your trust policy
ManagedPolicyArns:
- arn:aws:iam::aws:policy/AmazonECSInfrastructureRoleForGatewayHostSharedALBTerraform
resource "aws_iam_role_policy_attachment" "amazonecsinfrastructureroleforgatewayhostsharedalb" {
role = aws_iam_role.example.name
policy_arn = "arn:aws:iam::aws:policy/AmazonECSInfrastructureRoleForGatewayHostSharedALB"
}CDK (TypeScript)
role.addManagedPolicy(
iam.ManagedPolicy.fromAwsManagedPolicyName("AmazonECSInfrastructureRoleForGatewayHostSharedALB"),
);Sources
Pending editorial review. No editorial sources are listed yet.