Skip to main content

More Info:

Binary Authorization Helps To Protect Supply-Chain Security By Only Allowing Images With Verifiable Cryptographically Signed Metadata Into The Cluster.

Risk Level

Medium

Address

Security

Compliance Standards

  • CIS GKE

Triage and Remediation

Remediation

Manual Steps

  1. Identify current Binary Authorization evaluation mode
    • Run on any machine with gcloud and IAM access to the project:
    • If the value is DISABLED, Binary Authorization is not in use for this cluster.
  2. List and inspect the Binary Authorization policy in the project
    • Check if a project-level policy exists:
    • Review the exported YAML to see:
      • If defaultAdmissionRule.enforcementMode is ENFORCED_BLOCK_AND_AUDIT_LOG or only DRYRUN_AUDIT_LOG_ONLY.
      • Which images/attestors are enforced or exempted via clusterAdmissionRules or imageAllowlist.
  3. Decide intended enforcement level and scope
    • In consultation with your security and application teams, determine:
      • Whether you are ready for full enforcement (PROJECT_SINGLETON_POLICY_ENFORCE) vs audit-only.
      • Which registries/images must be allowed and which must require attestations.
    • Update the exported policy YAML locally to reflect the desired rules and enforcementMode values.
  4. Apply (import) the updated Binary Authorization policy
    • Save the updated policy to a file, for example: /tmp/binauthz-policy.yaml.
    • Import it to the project:
  5. Enable Binary Authorization on the GKE cluster
    • Choose an evaluation mode consistent with your decision in step 3. Examples:
      • Enforce project policy:
      • Audit-only (if you are not ready to block yet):
  6. Verify configuration and observe impact
    • Confirm the cluster is using Binary Authorization:
    • Optionally, deploy a test workload with an image that should be denied or only audited, and review audit logs in Cloud Logging under Kubernetes Engine and Binary Authorization logs to verify enforcement/audit behavior matches expectations.
kubectl cannot configure Binary Authorization because it is a GKE control-plane / project-level setting managed via gcloud, the GCP console, or IaC. To enable and configure Binary Authorization, follow the guidance in the Manual Steps section using the Google Cloud tools.

Additional Reading: