Migrating AKS Workloads to Azure Workload Identity

For a long time, the standard way for a pod in AKS to authenticate to Azure resources (Key Vault, databases, service bus, etc.) was some flavor of managed identity binding via a sidecar (AAD Pod Identity), or worse, credentials baked into a secret. Azure Workload Identity is the modern replacement: it federates a Kubernetes service account with an Azure AD identity using OIDC, with no secrets to manage or rotate.

This project moved a first batch of services over to Workload Identity. We deliberately split the work into two phases based on complexity - this first pass targeted the simpler, more straightforward services, with a follow-up phase planned for services with more complex identity requirements.

The benefits were immediate:

  • No more managing and rotating secrets for service-to-Azure authentication.
  • Reduced blast radius - each workload gets scoped, short-lived tokens instead of a shared credential.
  • Less operational overhead overall, since there’s no secret expiration to track and no pod-identity sidecar to babysit.