IAM policies - Eksctl User Guide

IAM policies

You can attach Instance Roles to node groups. Workloads running on the node will receive IAM permissions from the node. For mroe information, see IAM roles for Amazon EC2.

This page lists the pre-defined IAM policy templates available in eksctl. These templates simplify the process of granting your EKS nodes the appropriate AWS service permissions without having to manually create custom IAM policies.

Supported IAM add-on policies

Example of all supported add-on policies:

nodeGroups: - name: ng-1 instanceType: m5.xlarge desiredCapacity: 1 iam: withAddonPolicies: imageBuilder: true autoScaler: true externalDNS: true certManager: true appMesh: true appMeshPreview: true ebs: true fsx: true efs: true awsLoadBalancerController: true xRay: true cloudWatch: true

Image Builder Policy

The imageBuilder policy allows for full ECR (Elastic Container Registry) access. This is useful for building, for example, a CI server that needs to push images to ECR.

EBS Policy

The ebs policy enables the new EBS CSI (Elastic Block Store Container Storage Interface) driver.

Cert Manager Policy

The certManager policy enables the ability to add records to Route 53 in order to solve the DNS01 challenge. More information can be found here.

Adding a custom instance role

This example creates a nodegroup that reuses an existing IAM Instance Role from another cluster:

apiVersion: eksctl.io/v1alpha4 kind: ClusterConfig metadata: name: test-cluster-c-1 region: eu-north-1 nodeGroups: - name: ng2-private instanceType: m5.large desiredCapacity: 1 iam: instanceProfileARN: "arn:aws:iam::123:instance-profile/eksctl-test-cluster-a-3-nodegroup-ng2-private-NodeInstanceProfile-Y4YKHLNINMXC" instanceRoleARN: "arn:aws:iam::123:role/eksctl-test-cluster-a-3-nodegroup-NodeInstanceRole-DNGMQTQHQHBJ"

Attaching inline policies

nodeGroups: - name: my-special-nodegroup iam: attachPolicy: Version: "2012-10-17" Statement: - Effect: Allow Action: - 's3:GetObject' Resource: 'arn:aws:s3:::example-bucket/*'

Attaching policies by ARN

nodeGroups: - name: my-special-nodegroup iam: attachPolicyARNs: - arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy - arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy - arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly - arn:aws:iam::aws:policy/ElasticLoadBalancingFullAccess - arn:aws:iam::1111111111:policy/kube2iam withAddonPolicies: autoScaler: true imageBuilder: true
Warning

If a nodegroup includes the attachPolicyARNs it must also include the default node policies, like AmazonEKSWorkerNodePolicy, AmazonEKS_CNI_Policy and AmazonEC2ContainerRegistryReadOnly in this example.