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
HighAddress
SecurityCompliance Standards
- CIS AKS
Triage and Remediation
- Remediation
Remediation
Manual Steps
Manual Steps
-
Identify the cluster and control plane config
- Run on any machine with Azure CLI access:
- Note the
resourceGroupandnameof the AKS cluster you’re reviewing.
- Run on any machine with Azure CLI access:
-
Check whether Azure RBAC for Kubernetes authorization is enabled
- Run on any machine with Azure CLI access:
- If
azureRBACEnabledistrue, Azure RBAC for Kubernetes authorization is already enabled; go to step 6 to review role assignments. If it isfalseor missing, proceed to step 3.
- Run on any machine with Azure CLI access:
-
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):
- List service principals and managed identities used by workloads and admins:
- 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).
- Gather current consumers and access models:
-
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
azureRBACEnabledis nowtrue.
-
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:
-
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.
- From an Azure AD user or identity that should have cluster access via Azure RBAC, obtain credentials and test:
Using kubectl
Using kubectl
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.
Automation
Automation
-
Rows where:
azure_rbac_enabledisfalseorunknown, andrbac_enabledistrue
→ The cluster is using only native Kubernetes RBAC; review whether Azure RBAC should be adopted.
-
Rows where:
azure_rbac_enabledisfalse, andrbac_enabledisfalse
→ 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.

