Halaman ini memberikan petunjuk untuk mengonfigurasi kebijakan jaringan traffic intra-project di Google Distributed Cloud (GDC) air-gapped.
Kebijakan jaringan project menentukan aturan masuk atau keluar. Anda dapat menentukan kebijakan yang mengizinkan komunikasi dalam project, antar-project, dan ke alamat IP eksternal.
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 intra-project diperlukan dalam satu zona, lihat Membuat kebijakan intra-project tingkat workload zona tunggal.
Sebelum memulai
Untuk mengonfigurasi kebijakan jaringan traffic intra-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 intra-project
Untuk traffic dalam project, GDC menerapkan kebijakan jaringan project yang telah ditentukan sebelumnya, yaitu kebijakan intra-project, ke setiap project secara default. Secara default, workload di namespace project dapat berkomunikasi satu sama lain tanpa mengekspos apa pun ke resource eksternal.
Secara default, tidak ada kebijakan egress, sehingga traffic keluar diizinkan untuk semua traffic intra-project. Namun, saat Anda menetapkan satu kebijakan keluar, hanya traffic yang ditentukan kebijakan yang diizinkan.
Membuat kebijakan ingress intra-project
Saat membuat project, Anda secara implisit membuat resource ProjectNetworkPolicy
dasar default yang memungkinkan komunikasi dalam project. Kebijakan ini
mengizinkan traffic masuk dari workload lain dalam project yang sama.
Anda dapat menghapus kebijakan default, tetapi perlu diketahui bahwa penghapusan ini akan menolak komunikasi dalam project untuk
semua layanan dan beban kerja dalam project. Untuk menghapus kebijakan, gunakan perintah kubectl delete
:
kubectl --kubeconfig GLOBAL_API_SERVER delete pnp base-policy-allow-intra-project-traffic -n PROJECT
Anda dapat menambahkan kembali kebijakan default dengan menerapkan manifes berikut:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
apiVersion: networking.global.gdc.goog/v1
kind: ProjectNetworkPolicy
metadata:
namespace: PROJECT
name: base-policy-allow-intra-project-traffic
spec:
policyType: Ingress
ingress:
- from:
- projectSelector:
projects:
matchNames:
- PROJECT
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
: nama project Anda.
Membuat kebijakan intra-project egress
Saat Anda menonaktifkan pencegahan eksfiltrasi data
dan menerapkan kebijakan keluar ProjectNetworkPolicy
ke project, seperti
mencegah akses ke resource eksternal, gunakan kebijakan wajib berikut untuk mengizinkan
traffic keluar intra-project:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
apiVersion: networking.global.gdc.goog/v1
kind: ProjectNetworkPolicy
metadata:
namespace: PROJECT
name: allow-intra-project-outbound-traffic
spec:
policyType: Egress
egress:
- to:
- projectSelector:
projects:
matchNames:
- PROJECT
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
: nama project Anda.
Membuat kebijakan intra-project tingkat workload
Kebijakan jaringan tingkat workload menawarkan kontrol terperinci atas komunikasi antar-workload dalam suatu project. Perincian ini memungkinkan kontrol akses jaringan yang lebih ketat, sehingga meningkatkan keamanan dan penggunaan resource.
Membuat kebijakan intra-project tingkat workload ingress
Saat membuat project, Anda secara implisit membuat resource dasar ProjectNetworkPolicy
default yang memungkinkan komunikasi dalam project di antara semua beban kerja. Kebijakan ini
mengizinkan traffic masuk dari workload lain dalam project yang sama.
Untuk membuat kebijakan intra-project tingkat beban kerja ingress, kebijakan dasar default harus dihapus terlebih dahulu. Jika tidak, perilaku yang tidak terduga dapat terjadi.
Untuk menghapus kebijakan dasar default, jalankan perintah berikut:
kubectl --kubeconfig GLOBAL_API_SERVER delete pnp base-policy-allow-intra-project-traffic -n PROJECT
Untuk membuat kebijakan intra-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 name: allow-intra-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 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
: nama project Anda.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 intra-project tingkat workload egress
Untuk membuat kebijakan intra-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 name: allow-intra-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 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
: nama project Anda.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 intra-project tingkat beban kerja 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 intra-project tingkat workload ingress zona tunggal
Saat membuat project, Anda secara implisit membuat resource dasar ProjectNetworkPolicy
default yang memungkinkan komunikasi dalam project di antara semua beban kerja. Kebijakan ini
mengizinkan traffic masuk dari workload lain dalam project yang sama.
Untuk membuat kebijakan intra-project tingkat beban kerja ingress zona tunggal, kebijakan dasar default harus dihapus terlebih dahulu. Jika tidak, perilaku yang tidak terduga dapat terjadi.
Untuk menghapus kebijakan dasar default, jalankan perintah berikut:
kubectl --kubeconfig GLOBAL_API_SERVER delete pnp base-policy-allow-intra-project-traffic -n PROJECT
Untuk membuat kebijakan jaringan traffic intra-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 name: allow-single-zone-intra-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 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
: nama project Anda.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 intra-project level workload traffic keluar satu zona
Untuk membuat kebijakan intra-project tingkat beban kerja egress satu zona, 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 name: allow-single-zone-intra-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 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
: nama project Anda.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.