Skip to main content

More Info:

Use Azure RBAC for Kubernetes authorization so access decisions are enforced through Azure role assignments rather than only native Kubernetes RBAC.

Risk Level

High

Address

Security

Compliance Standards

  • CIS AKS

Triage and Remediation

Remediation

Manual Steps

  1. Identify the cluster and control plane config
    • Run on any machine with Azure CLI access:
    • Note the resourceGroup and name of the AKS cluster you’re reviewing.
  2. Check whether Azure RBAC for Kubernetes authorization is enabled
    • Run on any machine with Azure CLI access:
    • If azureRBACEnabled is true, Azure RBAC for Kubernetes authorization is already enabled; go to step 6 to review role assignments. If it is false or missing, proceed to step 3.
  3. Decide whether to adopt Azure RBAC for Kubernetes authorization
    • Gather current consumers and access models:
      • List service principals and managed identities used by workloads and admins:
      • Identify current Kubernetes-native RBAC bindings (for impact awareness):
    • Decide if your organization wants Azure AD identities and Azure RBAC to be the primary authorization mechanism for cluster access (typically recommended for centralized governance and auditing).
  4. Plan and, if approved, enable Azure RBAC for Kubernetes authorization
    • Review official Azure AKS documentation to confirm current prerequisites, limitations, and feature flags for your AKS version (for example, relation to AAD integration and OIDC issuer).
    • If your governance process approves, enable Azure RBAC using Azure Portal or CLI (conceptually: edit the AKS cluster to turn on “Azure RBAC for Kubernetes authorization”). Ensure a maintenance window is in place because this changes how access is evaluated.
    • After enabling, re-run step 2 to confirm azureRBACEnabled is now true.
  5. Define and assign Azure roles for Kubernetes access
    • Identify which Azure built-in roles (for example, Azure Kubernetes Service RBAC Cluster Admin, Azure Kubernetes Service RBAC Admin, Azure Kubernetes Service RBAC Writer, Azure Kubernetes Service RBAC Reader) or custom roles should be used.
    • Assign them to Azure AD users, groups, or service principals at the appropriate scope (subscription, resource group, or AKS resource). Example to view current role assignments for the cluster resource:
  6. Verify effective access and ongoing posture
    • From an Azure AD user or identity that should have cluster access via Azure RBAC, obtain credentials and test:
    • Confirm that allowed/denied operations match the Azure role assignments. Periodically review step 5’s role assignment listing to ensure only intended identities have Kubernetes access via Azure RBAC.
kubectl cannot enable or configure Azure RBAC for Kubernetes authorization because this setting is managed at the Azure AKS control‑plane level (portal/CLI/IaC), not via Kubernetes API objects. To address this finding, follow the guidance in the Manual Steps section using the Azure portal, Azure CLI, or your IaC tooling.
How to run (any machine with Azure CLI access):
What indicates a potential problem with respect to CISAKS 5.5.2:
  • Rows where:
    • azure_rbac_enabled is false or unknown, and
    • rbac_enabled is true
      → The cluster is using only native Kubernetes RBAC; review whether Azure RBAC should be adopted.
  • Rows where:
    • azure_rbac_enabled is false, and
    • rbac_enabled is false
      → Misconfigured or legacy cluster; access control model must be reviewed urgently.
  • Any row with azure_rbac_enabled = unknown
    → The script could not reliably detect the Azure RBAC setting; inspect this cluster in the Azure portal/CLI manually.