Untuk menetapkan kebijakan jaringan untuk workload virtual machine (VM) di tingkat namespace project, gunakan resource ProjectNetworkPolicy
, kebijakan jaringan multi-cluster untuk Google Distributed Cloud air-gapped (GDC). Hal ini memungkinkan Anda menentukan kebijakan, yang mengizinkan komunikasi dalam project, antar-project, 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, tentukan 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 dalam proyek dan penampung.
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 transfer data keluar.
Kebijakan berikut memungkinkan workload dalam project PROJECT_1
mengizinkan koneksi dari workload dalam project PROJECT_2
, serta traffic kembali untuk alur yang sama. Jika Anda ingin
mengakses VM di PROJECT_1
dari sumber di dalam
PROJECT_2
, Anda juga dapat menggunakan kebijakan ini.
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 lintas project egress.
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
Untuk mengizinkan traffic ingress di berbagai organisasi, ProjectNetworkPolicy
harus diterapkan yang mengizinkan traffic dari klien eksternal organisasi ke project Anda, misalnya terhubung ke VM menggunakan SSH.
Kebijakan Egress yang sesuai tidak diperlukan untuk traffic balasan. Traffic kembali diizinkan secara implisit.
Jika Anda ingin mengakses VM di PROJECT_1
dari sumber di luar organisasi tempat VM berada, Anda harus menerapkan kebijakan berikut untuk melakukannya. Anda harus mendapatkan dan menggunakan CIDR
yang berisi alamat IP sumber Anda. CIDR
harus dalam notasi network/len
.
Misalnya, 192.0.2.0/21
adalah salah satu yang valid.
Konfigurasi dan terapkan
ProjectNetworkPolicy
Ingress Anda, dengan mengikuti contohkubectl
. Terapkan kebijakan pada semua beban kerja pengguna diPROJECT_1
. Kebijakan ini memungkinkan traffic masuk ke semua host diCIDR
, yang berada di luar organisasi.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-external-traffic spec: policyType: Ingress subject: subjectType: UserWorkload ingress: - from: - ipBlock: cidr: CIDR EOF
Kebijakan jaringan traffic lintas organisasi keluar
Untuk mengaktifkan transfer data keluar ke layanan di luar organisasi, sesuaikan
kebijakan jaringan project Anda, ProjectNetworkPolicy
. Karena Pencegahan
Pencurian Data diaktifkan secara default, ProjectNetworkPolicy
Egress yang disesuaikan akan menampilkan error validasi di kolom status, dan dataplane akan mengabaikannya. Proses ini terjadi sesuai desain.
Seperti yang dinyatakan dalam
Keamanan dan konektivitas,
workload dapat mentransfer data keluar jika Anda mengizinkan eksfiltrasi data untuk project tertentu. Traffic yang Anda izinkan untuk transfer data keluar adalah terjemahan alamat jaringan (NAT) sumber menggunakan alamat IP yang diketahui yang dialokasikan untuk project.
Keamanan dan konektivitas
juga memberikan detail tentang penerapan
(ProjectNetworkPolicy
) kebijakan jaringan project.
Kebijakan Ingress yang sesuai tidak diperlukan untuk traffic balasan. Traffic kembali diizinkan secara implisit.
Aktifkan kebijakan keluar yang disesuaikan:
Konfigurasi dan terapkan Egress yang disesuaikan sendiri
ProjectNetworkPolicy
, dengan mengikuti contohkubectl
. 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 administrator 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
Jalur 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
.