Part 5 · Applications

IAM, Kubernetes RBAC and workload identity

Prerequisites: 04-eks-model, 02-objects

05 / Three identity boundaries

Separate paths show engineer to Kubernetes API, Pod to AWS service APIs and product user to business records.

Scroll the diagram sideways for readable labels.

The first two lanes summarize documented platform mechanisms. The end-user lane is an illustrative application boundary, independent of cluster administration. [S17] [S18] [S32] [S11]

Learning objective and mechanism verified

An EKS access entry associates an IAM principal with cluster access. Permissions can use EKS access policies or Kubernetes groups connected to RBAC. Kubernetes RBAC controls cluster API operations; it does not authorize an end user to read a particular business record.

[S18] [S11]

Pod-to-AWS path verified

EKS Pod Identity maps a namespace and ServiceAccount to an IAM role. A supported AWS SDK uses temporary credentials through the default provider chain and the Pod Identity agent path. Auto Mode supplies the relevant integration. The documented Pod Identity worker scope is Linux EC2; do not assume it works on Fargate.

[S17]

Alternative and limits verified

IRSA uses a projected ServiceAccount OIDC token and AWS STS to obtain temporary role credentials. It remains a relevant option when its supported environment fits. Containers sharing a node are not a strong independent security boundary, and unrestricted instance metadata can expose the node role.

[S32] [S17]

Worked example synthesis

Give a document worker a dedicated ServiceAccount and an IAM role scoped to the required document prefix and actions. Give a deployer only the Kubernetes operations needed for its namespace. Separately enforce tenant and policy access in the application. This is a proposed design; exact IAM conditions depend on the data model.

[S17] [S18] [S11]

Decision, pitfall and improvement synthesis

Avoid attaching all workload permissions to the node role or handing every deployer cluster-admin. Inspect actual credential resolution, test both permitted and denied actions, and restrict instance metadata as appropriate. Verify SDK support and identity-agent access before debugging an S3 denial as a networking problem.

[S17] [S11]
Keep this: Keep engineer-to-cluster, Pod-to-AWS and user-to-product authorization separate.
Check yourself: Can a Pod Identity association grant kubectl permission to a human?

No. Pod Identity controls workload access to AWS APIs; human cluster access uses a separate authentication and authorization path.

Sources & further reading

  1. [S11] RBAC good practices

    Kubernetes · documentation · accessed 2026-10-10 · Living documentation; target-cluster compatibility must be checked · Not stated in retrieved page

    Supports: Least privilege and weak namespace boundaries

    Read the linked primary source for implementation details and current constraints.

  2. [S17] EKS Pod Identity

    AWS · documentation · accessed 2026-10-10 · Living documentation; target-cluster compatibility must be checked · Not stated in retrieved page

    Supports: Service account role associations, agent, SDK support and Linux EC2 scope

    Read the linked primary source for implementation details and current constraints.

  3. [S18] EKS access entries

    AWS · documentation · accessed 2026-10-10 · Living documentation; target-cluster compatibility must be checked · Not stated in retrieved page

    Supports: IAM principal access with EKS access policies or Kubernetes groups

    Read the linked primary source for implementation details and current constraints.

  4. [S32] IAM roles for service accounts

    AWS · documentation · accessed 2026-10-10 · Living documentation; target-cluster compatibility must be checked · Not stated in retrieved page

    Supports: OIDC service account tokens and STS temporary credentials

    Read the linked primary source for implementation details and current constraints.