AmazonEKSLoadBalancingPolicy

Last Modified

Aug 21, 2026

August 21, 2026 at 12:03 AM UTC

Version

v10

Total Versions

8

Created

Aug 20, 2026

Actions

59

Risk

no risk signal

Read from this policy document alone: trust policies, boundaries and SCPs in your account still decide what actually succeeds. How this is assessed

IAM Access Analyzer (1)

  • Suggestion / ALLOW_WITH_UNSUPPORTED_TAG_CONDITION_KEY_FOR_SERVICE

    Using the effect Allow with the condition key aws:ResourceTag/eks:eks-cluster-name and actions for services with the following prefixes does not affect the policy: elasticloadbalancing. The actions for the listed service are not allowed by this statement. We recommend that you move these actions to a different statement without this condition key. AWS docs

Policy Document

View on GitHub
{
  "PolicyVersion": {
    "Document": {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "elasticloadbalancing:CreateLoadBalancer",
            "elasticloadbalancing:CreateTargetGroup",
            "elasticloadbalancing:CreateListener",
            "elasticloadbalancing:CreateRule",
            "ec2:CreateSecurityGroup"
          ],
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}"
            },
            "ForAllValues:StringEquals": {
              "aws:TagKeys": [
                "eks:eks-cluster-name",
                "ingress.eks.amazonaws.com/stack",
                "ingress.eks.amazonaws.com/resource",
                "service.eks.amazonaws.com/stack",
                "service.eks.amazonaws.com/resource",
                "gateway.eks.amazonaws.com.alb/stack",
                "gateway.eks.amazonaws.com.alb/resource",
                "gateway.eks.amazonaws.com.nlb/stack",
                "gateway.eks.amazonaws.com.nlb/resource"
              ]
            }
          }
        },
        {
          "Effect": "Allow",
          "Action": [
            "ec2:CreateSecurityGroup"
          ],
          "Resource": "arn:aws:ec2:*:*:vpc/*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "elasticloadbalancing:RegisterTargets"
          ],
          "Resource": "arn:aws:elasticloadbalancing:*:*:targetgroup/*/*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "ec2:AuthorizeSecurityGroupIngress"
          ],
          "Resource": "arn:aws:ec2:*:*:security-group-rule/*",
          "Condition": {
            "StringEquals": {
              "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}"
            }
          }
        },
        {
          "Effect": "Allow",
          "Action": [
            "ec2:AuthorizeSecurityGroupIngress",
            "ec2:RevokeSecurityGroupIngress"
          ],
          "Resource": "arn:aws:ec2:*:*:security-group/*",
          "Condition": {
            "StringLike": {
              "aws:ResourceTag/Name": "eks-cluster-sg*"
            }
          }
        },
        {
          "Effect": "Allow",
          "Action": [
            "ec2:AuthorizeSecurityGroupIngress",
            "ec2:RevokeSecurityGroupIngress"
          ],
          "Resource": "arn:aws:ec2:*:*:security-group/*",
          "Condition": {
            "StringEquals": {
              "aws:ResourceTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}"
            }
          }
        },
        {
          "Effect": "Allow",
          "Action": [
            "elasticloadbalancing:AddTags"
          ],
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "elasticloadbalancing:CreateAction": [
                "CreateLoadBalancer",
                "CreateTargetGroup",
                "CreateListener",
                "CreateRule"
              ]
            }
          }
        },
        {
          "Effect": "Allow",
          "Action": [
            "ec2:CreateTags"
          ],
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "ec2:CreateAction": [
                "CreateSecurityGroup",
                "AuthorizeSecurityGroupIngress"
              ]
            }
          }
        },
        {
          "Effect": "Allow",
          "Action": [
            "elasticloadbalancing:ModifyLoadBalancerAttributes",
            "elasticloadbalancing:SetIpAddressType",
            "elasticloadbalancing:SetSecurityGroups",
            "elasticloadbalancing:SetSubnets",
            "elasticloadbalancing:ModifyTargetGroup",
            "elasticloadbalancing:ModifyTargetGroupAttributes",
            "elasticloadbalancing:ModifyListener",
            "elasticloadbalancing:AddListenerCertificates",
            "elasticloadbalancing:ModifyListenerAttributes",
            "elasticloadbalancing:RemoveListenerCertificates",
            "elasticloadbalancing:ModifyRule",
            "elasticloadbalancing:ModifyIpPools",
            "elasticloadbalancing:ModifyCapacityReservation",
            "elasticloadbalancing:DescribeLoadBalancers"
          ],
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "aws:ResourceTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}"
            }
          }
        },
        {
          "Effect": "Allow",
          "Action": [
            "wafv2:AssociateWebACL",
            "wafv2:DisassociateWebACL"
          ],
          "Resource": [
            "arn:aws:wafv2:*:*:*/webacl/*/*",
            "arn:aws:elasticloadbalancing:*:*:loadbalancer/app/*/*"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "shield:CreateProtection",
            "shield:DeleteProtection"
          ],
          "Resource": "*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "shield:TagResource"
          ],
          "Resource": "arn:aws:shield::*:protection/*",
          "Condition": {
            "StringEquals": {
              "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}"
            },
            "ForAllValues:StringEquals": {
              "aws:TagKeys": [
                "eks:eks-cluster-name",
                "ingress.eks.amazonaws.com/stack",
                "ingress.eks.amazonaws.com/resource",
                "service.eks.amazonaws.com/stack",
                "service.eks.amazonaws.com/resource",
                "gateway.eks.amazonaws.com.alb/stack",
                "gateway.eks.amazonaws.com.alb/resource",
                "gateway.eks.amazonaws.com.nlb/stack",
                "gateway.eks.amazonaws.com.nlb/resource"
              ]
            }
          }
        },
        {
          "Effect": "Allow",
          "Action": [
            "cognito-idp:DescribeUserPoolClient",
            "acm:ListCertificates",
            "acm:DescribeCertificate",
            "wafv2:GetWebACL",
            "wafv2:GetWebACLForResource",
            "wafv2:ListWebACLs",
            "elasticloadbalancing:SetWebAcl",
            "elasticloadbalancing:DescribeTargetGroups",
            "elasticloadbalancing:SetRulePriorities"
          ],
          "Resource": "*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "ec2:DescribeAccountAttributes",
            "ec2:DescribeAddresses",
            "ec2:DescribeInternetGateways",
            "ec2:DescribeSecurityGroups",
            "ec2:DescribeSubnets",
            "ec2:DescribeVpcs",
            "ec2:DescribeVpcClassicLink",
            "ec2:DescribeInstances",
            "ec2:DescribeNetworkInterfaces",
            "ec2:DescribeClassicLinkInstances",
            "ec2:DescribeRouteTables",
            "ec2:DescribeCoipPools",
            "ec2:GetCoipPoolUsage",
            "ec2:GetSecurityGroupsForVpc",
            "ec2:DescribeVpcPeeringConnections",
            "ec2:DescribeIpamPools"
          ],
          "Resource": "*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "iam:CreateServiceLinkedRole"
          ],
          "Resource": "arn:aws:iam::*:role/aws-service-role/elasticloadbalancing.amazonaws.com/AWSServiceRoleForElasticLoadBalancing",
          "Condition": {
            "StringEquals": {
              "iam:AWSServiceName": "elasticloadbalancing.amazonaws.com"
            }
          }
        }
      ]
    },
    "VersionId": "v10",
    "IsDefaultVersion": true,
    "CreateDate": "2026-08-20T23:07:13+00:00"
  }
}

Version History (11 recorded)

Raw history
v10updated

1 action added

21d49cc
v9updated

1 action added

1efd57e
v8updated

1 action added

b8a929d
v7updated

1 action added

7a883a6
v6updated

scope changed, no action added or removed

632a4cd
v5updated

2 actions added

2445de9

AmazonEKSLoadBalancingPolicy - Policy Version v4

No recorded action delta - this version predates the change index. View the raw diff.

Mar 12, 2026

d752a1c

AmazonEKSLoadBalancingPolicy - Policy Version v4

No recorded action delta - this version predates the change index. View the raw diff.

Feb 12, 2026

0af4f36

AmazonEKSLoadBalancingPolicy - Policy Version v3

No recorded action delta - this version predates the change index. View the raw diff.

Feb 12, 2026

8ce888f

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

Jan 9, 2025

ed0fdfa

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

Oct 30, 2024

d7b3038