More Info:
Legacy Authorization, Also Known As Attribute-Based Access Control (Abac) Has Been Superseded By Role-Based Access Control (Rbac) And Is Not Under Active Development. Rbac Is The Recommended Way To Manage Permissions In KubernetesRisk Level
LowAddress
SecurityCompliance Standards
- CIS GKE
Triage and Remediation
- Remediation
Remediation
Manual Steps
Manual Steps
-
Identify all GKE clusters to review (run on any machine with
gcloudconfigured):Repeat the following steps for each cluster shown. -
Check whether ABAC (legacy authorization) is enabled for a given cluster (any machine with
gcloud):Interpret the result:- If
nullor{}→ ABAC not configured (effectively disabled). - If it contains
"enabled": true→ ABAC is enabled and should be reviewed/disabled.
- If
-
Review for any remaining ABAC-dependent workloads or processes (any machine with
kubectlaccess to the cluster):- List current RBAC bindings:
- Confirm that users/service accounts relying on cluster access are granted permissions via RBAC (ClusterRoleBindings/RoleBindings) and not via any out-of-band ABAC files or legacy documentation.
- Check internal docs / automation (CI/CD, scripts) for any references to “ABAC” or expectations of blanket access.
- List current RBAC bindings:
-
Decide whether it is safe to disable ABAC:
- If all access is covered by RBAC and no known dependency on ABAC remains, proceed to disable ABAC.
- If there is uncertainty, plan a maintenance window and communicate the change, since disabling ABAC can remove broad implicit access that some legacy clients may rely on.
-
Disable Legacy Authorization (ABAC) on the cluster (any machine with
gcloud):Note: This is a control-plane configuration change; allow time for the update to complete and monitor for access issues. -
Verify ABAC is disabled (any machine with
gcloud):Confirm the output isnullor an empty object and that there is no"enabled": truefield.
Using kubectl
Using kubectl
kubectl cannot disable Legacy Authorization (ABAC) because this setting is managed on the GKE control-plane via Google Cloud (gcloud/console/IaC), not through Kubernetes API objects. To remediate this finding, follow the guidance in the Manual Steps section using the Google Cloud configuration surface.
Automation
Automation
- Save as
check_gke_abac.shand make it executable: - Run for your project:
or for all projects you can see:
- Output line format:
- Any line where
legacyAbac.enabledistrueindicates a problem for CIS GKE 5.8.4 (Legacy Authorization / ABAC is enabled and should be reviewed and disabled if not strictly required).

