Your organization uses Azure Kubernetes Service (AKS). You need to allow a pod to access an Azure Key Vault secret without using Kubernetes secrets or managed identity credentials stored in the pod configuration. What should you implement?
Trap 1: Enable Azure AD pod-managed identity for the cluster.
Azure AD pod-managed identity is a deprecated legacy solution that relied on NMI and MIC components. Microsoft now mandates the use of Azure AD Workload Identity, which is a cloud-native, more secure, and performant approach that leverages the Kubernetes native OIDC identity provider capabilities instead of intercepting traffic.
Trap 2: Assign a system-assigned managed identity to the AKS node pool.
Assigning an identity to the node pool grants all pods on those nodes the same permissions. This violates the principle of least privilege, as every container running on the node inherits the identity's access rights, creating a significant security risk for lateral movement within the cluster environment.
Trap 3: Install the Key Vault CSI driver and store the secret as a K8s…
While the CSI driver is a valid method, the requirement specifically asks to avoid using Kubernetes secrets. Storing secrets within Kubernetes introduces risks related to etcd backup exposure and RBAC misconfigurations, which the request specifically aims to circumvent by using direct identity federation instead of intermediate storage.
- A
Enable Azure AD pod-managed identity for the cluster.
Why wrong: Azure AD pod-managed identity is a deprecated legacy solution that relied on NMI and MIC components. Microsoft now mandates the use of Azure AD Workload Identity, which is a cloud-native, more secure, and performant approach that leverages the Kubernetes native OIDC identity provider capabilities instead of intercepting traffic.
- B
Assign a system-assigned managed identity to the AKS node pool.
Why wrong: Assigning an identity to the node pool grants all pods on those nodes the same permissions. This violates the principle of least privilege, as every container running on the node inherits the identity's access rights, creating a significant security risk for lateral movement within the cluster environment.
- C
Configure Azure AD Workload Identity and create a federated identity credential.
Workload Identity enables Kubernetes service accounts to assume an Azure AD identity. By creating a federated credential linking the Kubernetes namespace and service account to the Azure managed identity, you provide granular, secure, and token-based access to Azure resources without requiring any permanent secrets or hard-coded credentials.
- D
Install the Key Vault CSI driver and store the secret as a K8s secret.
Why wrong: While the CSI driver is a valid method, the requirement specifically asks to avoid using Kubernetes secrets. Storing secrets within Kubernetes introduces risks related to etcd backup exposure and RBAC misconfigurations, which the request specifically aims to circumvent by using direct identity federation instead of intermediate storage.