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-cluster-master-authentication-disabled.md.
A documentation index is available at /llms.txt.
Kubernetes Engine clusters must have master authentication credentials defined so control plane access is not left unauthenticated or ambiguous. This ensures administrative access is explicit and auditable.
For Ansible GKE cluster resources using the google.cloud.gcp_container_cluster or gcp_container_cluster modules, the master_auth property must be present and its username and password subproperties must be defined and non-empty strings. This rule flags resources where master_auth is undefined or null, or where master_auth.username or master_auth.password are undefined, null, or empty. If you use alternative authentication mechanisms, ensure they are explicitly configured. Otherwise, provide non-empty credentials so the cluster admin account is not left unspecified.
Secure configuration example for an Ansible task:
- name:Create GKE cluster with master authgoogle.cloud.gcp_container_cluster:name:my-clusterzone:us-central1master_auth:username:adminpassword:"{{ gke_admin_password }}"
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-passwordnode_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:password: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_adminnode_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 cluster4google.cloud.gcp_container_cluster:name:my-cluster4initial_node_count:2master_auth:username:password: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 cluster5google.cloud.gcp_container_cluster:name:my-cluster5initial_node_count:2master_auth:username:cluster_adminpassword:node_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.