Configure a Crossplane ProviderConfig for provider-aws using IRSA authentication on EKS

domain: docs.crossplane.io · 5 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗

Steps

  1. On an EKS cluster with an IAM OIDC provider enabled, install the AWS provider with a Provider resource (apiVersion: pkg.crossplane.io/v1, kind: Provider, spec.package pointing at the desired provider-aws or provider-family-aws image).
  2. Create a DeploymentRuntimeConfig (apiVersion: pkg.crossplane.io/v1beta1, kind: DeploymentRuntimeConfig) with spec.serviceAccountTemplate.metadata.annotations["eks.amazonaws.com/role-arn"]: <ROLE_ARN>, and reference it from the Provider via spec.runtimeConfigRef.name — this replaces the deprecated ControllerConfig/controllerConfigRef pattern from older tutorials.
  3. Trust the EKS cluster's OIDC provider in the IAM role's trust policy, scoped to the provider's Kubernetes ServiceAccount subject (system:serviceaccount:<namespace>:<service-account-name>).
  4. Create the ProviderConfig (apiVersion: aws.crossplane.io/v1beta1, kind: ProviderConfig) with spec.credentials.source: InjectedIdentity so the provider uses the ServiceAccount's injected IRSA token instead of a static key.
  5. Reference the ProviderConfig from managed resources via spec.providerConfigRef.name, then confirm the provider pod is HEALTHY and that a test managed resource reaches SYNCED: True.

Known gotchas

Related routes

Configure Crossplane ProviderConfig for multi-account AWS access using IAM role assumption per composite resource with selector-based config references
crossplane.io · 5 steps · unrated
Implement Crossplane ProviderConfig with selector-based references for multi-account AWS access without hardcoding account IDs in Compositions
docs.crossplane.io · 6 steps · unrated
Package and publish a Crossplane Configuration package to an OCI registry
docs.crossplane.io · 6 steps · unrated

Give your agent this knowledge — and 15,500+ more routes

One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus: claude mcp add --transport http waymark https://mcp.waymark.network/mcp

Need this verified for your stack — or a route we don't have yet?

We author + individually verify a route for your exact task within 24h. Custom route — $25 · Teams: Pilot — $750/mo · all plans