Aturan firewall yang dibuat secara otomatis


Halaman ini menjelaskan aturan firewall VPC yang mengizinkan ingress yang dibuat secara otomatis oleh Google Kubernetes Engine (GKE) di Google Cloud.

Firewall yang berlaku dan firewall keluar

Aturan firewall izinkan traffic masuk yang dibuat oleh GKE bukan 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.

Praktik terbaik:

Rencanakan dan rancang konfigurasi untuk cluster, workload, dan Layanan Anda dengan administrator Jaringan dan engineer Keamanan organisasi Anda, serta pahami kebijakan dan urutan evaluasi aturan firewall sehingga Anda tahu aturan firewall mana yang lebih diutamakan.

GKE hanya membuat aturan firewall VPC masuk karena GKE mengandalkan aturan firewall prioritas terendah yang mengizinkan egress tersirat.

Jika telah mengonfigurasi aturan firewall tolak 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 yang menolak traffic keluar untuk semua protokol dan port serta semua alamat IP tujuan, Anda harus membuat aturan firewall izinkan traffic keluar selain aturan masuk 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 yang mengizinkan atau menolak traffic:

Aturan firewall

GKE membuat aturan firewall secara otomatis saat membuat resource berikut:

  • Cluster GKE
  • Layanan GKE
  • Gateway dan HTTPRoute GKE
  • 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 control plane (/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:

  • Paket yang dikirim dari daemon sistem, seperti kubelet, ke tujuan alamat IP node dan Pod cluster.
  • Paket yang dikirim dari software yang berjalan di Pod dengan hostNetwork:true ke tujuan node dan alamat IP Pod cluster.
Rentang alamat IP node atau superset rentang alamat IP node ini:
  • Untuk jaringan VPC mode otomatis, GKE menggunakan CIDR 10.128.0.0/9 karena rentang tersebut mencakup semua rentang alamat IPv4 utama subnet saat ini dan yang akan datang untuk subnetwork yang dibuat secara otomatis.
  • Untuk jaringan VPC mode kustom, GKE menggunakan rentang alamat IPv4 utama dari subnet cluster.
GKE tidak mengupdate rentang IPv4 sumber aturan firewall ini jika Anda memperluas rentang IPv4 utama dari subnet cluster. Anda harus membuat aturan firewall masuk yang diperlukan secara manual jika Anda memperluas rentang IPv4 utama subnet cluster.
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-hash]-ipv6-all Hanya untuk cluster jaringan dual-stack. Mengizinkan traffic antara node dan Pod di cluster.

Rentang alamat IP yang sama dialokasikan di subnetIpv6CidrBlock.

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 yang lebih baru dari 1.26.4-gke.500 menggunakan port yang diautentikasi 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:

Nama Tujuan Asal Target (menentukan tujuan) Protokol dan port
k8s-fw-[loadbalancer-hash] Mengizinkan traffic masuk untuk menjangkau Layanan. 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-[cluster-id]-node-http-hc Mengizinkan health check layanan Load Balancer Jaringan passthrough eksternal jika externalTrafficPolicy ditetapkan ke Cluster.
  • 130.211.0.0/22
  • 35.191.0.0/16
  • 209.85.152.0/22
  • 209.85.204.0/22
Alamat IP virtual LoadBalancer TCP: 10256
k8s-[loadbalancer-hash]-http-hc Mengizinkan health check layanan Load Balancer Jaringan passthrough eksternal jika externalTrafficPolicy ditetapkan ke Local.
  • 130.211.0.0/22
  • 35.191.0.0/16
  • 209.85.152.0/22
  • 209.85.204.0/22
Tag node Port TCP ditentukan oleh spec.healthCheckNodePort. Setelan defaultnya adalah nomor port TCP 10256 jika spec.healthCheckNodePort dihilangkan.

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.
  • 130.211.0.0/22
  • 35.191.0.0/16
  • 209.85.152.0/22
  • 209.85.204.0/22
Tag node TCP: 10256
[loadbalancer-hash]-hc Mengizinkan health check layanan Load Balancer Jaringan passthrough internal jika externalTrafficPolicy ditetapkan ke Local.
  • 130.211.0.0/22
  • 35.191.0.0/16
  • 209.85.152.0/22
  • 209.85.204.0/22
Tag node Port TCP ditentukan oleh spec.healthCheckNodePort. Setelan defaultnya adalah nomor port TCP 10256 jika spec.healthCheckNodePort dihilangkan.

Untuk mengetahui detail selengkapnya, lihat Port health check.

k8s2-[cluster-id]-[namespace]-[service-name]-[suffixhash] Mengizinkan traffic masuk untuk menjangkau Layanan jika salah satu hal berikut diaktifkan:
  • Subsetelan GKE.
  • Load Balancer Jaringan passthrough eksternal berbasis layanan backend.
  • 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]-fw Mengizinkan health check Layanan jika externalTrafficPolicy ditetapkan ke Local dan salah satu dari hal berikut diaktifkan:
  • Subsetelan GKE.
  • Load Balancer Jaringan passthrough eksternal berbasis layanan backend.
    • 130.211.0.0/22
    • 35.191.0.0/16
    • 209.85.152.0/22
    • 209.85.204.0/22
    Alamat IP virtual LoadBalancer Port TCP ditentukan oleh spec.healthCheckNodePort. Setelan defaultnya adalah nomor port TCP 10256 jika spec.healthCheckNodePort dihilangkan.

    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:
  • Subsetelan GKE.
  • Load Balancer Jaringan passthrough eksternal berbasis layanan backend.
    • 130.211.0.0/22
    • 35.191.0.0/16
    • 209.85.152.0/22
    • 209.85.204.0/22
    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
    • gkegw1-l7-[network]-[region/global]
    • gkemcg1-l7-[network]-[region/global]

    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.

    Tag node TCP: semua port target container (untuk NEG)

    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 NodePort atau grup endpoint jaringan (NEG).

    Pengontrol Ingress membuat aturan ini saat resource Ingress pertama dibuat. Pengontrol Ingress dapat memperbarui aturan ini jika lebih banyak resource Ingress dibuat.

    Untuk GKE v1.17.13-gke.2600 atau yang lebih baru:
    • 130.211.0.0/22
    • 35.191.0.0/16
    • Rentang subnet khusus proxy yang ditentukan pengguna (untuk Load Balancer Aplikasi internal)
    Tag node TCP: 30000-32767, TCP:80 (untuk Load Balancer Aplikasi internal), TCP: semua port target container (untuk NEG)

    VPC Bersama

    Jika cluster yang terletak di VPC Bersama menggunakan jaringan VPC Bersama, pengontrol Ingress tidak dapat menggunakan akun layanan GKE dalam project layanan untuk membuat dan mengupdate aturan firewall izinkan masuk dalam project host ini. 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 selanjutnya