AWSServiceRoleForAmazonEKSNodegroup

Last Modified

Mar 12, 2026

March 12, 2026 at 09:26 PM UTC

Version

v11

Total Versions

12

Created

Feb 17, 2026

Actions

54

Risk

Medium

The same capabilities in a scoped form, resource policy writes, reads across all data, or full access to a whole service. Read from this policy document alone: trust policies, boundaries and SCPs in your account still decide what actually succeeds. How this is assessed

  • Medium

    Can launch resources that run as a more privileged role

    Grants the actions of 1 documented escalation path, but only on named resources or under a condition. Review that scope before trusting it.

    • ec2-001iam:PassRole + ec2:RunInstancesscoped
      • iam:PassRole: condition iam:PassedToService

    Use with caution: Check which roles, users or policies fall inside the scope shown above. Within it the escalation works as documented, so keep privileged principals out of it.

  • Medium

    Flagged by AWS IAM Access Analyzer

    AWS's own policy validation raises 1 security warning: PASS_ROLE_WITH_STAR_IN_RESOURCE.

    • Using the iam:PassRole action with wildcards (*) in the resource can be overly permissive because it allows iam:PassRole permissions on multiple resources. We recommend that you specify resource ARNs or add the iam:PassedToService condition key to your statement.

    Use with caution: Read AWS's finding and the documentation it links to.

IAM Access Analyzer (5)

  • Suggestion / EQUIVALENT_TO_NULL_FALSE

    We recommend replacing the key ec2:ResourceTag/eks in the condition block of StringLike with {ec2:ResourceTag/eks: false} to ensure better enforcement of the condition. AWS docs

  • Suggestion / EQUIVALENT_TO_NULL_FALSE

    We recommend replacing the key ec2:ResourceTag/eks:nodegroup-name in the condition block of StringLike with {ec2:ResourceTag/eks:nodegroup-name: false} to ensure better enforcement of the condition. AWS docs

  • Suggestion / EQUIVALENT_TO_NULL_FALSE

    We recommend replacing the key ec2:ResourceTag/eks:nodegroup-name in the condition block of StringLike with {ec2:ResourceTag/eks:nodegroup-name: false} to ensure better enforcement of the condition. AWS docs

  • Security warning / PASS_ROLE_WITH_STAR_IN_RESOURCE

    Using the iam:PassRole action with wildcards (*) in the resource can be overly permissive because it allows iam:PassRole permissions on multiple resources. We recommend that you specify resource ARNs or add the iam:PassedToService condition key to your statement. AWS docs

  • Suggestion / EQUIVALENT_TO_NULL_FALSE

    We recommend replacing the key ec2:ResourceTag/eks:nodegroup-name in the condition block of StringLike with {ec2:ResourceTag/eks:nodegroup-name: false} to ensure better enforcement of the condition. AWS docs

Policy Document

View on GitHub
{
  "PolicyVersion": {
    "Document": {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "SharedSecurityGroupRelatedPermissions",
          "Effect": "Allow",
          "Action": [
            "ec2:RevokeSecurityGroupIngress",
            "ec2:AuthorizeSecurityGroupEgress",
            "ec2:AuthorizeSecurityGroupIngress",
            "ec2:DescribeInstances",
            "ec2:RevokeSecurityGroupEgress",
            "ec2:DeleteSecurityGroup"
          ],
          "Resource": "*",
          "Condition": {
            "StringLike": {
              "ec2:ResourceTag/eks": "*"
            }
          }
        },
        {
          "Sid": "EKSCreatedSecurityGroupRelatedPermissions",
          "Effect": "Allow",
          "Action": [
            "ec2:RevokeSecurityGroupIngress",
            "ec2:AuthorizeSecurityGroupEgress",
            "ec2:AuthorizeSecurityGroupIngress",
            "ec2:DescribeInstances",
            "ec2:RevokeSecurityGroupEgress",
            "ec2:DeleteSecurityGroup"
          ],
          "Resource": "*",
          "Condition": {
            "StringLike": {
              "ec2:ResourceTag/eks:nodegroup-name": "*"
            }
          }
        },
        {
          "Sid": "LaunchTemplateRelatedPermissions",
          "Effect": "Allow",
          "Action": [
            "ec2:DeleteLaunchTemplate",
            "ec2:CreateLaunchTemplateVersion"
          ],
          "Resource": "*",
          "Condition": {
            "StringLike": {
              "ec2:ResourceTag/eks:nodegroup-name": "*"
            }
          }
        },
        {
          "Sid": "AutoscalingRelatedPermissions",
          "Effect": "Allow",
          "Action": [
            "autoscaling:UpdateAutoScalingGroup",
            "autoscaling:DeleteAutoScalingGroup",
            "autoscaling:TerminateInstanceInAutoScalingGroup",
            "autoscaling:CompleteLifecycleAction",
            "autoscaling:PutLifecycleHook",
            "autoscaling:PutNotificationConfiguration",
            "autoscaling:EnableMetricsCollection",
            "autoscaling:PutScheduledUpdateGroupAction",
            "autoscaling:ResumeProcesses",
            "autoscaling:SuspendProcesses",
            "autoscaling:PutWarmPool",
            "autoscaling:DeleteWarmPool"
          ],
          "Resource": "arn:aws:autoscaling:*:*:*:autoScalingGroupName/eks-*"
        },
        {
          "Sid": "AllowAutoscalingToCreateSLR",
          "Effect": "Allow",
          "Condition": {
            "StringEquals": {
              "iam:AWSServiceName": "autoscaling.amazonaws.com"
            }
          },
          "Action": "iam:CreateServiceLinkedRole",
          "Resource": "*"
        },
        {
          "Sid": "AllowASGCreationByEKS",
          "Effect": "Allow",
          "Action": [
            "autoscaling:CreateOrUpdateTags",
            "autoscaling:CreateAutoScalingGroup"
          ],
          "Resource": "*",
          "Condition": {
            "ForAnyValue:StringEquals": {
              "aws:TagKeys": [
                "eks",
                "eks:cluster-name",
                "eks:nodegroup-name"
              ]
            }
          }
        },
        {
          "Sid": "AllowPassRoleToAutoscaling",
          "Effect": "Allow",
          "Action": "iam:PassRole",
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "iam:PassedToService": "autoscaling.amazonaws.com"
            }
          }
        },
        {
          "Sid": "AllowPassRoleToEC2",
          "Effect": "Allow",
          "Action": "iam:PassRole",
          "Resource": "*",
          "Condition": {
            "StringEqualsIfExists": {
              "iam:PassedToService": [
                "ec2.amazonaws.com"
              ]
            }
          }
        },
        {
          "Sid": "PermissionsToManageResourcesForNodegroups",
          "Effect": "Allow",
          "Action": [
            "iam:GetRole",
            "ec2:CreateLaunchTemplate",
            "ec2:DescribeInstances",
            "iam:GetInstanceProfile",
            "ec2:DescribeLaunchTemplates",
            "autoscaling:DescribeAutoScalingGroups",
            "ec2:CreateSecurityGroup",
            "ec2:DescribeLaunchTemplateVersions",
            "ec2:RunInstances",
            "ec2:DescribeSecurityGroups",
            "ec2:GetConsoleOutput",
            "ec2:DescribeRouteTables",
            "ec2:DescribeSubnets",
            "ec2:DescribeCapacityReservations",
            "autoscaling:DescribeWarmPool"
          ],
          "Resource": "*"
        },
        {
          "Sid": "PermissionsToCreateAndManageInstanceProfiles",
          "Effect": "Allow",
          "Action": [
            "iam:CreateInstanceProfile",
            "iam:DeleteInstanceProfile",
            "iam:RemoveRoleFromInstanceProfile",
            "iam:AddRoleToInstanceProfile"
          ],
          "Resource": "arn:aws:iam::*:instance-profile/eks-*"
        },
        {
          "Sid": "PermissionsToDeleteEKSAndKubernetesTags",
          "Effect": "Allow",
          "Action": [
            "ec2:DeleteTags"
          ],
          "Resource": "*",
          "Condition": {
            "ForAnyValue:StringLike": {
              "aws:TagKeys": [
                "eks",
                "eks:cluster-name",
                "eks:nodegroup-name",
                "kubernetes.io/cluster/*"
              ]
            }
          }
        },
        {
          "Sid": "PermissionsForManagedNodegroupsAutoRepair",
          "Effect": "Allow",
          "Action": [
            "ec2:RebootInstances"
          ],
          "Resource": "*",
          "Condition": {
            "StringLike": {
              "ec2:ResourceTag/eks:nodegroup-name": "*"
            }
          }
        },
        {
          "Sid": "PermissionsToCreateEKSAndKubernetesTags",
          "Effect": "Allow",
          "Action": [
            "ec2:CreateTags"
          ],
          "Resource": [
            "arn:*:ec2:*:*:security-group/*",
            "arn:*:ec2:*:*:launch-template/*"
          ],
          "Condition": {
            "ForAnyValue:StringLike": {
              "aws:TagKeys": [
                "eks",
                "eks:cluster-name",
                "eks:nodegroup-name",
                "kubernetes.io/cluster/*"
              ]
            }
          }
        },
        {
          "Sid": "AllowTaggingEC2ResourcesOnlyDuringInstanceCreation",
          "Effect": "Allow",
          "Action": [
            "ec2:CreateTags"
          ],
          "Resource": [
            "arn:*:ec2:*:*:instance/*",
            "arn:*:ec2:*:*:volume/*",
            "arn:*:ec2:*:*:network-interface/*"
          ],
          "Condition": {
            "StringEquals": {
              "ec2:CreateAction": [
                "RunInstances"
              ]
            },
            "ForAnyValue:StringLike": {
              "aws:TagKeys": [
                "eks",
                "eks:cluster-name",
                "eks:nodegroup-name",
                "kubernetes.io/cluster/*"
              ]
            }
          }
        }
      ]
    },
    "VersionId": "v11",
    "IsDefaultVersion": true,
    "CreateDate": "2026-02-17T18:42:07+00:00"
  }
}

Version History (15 recorded)

Raw history

AWSServiceRoleForAmazonEKSNodegroup - Policy Version v11

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

Mar 12, 2026

32b2294

AWSServiceRoleForAmazonEKSNodegroup - Policy Version v11

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

Feb 17, 2026

1d7d4e8

Update detected

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

Nov 21, 2024

d9449b2

Update detected

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

Sep 18, 2024

aafbae9

Update detected

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

Aug 21, 2024

5c67b08

Update detected

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

Jun 27, 2024

7688ea5

Update detected

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

May 13, 2024

1b36617

Update detected

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

Jan 4, 2024

c7fe8de

Update detected

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

Jan 14, 2022

aaea2f9

Update detected

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

Aug 31, 2020

46a4c5e

Update detected

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

Mar 7, 2020

8a5c5c9

Update detected

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

Feb 22, 2020

70c75ea

Update detected

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

Feb 21, 2020

95ff290

Update detected

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

Jan 17, 2020

be2634b

Update detected

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

Nov 7, 2019

ecedde4