GitHub

Amazon EKS OIDC tokens for a Kubernetes service account.

Amazon EKS issues OIDC tokens for Kubernetes service accounts. Each cluster has its own issuer. The subject is system:serviceaccount:<namespace>:<name>. EC2 and Lambda do not issue these tokens.

Docs and discovery

DocsIAM roles for service accounts
Issuerhttps://oidc.eks.<region>.amazonaws.com/id/<id>
Discovery<issuer>/.well-known/openid-configuration

The issuer is in the EKS console, your cluster, Overview, OpenID Connect provider URL.

Token

IssuerThe cluster OIDC URL
AudienceThe audience in the pod's projected service-account token
Subjectsystem:serviceaccount:<namespace>:<name>

Fields

FieldClaimRequiredValidation
Cluster OIDC issuer URLissYeshttps URL with no query or fragment.
NamespacesubYesLowercase letters, digits, and hyphens.
Service accountsubYesSame pattern as namespace.
AudienceaudYesThe audience in the projected token.
Additional claimsotherNoCannot reuse aud or sub.

Example policy

{
  issuer: "https://oidc.eks.us-east-1.amazonaws.com/id/EX",
  claims: {
    aud: ["https://app.example.com"],
    sub: ["system:serviceaccount:default:deploy-bot"],
  },
}

Add a field

Edit components/oidc/provider-aws.tsx after install. For a one-off claim, use Additional claims. For its own input, add it to Fields (or schema), DEFAULTS, compile, parse, FIRST_CLASS_CLAIMS, and the form.

See Add a field.