Skip to main content

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 Kubernetes

Risk Level

Low

Address

Security

Compliance Standards

  • CIS GKE

Triage and Remediation

Remediation

Manual Steps

  1. Identify all GKE clusters to review (run on any machine with gcloud configured):
    Repeat the following steps for each cluster shown.
  2. Check whether ABAC (legacy authorization) is enabled for a given cluster (any machine with gcloud):
    Interpret the result:
    • If null or {} → ABAC not configured (effectively disabled).
    • If it contains "enabled": true → ABAC is enabled and should be reviewed/disabled.
  3. Review for any remaining ABAC-dependent workloads or processes (any machine with kubectl access 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.
  4. 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.
  5. 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.
  6. Verify ABAC is disabled (any machine with gcloud):
    Confirm the output is null or an empty object and that there is no "enabled": true field.
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.
How to run (any machine with gcloud access):
  1. Save as check_gke_abac.sh and make it executable:
  2. Run for your project:
    or for all projects you can see:
How to interpret output (problem indication):
  • Output line format:
  • Any line where legacyAbac.enabled is true indicates a problem for CIS GKE 5.8.4 (Legacy Authorization / ABAC is enabled and should be reviewed and disabled if not strictly required).

Additional Reading: