More Info:
Disable legacy ABAC authorization so access is governed by RBAC, which offers finer-grained and safer permission control. ABAC grants broad access and is deprecated.Risk Level
HighAddress
SecurityCompliance Standards
- CIS GKE
Triage and Remediation
- Remediation
Remediation
Manual Steps
Manual Steps
-
From any machine with
gcloudaccess, confirm the current ABAC setting for the cluster:Review:- If the field is
nullor"enabled": false, legacy ABAC is not in use. - If
"enabled": true, ABAC is enabled and should be reviewed/disabled.
- If the field is
-
If ABAC is enabled, identify teams or systems that might depend on it by reviewing existing RBAC configuration from any machine with
kubectlaccess:Assess whether all needed access appears to be represented in RBAC (roles and bindings) rather than undocumented ABAC policies. -
Still from a machine with
gcloudaccess, capture and review the full cluster configuration for context (e.g., for change review / change ticket):Store this output as evidence and for rollback analysis. -
If you determine there is no required dependency on ABAC (or you have confirmed equivalent RBAC rules exist), plan a change window because this is a control-plane configuration change. Then, from a machine with
gcloudaccess, disable legacy authorization: -
After the update completes, verify that ABAC is disabled from a machine with
gcloudaccess:Confirm the output isnullor shows"enabled": false. -
From any machine with
kubectlaccess, perform a quick access-validation check for a few representative service accounts / users (to ensure RBAC covers necessary permissions), for example:Adjust RBAC roles and bindings as needed if any required access is now denied.
Using kubectl
Using kubectl
kubectl cannot enable or disable Legacy Authorization (ABAC) because this setting is controlled at the managed control-plane / cloud provider configuration level for the GKE cluster. To remediate this finding, follow the guidance in the Manual Steps section using
gcloud, the cloud console, or your IaC tooling.Automation
Automation
-
Run from any machine with
gcloudconfigured and access to the target projects: -
Output is CSV:
ABAC_ENABLEDis eithertrueorfalse.
-
Problematic state (requires review/remediation):
- Any line where
ABAC_ENABLEDistrueindicates that Legacy Authorization (ABAC) is enabled on that cluster and should be reviewed and typically disabled:
- Any line where
-
Compliant state:
- Lines with
ABAC_ENABLEDequal tofalse(or where the field is absent and treated asfalse) are aligned with the benchmark expectation:
- Lines with

