Skip to main content

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

High

Address

Security

Compliance Standards

  • CIS GKE

Triage and Remediation

Remediation

Manual Steps

  1. From any machine with gcloud access, confirm the current ABAC setting for the cluster:
    Review:
    • If the field is null or "enabled": false, legacy ABAC is not in use.
    • If "enabled": true, ABAC is enabled and should be reviewed/disabled.
  2. If ABAC is enabled, identify teams or systems that might depend on it by reviewing existing RBAC configuration from any machine with kubectl access:
    Assess whether all needed access appears to be represented in RBAC (roles and bindings) rather than undocumented ABAC policies.
  3. Still from a machine with gcloud access, 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.
  4. 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 gcloud access, disable legacy authorization:
  5. After the update completes, verify that ABAC is disabled from a machine with gcloud access:
    Confirm the output is null or shows "enabled": false.
  6. From any machine with kubectl access, 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.
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.
How to use and interpret:
  1. Run from any machine with gcloud configured and access to the target projects:
  2. Output is CSV:
    • ABAC_ENABLED is either true or false.
  3. Problematic state (requires review/remediation):
    • Any line where ABAC_ENABLED is true indicates that Legacy Authorization (ABAC) is enabled on that cluster and should be reviewed and typically disabled:
  4. Compliant state:
    • Lines with ABAC_ENABLED equal to false (or where the field is absent and treated as false) are aligned with the benchmark expectation: