Untuk menetapkan kebijakan jaringan untuk workload virtual machine (VM) di tingkat namespace project, gunakan resource ProjectNetworkPolicy
, kebijakan jaringan multi-cluster untuk perlengkapan terisolasi Google Distributed Cloud (GDC). Hal ini memungkinkan
Anda menentukan kebijakan, yang memungkinkan komunikasi dalam project, antarproject, dan ke alamat IP eksternal.
Untuk traffic dalam project, GDC menerapkan kebijakan jaringan project yang telah ditentukan sebelumnya, yaitu kebijakan intra-project, ke setiap project secara default. Untuk mengaktifkan dan mengontrol traffic di seluruh project dalam organisasi yang sama, Anda menentukan kebijakan lintas project. Jika ada beberapa kebijakan, GDC akan menggabungkan aturan untuk setiap project secara aditif. GDC juga mengizinkan traffic jika setidaknya salah satu aturan cocok.
Meminta izin dan akses
Untuk melakukan tugas yang tercantum di halaman ini, Anda harus memiliki peran Project NetworkPolicy Admin. Minta Admin IAM Project Anda untuk memberi Anda peran Project NetworkPolicy Admin (project-networkpolicy-admin
) di namespace project tempat VM berada.
Traffic intra-project
Secara default, workload VM di namespace project memiliki kemampuan untuk berkomunikasi satu sama lain tanpa mengekspos layanan ke dunia luar, meskipun VM adalah bagian dari cluster yang berbeda dalam project yang sama.
Kebijakan jaringan traffic intra-project ingress
Saat membuat project, Anda membuat ProjectNetworkPolicy
dasar default di
server Management API untuk mengizinkan komunikasi dalam project. Kebijakan ini mengizinkan
traffic ingress dari workload lain dalam project yang sama. Anda dapat menghapusnya, tetapi
berhati-hatilah jika melakukannya, karena tindakan ini akan menolak komunikasi beban kerja intraproject dan container.
Kebijakan jaringan traffic intra-project keluar
Secara default, Anda tidak perlu melakukan tindakan apa pun terkait keluar. Hal ini karena jika tidak ada kebijakan keluar, semua traffic diizinkan. Namun, saat Anda menetapkan satu kebijakan, hanya traffic yang ditentukan kebijakan yang diizinkan.
Saat Anda menonaktifkan Pencegahan Pencurian Data
dan menerapkan ProjectNetworkPolicy
keluar ke project, seperti
mencegah akses ke resource eksternal, gunakan kebijakan yang diperlukan untuk
mengizinkan keluar dalam project:
kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f - <<EOF
apiVersion: networking.gdc.goog/v1
kind: ProjectNetworkPolicy
metadata:
namespace: PROJECT_1
name: allow-intra-project-egress-traffic
spec:
policyType: Egress
ingress:
- from:
- projects:
matchNames:
- PROJECT_1
EOF
Traffic lintas project (dalam organisasi)
Beban kerja VM dari namespace project yang berbeda tetapi dalam organisasi yang sama dapat saling berkomunikasi dengan menerapkan kebijakan jaringan lintas project.
Kebijakan jaringan traffic lintas project ingress
Agar workload project mengizinkan koneksi dari workload lain di project lain, Anda harus mengonfigurasi kebijakan Ingress untuk mengizinkan workload project lain melakukan ingress.
Kebijakan berikut memungkinkan workload dalam project PROJECT_1
mengizinkan koneksi dari workload dalam project PROJECT_2
, serta traffic kembali untuk alur yang sama. Jalankan perintah berikut untuk menerapkan kebijakan:
kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f - <<EOF
apiVersion: networking.gdc.goog/v1
kind: ProjectNetworkPolicy
metadata:
namespace: PROJECT_1
name: allow-ingress-traffic-from-PROJECT_2
spec:
policyType: Ingress
subject:
subjectType: UserWorkload
ingress:
- from:
- projects:
matchNames:
- PROJECT_2
EOF
Perintah sebelumnya mengizinkan PROJECT_2
untuk membuka
PROJECT_1
, tetapi tidak mengizinkan koneksi yang dimulai dari
PROJECT_1
ke PROJECT_2
.
Untuk yang terakhir, Anda memerlukan kebijakan timbal balik di project PROJECT_2
. Jalankan perintah berikut untuk menerapkan kebijakan timbal balik:
kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f - <<EOF
apiVersion: networking.gdc.goog/v1
kind: ProjectNetworkPolicy
metadata:
namespace: PROJECT_2
name: allow-ingress-traffic-from-PROJECT_1
spec:
policyType: Ingress
subject:
subjectType: UserWorkload
ingress:
- from:
- projects:
matchNames:
- PROJECT_1
EOF
Anda kini telah mengizinkan koneksi yang dimulai ke dan dari
PROJECT_1
dan PROJECT_2
.
Gunakan definisi berikut untuk variabel Anda.
Variabel | Definisi |
---|---|
MANAGEMENT_API_SERVER | Jalur server Management API kubeconfig . |
PROJECT_1 | Nama project GDC yang sesuai dengan PROJECT_1 dalam contoh. |
PROJECT_2 | Nama project GDC yang sesuai dengan PROJECT_2 dalam contoh. |
Kebijakan jaringan traffic lintas project keluar
Saat Anda memberikan kebijakan traffic lintas project ingress untuk mengaktifkan workload di satu project, PROJECT_1
, agar mengizinkan koneksi dari workload di project lain, PROJECT_2
, hal ini juga memberikan traffic kembali untuk alur yang sama. Oleh karena itu, Anda tidak memerlukan kebijakan jaringan traffic keluar lintas project.
Traffic lintas organisasi
Untuk menghubungkan workload VM ke tujuan di luar project Anda yang berada di organisasi yang berbeda memerlukan persetujuan eksplisit. Persetujuan tersebut disebabkan oleh Pencegahan Pemindahan Data Secara Tidak Sah, yang diaktifkan GDC secara default dan mencegah project memiliki egress ke workload di luar organisasi tempat project berada. Petunjuk untuk menambahkan kebijakan keluar tertentu dan mengaktifkan pencurian data adalah sebagai berikut di bagian ini.
Kebijakan jaringan traffic lintas organisasi ingress
Setelah mengonfigurasi kebijakan jaringan keluar lintas organisasi, Anda tidak perlu memberikan akses masuk. Traffic keluar yang diizinkan dari workload di luar organisasi Anda melewati load balancer (LB) dan traffic keluar tersebut adalah terjemahan alamat jaringan (NAT) sumber menggunakan alamat IP yang telah Anda alokasikan untuk project.
Kebijakan jaringan traffic lintas organisasi keluar
Untuk mengaktifkan traffic keluar ke layanan di luar organisasi, sesuaikan kebijakan jaringan project Anda, ProjectNetworkPolicy
. Namun, karena Pencegahan
Pencurian Data diaktifkan secara default, ProjectNetworkPolicy
Egress yang disesuaikan akan menampilkan error validasi di kolom status, dan dataplane akan mengabaikannya. Hal ini terjadi sesuai desain.
Beban kerja dapat keluar saat Anda mengizinkan eksfiltrasi data untuk project tertentu. Traffic yang Anda izinkan untuk keluar adalah terjemahan alamat jaringan (NAT) sumber menggunakan alamat IP terkenal yang dialokasikan untuk project.
Petunjuk ini menunjukkan cara mengaktifkan kebijakan traffic keluar yang disesuaikan:
Konfigurasi dan terapkan Egress yang disesuaikan sendiri
ProjectNetworkPolicy
, dengan mengikuti contoh CLIkubectl
. Terapkan kebijakan pada semua workload pengguna diPROJECT_1
. Kebijakan ini mengizinkan traffic keluar ke semua host diCIDR
, yang berada di luar organisasi. Upaya pertama Anda menyebabkan error status yang diperlukan, yang memang dimaksudkan.Terapkan konfigurasi
ProjectNetworkPolicy
Anda:kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f - <<EOF apiVersion: networking.gdc.goog/v1 kind: ProjectNetworkPolicy metadata: namespace: PROJECT_1 name: allow-egress-traffic-to-NAME spec: policyType: Egress subject: subjectType: UserWorkload egress: - to: - ipBlock: cidr: CIDR EOF
Setelah selesai, konfirmasi bahwa Anda melihat error validasi dalam status Anda.
Meminta pengguna admin untuk menonaktifkan Pencegahan Pemindahan Data yang Tidak Sah. Tindakan ini mengaktifkan konfigurasi Anda, sekaligus mencegah semua egress lainnya.
Periksa
ProjectNetworkPolicy
yang baru saja Anda buat dan verifikasi bahwa error di kolom status validasi sudah tidak ada, dan statusReady
adalahTrue
, yang menunjukkan bahwa kebijakan Anda sudah berlaku:kubectl --kubeconfig MANAGEMENT_API_SERVER get projectnetworkpolicy allow-egress-traffic-to-NAME -n PROJECT_1 -o yaml
Ganti variabel menggunakan definisi berikut.
Variabel Definisi MANAGEMENT_API_SERVER
File kubeconfig
server Management API.PROJECT_1
Nama project GDC. CIDR
Blok Classless Inter-Domain Routing (CIDR) tujuan yang diizinkan. NAME
Nama yang terkait dengan tujuan. Setelah Anda menerapkan kebijakan ini, dan selama Anda belum menentukan kebijakan keluar lainnya, semua traffic keluar lainnya akan ditolak untuk
PROJECT_1
.