Halaman ini memberikan petunjuk untuk mengonfigurasi kebijakan jaringan traffic lintas project di Google Distributed Cloud (GDC) air-gapped.
Traffic lintas project mengacu pada komunikasi antara layanan dan workload dari namespace project yang berbeda, tetapi dalam organisasi yang sama.
Layanan dan workload dalam project diisolasi dari layanan dan workload eksternal secara default. Namun, layanan dan beban kerja dari namespace project yang berbeda dan dalam organisasi yang sama dapat saling berkomunikasi dengan menerapkan kebijakan jaringan traffic lintas project.
Secara default, kebijakan ini berlaku secara global di semua zona. Untuk mengetahui informasi selengkapnya tentang resource global di semesta GDC, lihat Ringkasan multi-zona.
Jika penegakan traffic lintas project diperlukan dalam satu zona, lihat Membuat kebijakan lintas project tingkat workload zona tunggal.
Sebelum memulai
Untuk mengonfigurasi kebijakan jaringan traffic lintas project, Anda harus memiliki hal berikut:
- Peran identitas dan akses yang diperlukan. Untuk mengelola kebijakan project tertentu, Anda memerlukan peran
project-networkpolicy-admin
. Untuk lingkungan multi-zona tempat Anda perlu mengelola kebijakan yang mencakup semua zona, Anda memerlukan peranglobal-project-networkpolicy-admin
. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan peran dan akses yang telah ditetapkan. - Project yang ada. Untuk mengetahui informasi selengkapnya, lihat Membuat project.
Membuat kebijakan lintas project
Anda dapat menentukan kebijakan traffic lintas project masuk atau keluar untuk mengelola komunikasi antar-project.
Membuat kebijakan lintas project ingress
Agar beban kerja atau layanan project mengizinkan koneksi dari beban kerja lain di project lain dalam organisasi Anda, Anda harus mengonfigurasi aturan firewall ingress untuk mengizinkan traffic masuk dari beban kerja project lain.
Kebijakan ini berlaku untuk semua zona di organisasi Anda.
Ikuti langkah-langkah berikut untuk membuat aturan firewall baru dan mengizinkan traffic masuk dari beban kerja di project lain:
Konsol
- Di konsol GDC project yang Anda konfigurasi, buka Networking > Firewall di menu navigasi untuk membuka halaman Firewall.
- Klik Buat di panel tindakan untuk mulai membuat aturan firewall baru.
Di halaman Detail aturan firewall, isi informasi berikut:
- Di kolom Nama, masukkan nama yang valid untuk aturan firewall Anda.
- Di bagian Direction of traffic, pilih Ingress untuk mengizinkan traffic masuk dari beban kerja di project lain.
- Di bagian Target, pilih salah satu opsi berikut:
- Semua beban kerja pengguna: mengizinkan koneksi ke beban kerja project yang Anda konfigurasi.
- Layanan: menunjukkan bahwa aturan firewall ini menargetkan layanan tertentu dalam project yang Anda konfigurasi.
- Jika target Anda adalah layanan project, pilih nama layanan dari daftar layanan yang tersedia di menu drop-down Layanan.
- Di bagian Dari, pilih salah satu dari dua opsi berikut:
- Semua project: mengizinkan koneksi dari workload di semua project dalam organisasi yang sama.
- Project lain dan Semua workload pengguna: mengizinkan koneksi dari workload di project lain dalam organisasi yang sama.
- Jika Anda hanya ingin mentransfer beban kerja dari project lain, pilih project yang dapat Anda akses dari daftar project di menu drop-down Project ID.
- Jika target Anda adalah semua workload pengguna, pilih salah satu opsi berikut di bagian Protocols and ports:
- Izinkan semua: mengizinkan koneksi menggunakan protokol atau port apa pun.
- Protokol dan port yang ditentukan: mengizinkan koneksi hanya menggunakan protokol dan port yang Anda tentukan di kolom yang sesuai untuk aturan firewall ingress.
Di halaman Firewall rule details, klik Create.
Anda kini telah mengizinkan koneksi dari workload project lain dalam organisasi yang sama. Setelah membuat aturan firewall, aturan tersebut akan terlihat dalam tabel di halaman Firewall.
API
Kebijakan berikut memungkinkan workload di project PROJECT_1
mengizinkan koneksi dari workload di project
PROJECT_2
, serta traffic kembali untuk alur yang sama. Terapkan kebijakan:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
apiVersion: networking.global.gdc.goog/v1
kind: ProjectNetworkPolicy
metadata:
namespace: PROJECT_1
name: allow-inbound-traffic-from-PROJECT_2
spec:
policyType: Ingress
subject:
subjectType: UserWorkload
ingress:
- from:
- projectSelector:
projects:
matchNames:
- PROJECT_2
EOF
Ganti GLOBAL_API_SERVER
dengan jalur kubeconfig server API global. Untuk mengetahui informasi selengkapnya, lihat Server API global dan zonal.
Jika Anda belum membuat file kubeconfig untuk server API, lihat Login untuk mengetahui detailnya.
Perintah sebelumnya mengizinkan PROJECT_2
untuk membuka
PROJECT_1
, tetapi tidak mengizinkan koneksi yang dimulai dari
PROJECT_1
ke PROJECT_2
. Untuk
kasus terakhir, Anda memerlukan kebijakan timbal balik di project PROJECT_2
. Menerapkan
kebijakan timbal balik:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
apiVersion: networking.global.gdc.goog/v1
kind: ProjectNetworkPolicy
metadata:
namespace: PROJECT_2
name: allow-inbound-traffic-from-PROJECT_1
spec:
policyType: Ingress
subject:
subjectType: UserWorkload
ingress:
- from:
- projectSelector:
projects:
matchNames:
- PROJECT_1
EOF
Koneksi kini diizinkan ke dan dari PROJECT_1
dan PROJECT_2
.
Membuat kebijakan lintas project egress
Saat Anda memberikan kebijakan traffic lintas project masuk untuk mengizinkan beban kerja dalam satu project mengizinkan koneksi dari beban kerja dalam project lain, tindakan ini juga memberikan traffic kembali untuk alur yang sama. Oleh karena itu, Anda tidak memerlukan kebijakan jaringan traffic lintas project keluar di project asli.
Misalnya, jika Anda membuat kebijakan yang mengizinkan traffic dari PROJECT_1
ke PROJECT_2
dan perlindungan eksfiltrasi data dinonaktifkan, Anda harus membuat kebijakan ingress di PROJECT_2
dan kebijakan egress di PROJECT_1
. Namun, paket balasan dikecualikan dari penegakan kebijakan, sehingga Anda tidak memerlukan kebijakan tambahan.
Selesaikan langkah-langkah berikut untuk membuat aturan firewall baru dan mengizinkan traffic keluar dari beban kerja dalam project:
- Di konsol GDC project yang Anda konfigurasi, buka Networking > Firewall di menu navigasi untuk membuka halaman Firewall.
- Klik Buat di panel tindakan untuk mulai membuat aturan firewall baru.
Di halaman Detail aturan firewall, isi informasi berikut:
- Di kolom Nama, masukkan nama yang valid untuk aturan firewall Anda.
- Di bagian Direction of traffic, pilih Egress untuk menunjukkan bahwa aturan firewall ini mengontrol traffic keluar.
- Di bagian Target, pilih salah satu opsi berikut:
- Semua beban kerja pengguna: mengizinkan koneksi dari beban kerja project yang Anda konfigurasi.
- Layanan: menunjukkan bahwa aturan firewall ini menargetkan layanan tertentu dalam project yang Anda konfigurasi.
- Jika target Anda adalah layanan project, pilih nama layanan dari daftar layanan yang tersedia di menu drop-down Layanan.
- Di bagian Ke, pilih salah satu dari dua opsi berikut:
- Semua project: mengizinkan koneksi ke workload di semua project dalam organisasi yang sama.
- Project lain dan Semua workload pengguna: mengizinkan koneksi ke workload di project lain dalam organisasi yang sama.
- Jika Anda hanya ingin mentransfer beban kerja ke project lain, pilih project yang dapat Anda akses dari daftar project di menu drop-down Project ID.
- Jika target Anda adalah semua workload pengguna, pilih salah satu opsi berikut di bagian Protocols and ports:
- Izinkan semua: mengizinkan koneksi menggunakan protokol atau port apa pun.
- Protokol dan port yang ditentukan: mengizinkan koneksi hanya menggunakan protokol dan port yang Anda tentukan di kolom yang sesuai untuk aturan firewall keluar.
Di halaman Firewall rule details, klik Create.
Sekarang Anda telah mengizinkan koneksi ke workload project lain dalam organisasi yang sama. Setelah membuat aturan firewall, aturan tersebut akan terlihat dalam tabel di halaman Firewall.
Membuat kebijakan lintas project tingkat workload
Kebijakan jaringan tingkat workload menawarkan kontrol terperinci atas komunikasi antar-workload di seluruh project. Perincian ini memungkinkan kontrol akses jaringan yang lebih ketat, sehingga meningkatkan keamanan dan penggunaan resource.
Membuat kebijakan lintas project tingkat workload ingress
Untuk membuat kebijakan lintas project tingkat workload ingress, buat dan terapkan resource kustom berikut:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ProjectNetworkPolicy metadata: namespace: PROJECT_1 name: allow-cross-project-inbound-traffic-from-target-to-subject spec: policyType: Ingress subject: subjectType: UserWorkload workloadSelector: matchLabels: SUBJECT_LABEL_KEY: SUBJECT_LABEL_VALUE ingress: - from: - projectSelector: projects: matchNames: - PROJECT_2 workloads: matchLabels: TARGET_LABEL_KEY: TARGET_LABEL_VALUE EOF
Ganti kode berikut:
GLOBAL_API_SERVER
: jalur kubeconfig server API global. Untuk mengetahui informasi selengkapnya, lihat Server API global dan zonal. Jika Anda belum membuat file kubeconfig untuk server API, lihat Login untuk detailnya.PROJECT_1
: Nama project yang menerima traffic.PROJECT_2
: Nama project asal traffic.SUBJECT_LABEL_KEY
: kunci label yang digunakan untuk memilih beban kerja sumber. Misalnya,app
,tier
, ataurole
.SUBJECT_LABEL_VALUE
: nilai yang terkait denganSUBJECT_LABEL_KEY
. Objek ini menentukan workload mana yang menjadi sumber traffic yang diizinkan. Misalnya, jikaSUBJECT_LABEL_KEY
adalahapp
, danSUBJECT_LABEL_VALUE
adalahbackend
, maka workload dengan labelapp: backend
adalah sumber traffic.TARGET_LABEL_KEY
: kunci label yang digunakan untuk memilih beban kerja tujuan.TARGET_LABEL_VALUE
: nilai yang terkait denganTARGET_LABEL_KEY
. Tindakan ini menentukan workload mana yang menjadi tujuan traffic yang diizinkan.
Membuat kebijakan lintas project tingkat workload untuk traffic keluar
Untuk membuat kebijakan lintas project tingkat beban kerja egress, buat dan terapkan resource kustom berikut:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ProjectNetworkPolicy metadata: namespace: PROJECT_1 name: allow-cross-project-outbound-traffic-to-subject-from-target spec: policyType: Egress subject: subjectType: UserWorkload workloadSelector: matchLabels: SUBJECT_LABEL_KEY: SUBJECT_LABEL_VALUE egress: - to: - projectSelector: projects: matchNames: - PROJECT_2 workloads: matchLabels: TARGET_LABEL_KEY: TARGET_LABEL_VALUE EOF
Ganti kode berikut:
GLOBAL_API_SERVER
: jalur kubeconfig server API global. Untuk mengetahui informasi selengkapnya, lihat Server API global dan zonal. Jika Anda belum membuat file kubeconfig untuk server API, lihat Login untuk detailnya.PROJECT_1
: Nama project yang mengirim traffic.PROJECT_2
: Nama project yang menerima traffic.SUBJECT_LABEL_KEY
: kunci label yang digunakan untuk memilih beban kerja sumber. Misalnya,app
,tier
, ataurole
.SUBJECT_LABEL_VALUE
: nilai yang terkait denganSUBJECT_LABEL_KEY
. Objek ini menentukan workload mana yang menjadi sumber traffic yang diizinkan. Misalnya, jikaSUBJECT_LABEL_KEY
adalahapp
, danSUBJECT_LABEL_VALUE
adalahbackend
, maka workload dengan labelapp: backend
adalah sumber traffic.TARGET_LABEL_KEY
: kunci label yang digunakan untuk memilih beban kerja tujuan.TARGET_LABEL_VALUE
: nilai yang terkait denganTARGET_LABEL_KEY
. Tindakan ini menentukan workload mana yang menjadi tujuan traffic yang diizinkan.
Membuat kebijakan lintas project tingkat workload zona tunggal
Kebijakan jaringan tingkat beban kerja dapat menerapkan PNP di satu zona. Label tertentu dapat ditambahkan ke workload dalam satu zona, sehingga Anda dapat mengontrol komunikasi antara workload individual dalam satu project atau di project yang berbeda untuk zona tersebut.
Membuat kebijakan lintas project tingkat workload ingress zona tunggal
Untuk membuat kebijakan lintas project tingkat beban kerja ingress zona tunggal, buat dan terapkan resource kustom berikut:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ProjectNetworkPolicy metadata: namespace: PROJECT_1 name: allow-single-zone-cross-project-inbound-traffic-from-target-to-subject spec: policyType: Ingress subject: subjectType: UserWorkload workloadSelector: matchLabels: SUBJECT_LABEL_KEY: SUBJECT_LABEL_VALUE ZONE_SUBJECT_LABEL_KEY: ZONE_SUBJECT_LABEL_VALUE ingress: - from: - projectSelector: projects: matchNames: - PROJECT_2 workloads: matchLabels: TARGET_LABEL_KEY: TARGET_LABEL_VALUE ZONE_TARGET_LABEL_KEY: ZONE_TARGET_LABEL_VALUE EOF
Ganti kode berikut:
GLOBAL_API_SERVER
: jalur kubeconfig server API global. Untuk mengetahui informasi selengkapnya, lihat Server API global dan zonal. Jika Anda belum membuat file kubeconfig untuk server API, lihat Login untuk detailnya.PROJECT_1
: Nama project yang menerima traffic.PROJECT_2
: Nama project asal traffic.SUBJECT_LABEL_KEY
: kunci label yang digunakan untuk memilih beban kerja sumber. Misalnya,app
,tier
, ataurole
.SUBJECT_LABEL_VALUE
: nilai yang terkait denganSUBJECT_LABEL_KEY
. Objek ini menentukan workload mana yang menjadi sumber traffic yang diizinkan. Misalnya, jikaSUBJECT_LABEL_KEY
adalahapp
, danSUBJECT_LABEL_VALUE
adalahbackend
, maka workload dengan labelapp: backend
adalah sumber traffic.TARGET_LABEL_KEY
: kunci label yang digunakan untuk memilih beban kerja tujuan.TARGET_LABEL_VALUE
: nilai yang terkait denganTARGET_LABEL_KEY
. Tindakan ini menentukan workload mana yang menjadi tujuan traffic yang diizinkan.ZONE_SUBJECT_LABEL_KEY
: kunci label yang digunakan untuk memilih zona sumber. Misalnya,zone
, atauregion
.ZONE_SUBJECT_LABEL_VALUE
: nilai yang terkait denganZONE_SUBJECT_LABEL_KEY
. Menentukan zona mana yang menjadi sumber traffic yang diizinkan. Misalnya, jikaZONE_SUBJECT_LABEL_KEY
adalahzone
, danZONE_SUBJECT_LABEL_VALUE
adalahus-central1-a
, maka workload dengan labelzone: us-central1-a
adalah sumber traffic.ZONE_TARGET_LABEL_KEY
: kunci label yang digunakan untuk memilih zona tujuan.ZONE_TARGET_LABEL_VALUE
: nilai yang terkait denganZONE_TARGET_LABEL_KEY
. Tindakan ini menentukan zona mana yang menjadi tujuan traffic yang diizinkan.
Membuat kebijakan lintas project tingkat workload egress zona tunggal
Untuk membuat kebijakan lintas project tingkat beban kerja egress zona tunggal, buat dan terapkan resource kustom berikut:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ProjectNetworkPolicy metadata: namespace: PROJECT_1 name: allow-single-zone-cross-project-outbound-traffic-to-subject-from-target spec: policyType: Egress subject: subjectType: UserWorkload workloadSelector: matchLabels: SUBJECT_LABEL_KEY: SUBJECT_LABEL_VALUE ZONE_SUBJECT_LABEL_KEY: ZONE_SUBJECT_LABEL_VALUE egress: - to: - projectSelector: projects: matchNames: - PROJECT_2 workloads: matchLabels: TARGET_LABEL_KEY: TARGET_LABEL_VALUE ZONE_TARGET_LABEL_KEY: ZONE_TARGET_LABEL_VALUE EOF
Ganti kode berikut:
GLOBAL_API_SERVER
: jalur kubeconfig server API global. Untuk mengetahui informasi selengkapnya, lihat Server API global dan zonal. Jika Anda belum membuat file kubeconfig untuk server API, lihat Login untuk detailnya.PROJECT_1
: Nama project yang mengirim traffic.PROJECT_2
: Nama project yang menerima traffic.SUBJECT_LABEL_KEY
: kunci label yang digunakan untuk memilih beban kerja sumber. Misalnya,app
,tier
, ataurole
.SUBJECT_LABEL_VALUE
: nilai yang terkait denganSUBJECT_LABEL_KEY
. Objek ini menentukan workload mana yang menjadi sumber traffic yang diizinkan. Misalnya, jikaSUBJECT_LABEL_KEY
adalahapp
, danSUBJECT_LABEL_VALUE
adalahbackend
, maka workload dengan labelapp: backend
adalah sumber traffic.TARGET_LABEL_KEY
: kunci label yang digunakan untuk memilih beban kerja tujuan.TARGET_LABEL_VALUE
: nilai yang terkait denganTARGET_LABEL_KEY
. Tindakan ini menentukan workload mana yang menjadi tujuan traffic yang diizinkan.ZONE_SUBJECT_LABEL_KEY
: kunci label yang digunakan untuk memilih zona sumber. Misalnya,zone
, atauregion
.ZONE_SUBJECT_LABEL_VALUE
: nilai yang terkait denganZONE_SUBJECT_LABEL_KEY
. Menentukan zona mana yang menjadi sumber traffic yang diizinkan. Misalnya, jikaZONE_SUBJECT_LABEL_KEY
adalahzone
, danZONE_SUBJECT_LABEL_VALUE
adalahus-central1-a
, maka workload dengan labelzone: us-central1-a
adalah sumber traffic.ZONE_TARGET_LABEL_KEY
: kunci label yang digunakan untuk memilih zona tujuan.ZONE_TARGET_LABEL_VALUE
: nilai yang terkait denganZONE_TARGET_LABEL_KEY
. Tindakan ini menentukan zona mana yang menjadi tujuan traffic yang diizinkan.