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-network-policy-disabled.md.
A documentation index is available at /llms.txt.
Kubernetes Engine clusters must have network policy enabled to enforce pod-to-pod network segmentation and limit lateral movement. Without it, workloads can communicate unrestricted and a compromised pod could access other services or sensitive data.
For Ansible-managed GKE clusters using google.cloud.gcp_container_cluster or gcp_container_cluster, the network_policy.enabled property must be true and addons_config.network_policy_config.disabled must be false. Resources missing the network_policy or addons_config.network_policy_config blocks, or with network_policy.enabled set to false or addons_config.network_policy_config.disabled set to true, are flagged as misconfigured.
Secure Ansible configuration example:
- name:Create GKE cluster with Network Policy enabledgoogle.cloud.gcp_container_cluster:name:my-clusterlocation:us-central1network_policy:enabled:trueaddons_config:network_policy_config:disabled:false
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:presentnetwork_policy:enabled:yesaddons_config:network_policy_config:disabled:no
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: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:presentaddons_config:network_policy_config:disabled:false- 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:presentnetwork_policy:enabled:yes- name:create a cluster3google.cloud.gcp_container_cluster:name:my-cluster3initial_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:presentnetwork_policy:enabled:yesaddons_config:horizontal_pod_autoscaling:disabled:yes- name:create a cluster4google.cloud.gcp_container_cluster:name:my-cluster4initial_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:presentnetwork_policy:enabled:noaddons_config:network_policy_config:disabled:no- name:create a cluster5google.cloud.gcp_container_cluster:name:my-cluster5initial_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:presentnetwork_policy:enabled:yesaddons_config:network_policy_config:disabled:yes
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.