For AI agents: A markdown version of this page is available at https://docs.datadoghq.com/security/code_security/iac_security/iac_rules/ansible-gcp-client-certificate-disabled.md.
A documentation index is available at /llms.txt.
Client certificate authentication for the Kubernetes control plane ensures administrators authenticate with strong cryptographic credentials, reducing reliance on weaker or shared credentials that can lead to unauthorized control-plane access.
For Ansible GCP Container Cluster resources (google.cloud.gcp_container_cluster and gcp_container_cluster), the master_auth object must include client_certificate_config with issue_client_certificate: true. Resources that omit master_auth, omit client_certificate_config, or set issue_client_certificate to false are flagged.
Secure configuration example for an Ansible task:
- name:Create GKE cluster with client certificate enabledgoogle.cloud.gcp_container_cluster:name:my-clustermaster_auth:client_certificate_config:issue_client_certificate:true
Compliant Code Examples
#this code is a correct code for which the query should not find any result- name:create a clustergoogle.cloud.gcp_container_cluster:name:my-clusterinitial_node_count:2master_auth:username:cluster_adminpassword:my-secret-passwordclient_certificate_config:issue_client_certificate:yesnode_config:machine_type:n1-standard-4disk_size_gb:500location:us-central1-aproject:test_projectauth_kind:serviceaccountservice_account_file:/tmp/auth.pemstate:present
Non-Compliant Code Examples
#this is a problematic code where the query should report a result(s)- name:create a cluster1google.cloud.gcp_container_cluster:name:my-cluster1initial_node_count:2node_config:machine_type:n1-standard-4disk_size_gb:500location:us-central1-aproject:test_projectauth_kind:serviceaccountservice_account_file:"/tmp/auth.pem"state:present- name:create a cluster2google.cloud.gcp_container_cluster:name:my-cluster2initial_node_count:2master_auth:username:cluster_adminpassword:my-secret-passwordnode_config:machine_type:n1-standard-4disk_size_gb:500location:us-central1-aproject:test_projectauth_kind:serviceaccountservice_account_file:"/tmp/auth.pem"state:present- name:create a cluster3google.cloud.gcp_container_cluster:name:my-cluster3initial_node_count:2master_auth:username:cluster_adminpassword:my-secret-passwordclient_certificate_config:issue_client_certificate:nonode_config:machine_type:n1-standard-4disk_size_gb:500location:us-central1-aproject:test_projectauth_kind:serviceaccountservice_account_file:"/tmp/auth.pem"state:present
1
2
rulesets:- Ansible / GCP # Rules to enforce / GCP.
Request a personalized demo
Get Started with Datadog
Ask AI
AI-generated responses may be inaccurate. Verify important info.