Cluster Access on EKS

Overview

Access to an EKS cluster involves two layers:

  1. Authentication (AuthN) - Verifying who you are (IAM identity)
  2. Authorization (AuthZ) - Determining what you can do (RBAC)

Access Vectors

MethodPurposeAuthN
kubectlKubernetes API (clusters, workloads)IAM via aws eks get-token
Kubernetes API (direct)Programmatic accessIAM
IRSA/Pod IdentityPods accessing AWS servicesIAM role
AWS SDK in podsAWS API calls from workloadsIAM role

Authentication Methods

Human Access

MethodSetupUse Case
AWS CLI + aws eks update-kubeconfigIAM user/role with EKS accessLocal development
AWS ConsoleIAM credentialsWeb UI
Bastion hostEC2 in public subnet with IAMPrivate clusters
CloudShellBrowser-based shellQuick access, private clusters
Cloud9 IDEIDE in VPCDevelopment with VPC access

Workload Access (Pods)

MethodSetupUse Case
IRSAOIDC provider + IAM role trustFull AWS SDK access
Pod IdentityEKS-managed associationsSimpler than IRSA
Node IAM RoleInstance profileFallback (not recommended)

IAM and RBAC Relationship

┌─────────────────────────────────────────────────────────────┐
│                    Access Decision Flow                      │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  Request ──► IAM AuthN ──► Kubernetes RBAC ──► Allow/Deny  │
│                 │                                           │
│                 │                                           │
│         "Who are you?"                              "What can                       │
│                                                             │
│         IAM role or                                 you do in                       │
│         IAM user                                    this cluster?                    │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Default Access

PrincipalAccess
Node IAM roleWorkers can join cluster (via NodeAuthorizer)
IAM users/rolesNo access by default
Service accountsNo permissions by default

Cluster Endpoint Configuration

ConfigurationPublic EndpointPrivate EndpointAccess From
Public onlyEnabledDisabledInternet
Public & PrivateEnabledEnabledInternet + VPC (default)
Private onlyDisabledEnabledVPC only

See Endpoint Access Deep-Dive for detailed configuration options.