More Info:
Disable client certificate authentication for the cluster, as client certs cannot be easily revoked and are a weak long-lived credential. Rely on short-lived IAM-based authentication instead.Risk Level
CriticalAddress
SecurityCompliance Standards
- CIS GKE
Triage and Remediation
- Remediation
Remediation
Manual Steps
Manual Steps
-
Identify clusters and current client certificate setting
- Run on: any machine with
gcloudaccess - Command:
For each cluster:Note whether
.masterAuth.clientKeyand.masterAuth.clientCertificateare null/empty or contain data.
- Run on: any machine with
-
Determine if client certificates are in active use
- Run on: any machine with
kubectlaccess - For each context using this cluster, inspect user auth type:
Check under
users[].userforclient-certificate/client-keyfields. - On admin workstations or CI/CD configs, search for kubeconfigs with client certs:
Document any automation or users that still rely on client cert auth.
- Run on: any machine with
-
Decide whether the cluster can be recreated without client certificates
- Review:
- Whether you rely exclusively on GKE IAM /
gke-gcloud-auth-plugin(preferred). - Any legacy tooling that cannot use IAM-based auth.
- Whether you rely exclusively on GKE IAM /
- If any critical dependency requires client certificates and cannot be migrated, plan a migration first before proceeding.
- Review:
-
Plan and perform cluster recreation with
--no-issue-client-certificate(if acceptable)- Design a migration: node pools, workloads, storage (PVs), and network settings (VPC, firewall rules, authorized networks).
- Create a new cluster without client certificates:
- Recreate node pools, migrate workloads (e.g., via
kubectl applyor GitOps), and rebind IAM and RBAC as needed. - Once validated, decommission the old cluster:
-
Update all access methods to use IAM-based authentication
- Ensure
gcloudandgke-gcloud-auth-pluginare installed and enabled on admin/CI machines: - Confirm kubeconfig users no longer reference client certificates:
Verify user entries rely on
auth-provider: gcporexecwithgke-gcloud-auth-plugin.
- Ensure
-
Verify remediation
- Run on: any machine with
gcloudaccess - Command for each active cluster:
- The values should be
null(or absent) for clusters where client certificate authentication is disabled.
- Run on: any machine with
Using kubectl
Using kubectl
kubectl cannot disable client certificate authentication, because this setting is managed at the GKE control-plane / cloud provider configuration layer (via gcloud, console, or IaC). Refer to the Manual Steps section for guidance on reviewing and recreating the cluster with
--no-issue-client-certificate.Automation
Automation

