Halaman ini menjelaskan aturan firewall VPC izin masuk yang secara default dibuat secara otomatis oleh Google Kubernetes Engine (GKE) di Cloud de Confiance by S3NS.
Firewall yang berlaku dan firewall egress
GKE menggunakan aturan firewall Virtual Private Cloud (VPC) untuk mengontrol traffic masuk dan keluar ke Pod dan node Anda. Secara default, GKE otomatis membuat dan mengelola aturan firewall tertentu untuk mengizinkan traffic penting, seperti komunikasi antara node dan Pod, serta traffic ke bidang kontrol Kubernetes Anda. Meskipun GKE secara otomatis membuat aturan firewall VPC izinkan traffic masuk untuk Service LoadBalancer secara default, Anda dapat menonaktifkan perilaku ini untuk mengelola aturan atau kebijakan firewall secara manual atau menggunakan fitur firewall lanjutan.
Aturan firewall Ingress yang dibuat oleh GKE bukanlah satu-satunya aturan firewall yang berlaku untuk node dalam cluster. Kumpulan lengkap aturan firewall yang berlaku untuk traffic masuk dan keluar ditentukan dari aturan dalam kebijakan firewall hierarkis, kebijakan firewall jaringan global, kebijakan firewall jaringan regional, dan aturan firewall VPC lainnya.
Rencanakan dan rancang konfigurasi untuk cluster, workload, dan Service Anda bersama Administrator jaringan dan Engineer keamanan organisasi Anda, serta pahami urutan evaluasi kebijakan dan aturan firewall agar Anda mengetahui aturan firewall mana yang lebih diprioritaskan.
GKE hanya membuat aturan firewall VPC ingress karena GKE mengandalkan aturan firewall prioritas terendah egress yang diizinkan secara tersirat.
Jika Anda telah mengonfigurasi aturan firewall yang menolak traffic keluar di jaringan VPC cluster, Anda mungkin harus membuat aturan izin traffic keluar untuk mengizinkan komunikasi antara node, Pod, dan bidang kontrol cluster.
Misalnya, jika Anda telah membuat aturan firewall tolak egress untuk semua protokol dan port serta semua alamat IP tujuan, Anda harus membuat aturan firewall izinkan egress selain aturan ingress yang dibuat GKE secara otomatis. Konektivitas ke endpoint bidang kontrol selalu menggunakan port tujuan TCP 443, tetapi konektivitas di antara node dan Pod cluster dapat menggunakan protokol dan port tujuan apa pun.
Alat berikut berguna untuk menentukan aturan firewall mana yang mengizinkan atau menolak traffic:
Aturan firewall
Secara default, GKE membuat aturan firewall secara otomatis saat membuat resource berikut:
- Cluster GKE
- Layanan GKE
- Gateway GKE dan HTTPRoute
- Ingress GKE
Kecuali jika ditentukan lain, prioritas untuk semua aturan firewall yang dibuat secara otomatis adalah 1000, yang merupakan nilai default untuk aturan firewall. Jika Anda ingin mengendalikan perilaku firewall dengan lebih baik, Anda dapat membuat aturan firewall dengan prioritas yang lebih tinggi. Aturan firewall dengan prioritas yang lebih tinggi diterapkan sebelum aturan firewall yang dibuat secara otomatis.
Aturan firewall cluster GKE
GKE membuat aturan firewall masuk berikut saat membuat cluster:
| Nama | Tujuan | Asal | Target (menentukan tujuan) | Protokol dan port | Prioritas |
|---|---|---|---|---|---|
gke-[cluster-name]-[cluster-hash]-master |
Untuk cluster Autopilot dan Standard yang mengandalkan Peering Jaringan VPC untuk konektivitas endpoint pribadi bidang kontrol. Mengizinkan control plane untuk mengakses kubelet dan server metrik pada node cluster. | Rentang alamat IP bidang kontrol (/28) | Tag node | TCP: 443 (server-metrik) dan TCP: 10250 (kubelet) | 1000 |
gke-[cluster-name]-[cluster-hash]-vms
|
Digunakan untuk komunikasi intra-cluster yang diperlukan oleh model jaringan Kubernetes. Memungkinkan software yang berjalan di node mengirim paket, dengan sumber yang cocok dengan alamat IP node, ke IP Pod tujuan dan alamat IP node di cluster. Misalnya, traffic yang diizinkan oleh aturan ini mencakup:
|
Rentang alamat IP node atau superset rentang alamat IP node ini:
|
Tag node | TCP: 1-65535, UDP: 1-65535, ICMP | 1000 |
gke-[cluster-name]-[cluster-hash]-all |
Mengizinkan traffic antara semua Pod di cluster, seperti yang diwajibkan oleh model jaringan Kubernetes. |
Pod CIDR Untuk cluster dengan CIDR multi-Pod terfragmentasi yang diaktifkan, semua blok CIDR Pod yang digunakan oleh cluster tersebut. |
Tag node | TCP, UDP, SCTP, ICMP, ESP, AH | 1000 |
gke-[cluster-name]-[cluster-hash]-ipv6-all |
Untuk cluster dual-stack dan khusus IPv6. Mengizinkan traffic antara node dan Pod di cluster. |
Rentang alamat IP yang sama dialokasikan di |
Tag node | TCP, UDP, SCTP, ICMP untuk IPv6, ESP, AH | 1000 |
gke-[cluster-name]-[cluster-hash]-inkubelet |
Mengizinkan akses ke port 10255 (port hanya baca Kubelet) dari CIDR Pod internal dan CIDR Node di cluster GKE baru yang menjalankan versi 1.23.6 atau yang lebih baru. Cluster yang menjalankan versi setelah 1.26.4-gke.500 menggunakan port terautentikasi Kubelet (10250). Jangan tambahkan aturan firewall yang memblokir 10250 dalam cluster. |
CIDR Pod Internal dan CIDR Node. |
Tag node | TCP: 10255 | 999 |
gke-[cluster-name]-[cluster-hash]-exkubelet |
Menolak akses publik ke port 10255 di cluster GKE baru yang menjalankan versi 1.23.6 atau yang lebih baru. |
0.0.0.0/0 |
Tag node | TCP: 10255 | 1000 |
Aturan firewall Layanan GKE
GKE membuat aturan firewall ingress berikut saat membuat Service. Anda dapat mencegah pembuatan beberapa aturan firewall ini dengan mengelola pembuatan aturan firewall VPC.
| Nama | Tujuan | Asal | Target (menentukan tujuan) | Protokol dan port |
|---|---|---|---|---|
k8s-fw-[loadbalancer-hash] |
|
Sumber berasal dari spec.loadBalancerSourceRanges. Nilai defaultnya adalah 0.0.0.0/0 jika spec.loadBalancerSourceRanges dihilangkan.
Untuk mengetahui detail selengkapnya, lihat Aturan firewall dan daftar alamat IP sumber yang diizinkan. |
Alamat IP virtual LoadBalancer | TCP dan UDP pada port yang ditentukan dalam manifes Layanan. |
k8s-fw-[loadbalancer-hash]-deny |
k8s-fw-[loadbalancer-hash]. |
0.0.0.0/0 | Alamat IP virtual LoadBalancer | Semua |
k8s-[cluster-id]-node-http-hc |
Mengizinkan health check
layanan Load Balancer Jaringan passthrough eksternal regional jika externalTrafficPolicy
ditetapkan ke Cluster.
|
|
Alamat IP virtual LoadBalancer | TCP: 10256 |
k8s-[loadbalancer-hash]-http-hc |
Mengizinkan health check
layanan Load Balancer Jaringan passthrough eksternal regional jika externalTrafficPolicy
ditetapkan ke Local.
|
|
Tag node | Port TCP ditentukan oleh spec.healthCheckNodePort. Jika tidak ditentukan, bidang kontrol Kubernetes akan menetapkan port health check dari rentang port node.
Untuk mengetahui detail selengkapnya, lihat Port health check. |
k8s-[cluster-id]-node-hc |
Mengizinkan health check layanan Load Balancer Jaringan passthrough internal jika externalTrafficPolicy ditetapkan ke Cluster.
|
|
Tag node | TCP: 10256 |
[loadbalancer-hash]-hc |
Mengizinkan health check layanan Load Balancer Jaringan passthrough internal jika externalTrafficPolicy ditetapkan ke Local.
|
|
Tag node | Port TCP ditentukan oleh spec.healthCheckNodePort. Jika tidak ditentukan, bidang kontrol Kubernetes akan menetapkan port health check dari rentang port node.
Untuk mengetahui detail selengkapnya, lihat Port health check. |
k8s2-[cluster-id]-[namespace]-[service-name]-[suffixhash] |
Mengizinkan traffic masuk IPv4 untuk menjangkau Layanan jika salah satu hal berikut diaktifkan:
|
Sumber berasal dari spec.loadBalancerSourceRanges. Nilai defaultnya adalah 0.0.0.0/0 jika spec.loadBalancerSourceRanges dihilangkan.
Untuk mengetahui detail selengkapnya, lihat Aturan firewall dan daftar alamat IP sumber yang diizinkan. |
Alamat IP virtual LoadBalancer | TCP dan UDP pada port yang ditentukan dalam manifes Layanan. |
k8s2-[cluster-id]-[namespace]-[service-name]-[suffixhash]-ipv6 |
Mengizinkan traffic masuk IPv6 untuk menjangkau Service jika salah satu hal berikut diaktifkan:
|
Sumber berasal dari spec.loadBalancerSourceRanges. Nilai defaultnya adalah ::/0 jika spec.loadBalancerSourceRanges dihilangkan.
Untuk mengetahui detail selengkapnya, lihat Aturan firewall dan daftar alamat IP sumber yang diizinkan. |
Alamat IP virtual LoadBalancer | TCP dan UDP pada port yang ditentukan dalam manifes Layanan. |
k8s2-[cluster-id]-[namespace]-[service-name]-[suffixhash]-deny |
Menolak semua traffic IPv4 yang tidak diizinkan secara eksplisit oleh aturan k8s2-[cluster-id]-[namespace]-[service-name]-[suffixhash].
|
0.0.0.0/0 | Alamat IP virtual LoadBalancer | Semua |
k8s2-[cluster-id]-[namespace]-[service-name]-[suffixhash]-deny-ipv6 |
Menolak semua traffic IPv6 yang tidak diizinkan secara eksplisit oleh aturan k8s2-[cluster-id]-[namespace]-[service-name]-[suffixhash]-ipv6.
|
::/0 | Rentang alamat IP virtual LoadBalancer/96 | Semua |
k8s2-[cluster-id]-[namespace]-[service-name]-[suffixhash]-fw |
Mengizinkan health check Layanan jika externalTrafficPolicy ditetapkan ke Local dan salah satu dari hal berikut diaktifkan:
|
|
Alamat IP virtual LoadBalancer | Port TCP ditentukan oleh spec.healthCheckNodePort. Jika tidak ditentukan, bidang kontrol Kubernetes akan menetapkan port health check dari rentang port node.
Untuk mengetahui detail selengkapnya, lihat Port health check. |
k8s2-[cluster-id]-l4-shared-hc-fw |
Mengizinkan health check Layanan jika externalTrafficPolicy ditetapkan ke Cluster dan salah satu dari hal berikut diaktifkan:
|
|
Tag node | TCP: 10256 |
gke-[cluster-name]-[cluster-hash]-mcsd |
Mengizinkan control plane untuk mengakses kubelet dan server metrik pada node cluster untuk Layanan Multi-cluster. Aturan ini memiliki prioritas 900. | Alamat IP Health check | Tag node | TCP, UDP, SCTP, ICMP, ESP, AH |
Aturan firewall GKE Gateway
GKE membuat aturan firewall Gateway berikut saat membuat resource Gateway dan HTTPRoute:
| Nama | Tujuan | Asal | Target (menentukan tujuan) | Protokol dan port |
|---|---|---|---|---|
|
Mengizinkan health check grup endpoint jaringan (NEG). Pengontrol Gateway membuat aturan ini saat resource Gateway pertama dibuat. Pengontrol Gateway dapat memperbarui aturan ini jika resource Gateway lainnya dibuat. |
|
0.0.0.0/0 | TCP: 1-65535 |
Aturan firewall GKE Ingress
GKE membuat aturan firewall Ingress berikut saat membuat resource Ingress:
| Nama | Tujuan | Asal | Target (menentukan tujuan) | Protokol dan port |
|---|---|---|---|---|
k8s-fw-l7-[random-hash] |
Mengizinkan health check untuk Layanan Pengontrol Ingress membuat aturan ini saat resource Ingress pertama dibuat. Pengontrol Ingress dapat memperbarui aturan ini jika lebih banyak resource Ingress dibuat. |
|
Tag node | TCP: 30000-32767, TCP:80 (untuk Load Balancer Aplikasi internal), TCP: semua port target container (untuk NEG) |
Mengelola pembuatan aturan firewall VPC
Secara default, GKE otomatis membuat aturan firewall VPC izinkan ingress untuk semua Service LoadBalancer. Jika ingin mengelola sendiri aturan firewall untuk Service LoadBalancer, Anda harus menonaktifkan pembuatan otomatis aturan firewall VPC.
Penonaktifan pembuatan otomatis aturan firewall VPC untuk Service LoadBalancer hanya berlaku untuk hal berikut:
- Service LoadBalancer internal yang menggunakan subsetelan GKE
- Service LoadBalancer eksternal berbasis layanan backend
Untuk mengetahui informasi tentang cara menonaktifkan aturan firewall, lihat Aturan firewall yang dikelola pengguna untuk Layanan LoadBalancer GKE.
VPC Bersama
Jika Anda menggunakan Service Ingress atau LoadBalancer, dan memiliki cluster yang terletak di VPC Bersama menggunakan jaringan VPC Bersama, akun layanan GKE dalam project layanan tidak dapat membuat dan memperbarui aturan firewall izinkan masuk dalam project host. Anda dapat memberikan izin pada akun layanan GKE untuk membuat dan mengelola resource firewall. Untuk informasi selengkapnya, lihat VPC Bersama.
Aturan firewall yang diperlukan untuk subnet yang diperluas
Jika Anda memperluas rentang IPv4 utama subnet cluster, GKE tidak secara otomatis mengupdate rentang sumber aturan firewall gke-[cluster-name]-[cluster-hash]-vms. Karena node dalam
cluster dapat menerima alamat IPv4 dari bagian yang diperluas dalam rentang
IPv4 utama subnet, Anda harus membuat aturan firewall secara manual untuk memungkinkan
komunikasi antar-node cluster.
Aturan firewall masuk yang harus Anda buat harus mengizinkan paket TCP dan ICMP dari rentang sumber IPv4 subnet utama yang diperluas, dan setidaknya harus berlaku untuk semua node dalam cluster.
Untuk membuat aturan firewall masuk yang hanya berlaku pada node cluster, tetapkan target aturan firewall ke tag target yang sama dengan yang digunakan oleh aturan firewall gke-[cluster-name]-[cluster-hash]-vms cluster Anda yang dibuat otomatis.
Langkah berikutnya
- Baca ringkasan jejaring di GKE.
- Pelajari cara Mengonfigurasi kebijakan jaringan untuk aplikasi.
- Pelajari Aturan firewall yang telah diisi otomatis lainnya di Cloud de Confiance.
- Pelajari lebih lanjut cara Membuat aturan firewall dalam project yang menggunakan VPC Bersama.