Skip to main content
IAM Policy Map

AmazonEKSServiceRolePolicy

OperatorService-linked roleActivePermissions reviewedShow on mapCompare

Summary

A Service-Linked Role required for Amazon EKS to call AWS services on your behalf.

Permissions imported from the AWS Managed Policy Reference Guide; other sections pending editorial review.

Identity

ARN
arn:aws:iam::aws:policy/aws-service-role/AmazonEKSServiceRolePolicy
Default version
v30
Created
Last edited
Services
cloudwatch, ec2, eks, elasticloadbalancing, events, iam, logs, pricing, route53, shield, tag

Control-plane actions (92)

By access level: 32 List, 1 Permissions management, 21 Read, 2 Tagging, 36 Write.

Control-plane actions by service
ServiceGrantedAccess levels and limitsGranted by
EC247 of 83427 List, 1 Permissions management, 2 Read, 2 Tagging, 15 Write; 12 restricted, 12 conditionalec2:AuthorizeSecurityGroupEgress, ec2:AuthorizeSecurityGroupIngress, ec2:CreateNetworkInterface, ec2:CreateNetworkInterfacePermission, ec2:CreateSecurityGroup, ec2:CreateTags, ec2:DeleteLaunchTemplate, ec2:DeleteNetworkInterface, ec2:DeleteSecurityGroup, ec2:DeleteSnapshot, ec2:DeleteTags, ec2:DeleteVolume and 35 more
EKS10 of 741 List, 2 Read, 7 Write; 9 restricted, 8 conditionaleks:ActivateCertificateAuthority, eks:AssociateAccessPolicy, eks:CreateAccessEntry, eks:CreateCertificateAuthority, eks:DeleteAccessEntry, eks:DeleteCertificateAuthority, eks:DescribeAccessEntry, eks:DescribeCluster, eks:DisassociateAccessPolicy, eks:ListAssociatedAccessPolicies
ELB18 of 771 List, 12 Read, 5 Write; 4 restricted, 4 conditionalelasticloadbalancing:DeleteListener, elasticloadbalancing:DeleteLoadBalancer, elasticloadbalancing:DeleteRule, elasticloadbalancing:DeleteTargetGroup, elasticloadbalancing:DeregisterTargets, elasticloadbalancing:DescribeCapacityReservation, elasticloadbalancing:DescribeListenerAttributes, elasticloadbalancing:DescribeListenerCertificates, elasticloadbalancing:DescribeListeners, elasticloadbalancing:DescribeLoadBalancerAttributes, elasticloadbalancing:DescribeLoadBalancers, elasticloadbalancing:DescribeRules and 6 more
EventBridge2 of 712 Write; 2 restricted, 1 conditionalevents:PutRule, events:PutTargets
IAM6 of 1902 List, 1 Read, 3 Write; 5 restricted, 0 conditionaliam:CreateInstanceProfile, iam:DeleteInstanceProfile, iam:GetInstanceProfile, iam:ListAttachedRolePolicies, iam:ListInstanceProfiles, iam:RemoveRoleFromInstanceProfile
CloudWatch Logs4 of 1331 List, 3 Write; 4 restricted, 0 conditionallogs:CreateLogGroup, logs:CreateLogStream, logs:DescribeLogStreams, logs:PutLogEvents
Price List1 of 51 Read; 0 restricted, 0 conditionalpricing:GetProducts
Route 531 of 711 Write; 1 restricted, 0 conditionalroute53:AssociateVPCWithHostedZone
Shield2 of 402 Read; 0 restricted, 0 conditionalshield:DescribeProtection, shield:GetSubscriptionState
Resource Group Tagging1 of 91 Read; 0 restricted, 0 conditionaltag:GetResources
EC2: 47 actions
  • ec2:AuthorizeSecurityGroupEgress (Write)
  • ec2:AuthorizeSecurityGroupIngress (Write)
  • ec2:CreateNetworkInterface (Write)
  • ec2:CreateNetworkInterfacePermission (Permissions management)
  • ec2:CreateSecurityGroup (Write)
  • ec2:CreateTags (Tagging)
  • ec2:DeleteLaunchTemplate (Write)
  • ec2:DeleteNetworkInterface (Write)
  • ec2:DeleteSecurityGroup (Write)
  • ec2:DeleteSnapshot (Write)
  • ec2:DeleteTags (Tagging)
  • ec2:DeleteVolume (Write)
  • ec2:DescribeAccountAttributes (List)
  • ec2:DescribeAddresses (List)
  • ec2:DescribeAvailabilityZones (List)
  • ec2:DescribeCapacityReservations (List)
  • ec2:DescribeCoipPools (List)
  • ec2:DescribeDhcpOptions (List)
  • ec2:DescribeInstanceStatus (List)
  • ec2:DescribeInstanceTypeOfferings (List)
  • ec2:DescribeInstanceTypes (List)
  • ec2:DescribeInstances (List)
  • ec2:DescribeInternetGateways (List)
  • ec2:DescribeIpamPools (List)
  • ec2:DescribeLaunchTemplates (List)
  • ec2:DescribeNetworkAcls (List)
  • ec2:DescribeNetworkInterfaces (List)
  • ec2:DescribePlacementGroups (List)
  • ec2:DescribeRouteTables (List)
  • ec2:DescribeSecurityGroups (List)
  • ec2:DescribeSnapshots (List)
  • ec2:DescribeSpotPriceHistory (List)
  • ec2:DescribeSubnets (List)
  • ec2:DescribeTags (List)
  • ec2:DescribeTrunkInterfaceAssociations (List)
  • ec2:DescribeVolumes (List)
  • ec2:DescribeVolumesModifications (List)
  • ec2:DescribeVpcPeeringConnections (List)
  • ec2:DescribeVpcs (List)
  • ec2:DetachNetworkInterface (Write)
  • ec2:GetCoipPoolUsage (Read)
  • ec2:GetSecurityGroupsForVpc (Read)
  • ec2:ModifyNetworkInterfaceAttribute (Write)
  • ec2:RebootInstances (Write)
  • ec2:RevokeSecurityGroupEgress (Write)
  • ec2:RevokeSecurityGroupIngress (Write)
  • ec2:TerminateInstances (Write)
EKS: 10 actions
  • eks:ActivateCertificateAuthority (Write)
  • eks:AssociateAccessPolicy (Write)
  • eks:CreateAccessEntry (Write)
  • eks:CreateCertificateAuthority (Write)
  • eks:DeleteAccessEntry (Write)
  • eks:DeleteCertificateAuthority (Write)
  • eks:DescribeAccessEntry (Read)
  • eks:DescribeCluster (Read)
  • eks:DisassociateAccessPolicy (Write)
  • eks:ListAssociatedAccessPolicies (List)
ELB: 18 actions
  • elasticloadbalancing:DeleteListener (Write)
  • elasticloadbalancing:DeleteLoadBalancer (Write)
  • elasticloadbalancing:DeleteRule (Write)
  • elasticloadbalancing:DeleteTargetGroup (Write)
  • elasticloadbalancing:DeregisterTargets (Write)
  • elasticloadbalancing:DescribeCapacityReservation (Read)
  • elasticloadbalancing:DescribeListenerAttributes (Read)
  • elasticloadbalancing:DescribeListenerCertificates (Read)
  • elasticloadbalancing:DescribeListeners (Read)
  • elasticloadbalancing:DescribeLoadBalancerAttributes (Read)
  • elasticloadbalancing:DescribeLoadBalancers (List)
  • elasticloadbalancing:DescribeRules (Read)
  • elasticloadbalancing:DescribeSSLPolicies (Read)
  • elasticloadbalancing:DescribeTags (Read)
  • elasticloadbalancing:DescribeTargetGroupAttributes (Read)
  • elasticloadbalancing:DescribeTargetGroups (Read)
  • elasticloadbalancing:DescribeTargetHealth (Read)
  • elasticloadbalancing:DescribeTrustStores (Read)
EventBridge: 2 actions
  • events:PutRule (Write)
  • events:PutTargets (Write)
IAM: 6 actions
  • iam:CreateInstanceProfile (Write)
  • iam:DeleteInstanceProfile (Write)
  • iam:GetInstanceProfile (Read)
  • iam:ListAttachedRolePolicies (List)
  • iam:ListInstanceProfiles (List)
  • iam:RemoveRoleFromInstanceProfile (Write)
CloudWatch Logs: 4 actions
  • logs:CreateLogGroup (Write)
  • logs:CreateLogStream (Write)
  • logs:DescribeLogStreams (List)
  • logs:PutLogEvents (Write)
Price List: 1 actions
  • pricing:GetProducts (Read)
Route 53: 1 actions
  • route53:AssociateVPCWithHostedZone (Write)
Shield: 2 actions
  • shield:DescribeProtection (Read)
  • shield:GetSubscriptionState (Read)
Resource Group Tagging: 1 actions
  • tag:GetResources (Read)

Data-plane actions (1)

By access level: 1 Write.

Data-plane actions by service
ServiceGrantedAccess levels and limitsGranted by
CloudWatch1 of 51 Write; 1 restricted, 1 conditionalcloudwatch:PutMetricData
CloudWatch: 1 actions
  • cloudwatch:PutMetricData (Write)

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: No (service-linked role policy).

Why this tier

  • Grants 40 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.

Same service

Same domain

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

Download policy.json

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:CreateNetworkInterface",
        "ec2:DeleteNetworkInterface",
        "ec2:DetachNetworkInterface",
        "ec2:ModifyNetworkInterfaceAttribute",
        "ec2:CreateSecurityGroup",
        "ec2:CreateNetworkInterfacePermission"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeAccountAttributes",
        "ec2:DescribeAddresses",
        "ec2:DescribeAvailabilityZones",
        "ec2:DescribeCapacityReservations",
        "ec2:DescribeCoipPools",
        "ec2:DescribeDhcpOptions",
        "ec2:DescribeInstances",
        "ec2:DescribeInstanceTypeOfferings",
        "ec2:DescribeInstanceTypes",
        "ec2:DescribeInstanceStatus",
        "ec2:DescribeInternetGateways",
        "ec2:DescribeLaunchTemplates",
        "ec2:DescribeNetworkInterfaces",
        "ec2:DescribePlacementGroups",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeSnapshots",
        "ec2:DescribeSpotPriceHistory",
        "ec2:DescribeSubnets",
        "ec2:DescribeTags",
        "ec2:DescribeVolumes",
        "ec2:DescribeVolumesModifications",
        "ec2:DescribeVpcPeeringConnections",
        "ec2:DescribeVpcs",
        "ec2:DescribeRouteTables",
        "ec2:DescribeNetworkAcls",
        "ec2:GetCoipPoolUsage",
        "ec2:GetSecurityGroupsForVpc",
        "eks:DescribeCluster",
        "ec2:DescribeIpamPools",
        "ec2:DescribeTrunkInterfaceAssociations",
        "elasticloadbalancing:DescribeListenerAttributes",
        "elasticloadbalancing:DescribeListenerCertificates",
        "elasticloadbalancing:DescribeListeners",
        "elasticloadbalancing:DescribeLoadBalancerAttributes",
        "elasticloadbalancing:DescribeLoadBalancers",
        "elasticloadbalancing:DescribeRules",
        "elasticloadbalancing:DescribeSSLPolicies",
        "elasticloadbalancing:DescribeTags",
        "elasticloadbalancing:DescribeTargetGroupAttributes",
        "elasticloadbalancing:DescribeTargetGroups",
        "elasticloadbalancing:DescribeTargetHealth",
        "elasticloadbalancing:DeregisterTargets",
        "elasticloadbalancing:DescribeTrustStores",
        "elasticloadbalancing:DescribeCapacityReservation",
        "iam:ListAttachedRolePolicies",
        "pricing:GetProducts",
        "shield:GetSubscriptionState",
        "shield:DescribeProtection",
        "tag:GetResources"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DeleteSecurityGroup",
        "ec2:RevokeSecurityGroupIngress",
        "ec2:AuthorizeSecurityGroupIngress",
        "ec2:RevokeSecurityGroupEgress",
        "ec2:AuthorizeSecurityGroupEgress"
      ],
      "Resource": "arn:aws:ec2:*:*:security-group/*",
      "Condition": {
        "StringLike": {
          "ec2:ResourceTag/Name": "eks-cluster-sg*"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2:CreateTags",
        "ec2:DeleteTags"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:vpc/*",
        "arn:aws:ec2:*:*:subnet/*",
        "arn:aws:ec2:*:*:network-interface/*",
        "arn:aws:ec2:*:*:security-group/*"
      ],
      "Condition": {
        "ForAnyValue:StringLike": {
          "aws:TagKeys": [
            "kubernetes.io/cluster/*"
          ]
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2:CreateTags",
        "ec2:DeleteTags"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:security-group/*",
        "arn:aws:ec2:*:*:network-interface/*"
      ],
      "Condition": {
        "StringLike": {
          "aws:RequestTag/Name": "eks-cluster-*"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": "route53:AssociateVPCWithHostedZone",
      "Resource": "arn:aws:route53:::hostedzone/*"
    },
    {
      "Effect": "Allow",
      "Action": "logs:CreateLogGroup",
      "Resource": "arn:aws:logs:*:*:log-group:/aws/eks/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogStream",
        "logs:DescribeLogStreams"
      ],
      "Resource": "arn:aws:logs:*:*:log-group:/aws/eks/*:*"
    },
    {
      "Effect": "Allow",
      "Action": "logs:PutLogEvents",
      "Resource": "arn:aws:logs:*:*:log-group:/aws/eks/*:*:*"
    },
    {
      "Effect": "Allow",
      "Action": "cloudwatch:PutMetricData",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "cloudwatch:namespace": "AWS/EKS"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "eks:CreateCertificateAuthority",
        "eks:DeleteCertificateAuthority",
        "eks:ActivateCertificateAuthority"
      ],
      "Resource": "arn:aws:eks:*:*:cluster/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "eks:CreateAccessEntry",
        "eks:DeleteAccessEntry"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "eks:accessEntryType": "STANDARD"
        },
        "ArnLike": {
          "eks:principalArn": "arn:aws:iam::*:role/aws-service-role/eks.amazonaws.com/AWSServiceRoleForAmazonEKS"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "eks:ListAssociatedAccessPolicies"
      ],
      "Resource": "arn:aws:eks:*:*:access-entry/*/role/${aws:PrincipalAccount}/AWSServiceRoleForAmazonEKS/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "eks:AssociateAccessPolicy",
        "eks:DisassociateAccessPolicy"
      ],
      "Resource": "arn:aws:eks:*:*:access-entry/*/role/${aws:PrincipalAccount}/AWSServiceRoleForAmazonEKS/*",
      "Condition": {
        "StringEquals": {
          "eks:policyArn": [
            "arn:aws:eks::aws:cluster-access-policy/AmazonEKSComputePolicy",
            "arn:aws:eks::aws:cluster-access-policy/AmazonEKSComputeClusterPolicy",
            "arn:aws:eks::aws:cluster-access-policy/AmazonEKSNetworkingPolicy",
            "arn:aws:eks::aws:cluster-access-policy/AmazonEKSNetworkingClusterPolicy",
            "arn:aws:eks::aws:cluster-access-policy/AmazonEKSLoadBalancingPolicy",
            "arn:aws:eks::aws:cluster-access-policy/AmazonEKSLoadBalancingClusterPolicy",
            "arn:aws:eks::aws:cluster-access-policy/AmazonEKSBlockStoragePolicy",
            "arn:aws:eks::aws:cluster-access-policy/AmazonEKSBlockStorageClusterPolicy",
            "arn:aws:eks::aws:cluster-access-policy/AmazonEKSHybridPolicy",
            "arn:aws:eks::aws:cluster-access-policy/AmazonEKSEventPolicy",
            "arn:aws:eks::aws:cluster-access-policy/AmazonEKSPodIdentityPolicy",
            "arn:aws:eks::aws:cluster-access-policy/AmazonEKSResourceOptimizerClusterPolicy",
            "arn:aws:eks::aws:cluster-access-policy/AmazonEKSResourceOptimizerPolicy"
          ]
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DeleteNetworkInterface"
      ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "aws:ResourceTag/eks:eks-cluster-name": "*"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": "eks:DescribeAccessEntry",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "eks:accessEntryType": "EC2"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": "events:PutRule",
      "Resource": "arn:aws:events:*:*:rule/EKS*",
      "Condition": {
        "ForAllValues:StringEquals": {
          "events:source": [
            "aws.ec2",
            "aws.health"
          ]
        },
        "StringEquals": {
          "events:ManagedBy": [
            "eks.amazonaws.com"
          ]
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": "events:PutTargets",
      "Resource": "arn:aws:events:*:*:rule/EKS*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "iam:CreateInstanceProfile",
        "iam:DeleteInstanceProfile",
        "iam:RemoveRoleFromInstanceProfile",
        "iam:ListInstanceProfiles"
      ],
      "Resource": "arn:aws:iam::*:instance-profile/eks*"
    },
    {
      "Effect": "Allow",
      "Action": "iam:GetInstanceProfile",
      "Resource": "arn:aws:iam::*:instance-profile/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DeleteLaunchTemplate",
        "ec2:TerminateInstances",
        "ec2:RebootInstances"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:launch-template/*",
        "arn:aws:ec2:*:*:instance/*"
      ],
      "Condition": {
        "StringLike": {
          "aws:ResourceTag/eks:eks-cluster-name": "*"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DeleteLaunchTemplate",
        "ec2:TerminateInstances",
        "ec2:RebootInstances"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "ec2:ManagedResourceOperator": [
            "eks.amazonaws.com"
          ]
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DeleteVolume"
      ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "aws:ResourceTag/eks:eks-cluster-name": "*"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DeleteSnapshot"
      ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "aws:ResourceTag/eks:eks-cluster-name": "*"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "elasticloadbalancing:DeleteListener",
        "elasticloadbalancing:DeleteRule",
        "elasticloadbalancing:DeleteLoadBalancer",
        "elasticloadbalancing:DeleteTargetGroup",
        "ec2:DeleteSecurityGroup"
      ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "aws:ResourceTag/eks:eks-cluster-name": "*"
        }
      }
    }
  ]
}

Version history

Current version v30, 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

This policy cannot be attached to users, groups or roles, so there are no attach snippets.

Sources

Pending editorial review. No editorial sources are listed yet.