Membuat kebijakan jaringan tingkat workload

Halaman ini memberikan petunjuk untuk mengonfigurasi kebijakan jaringan tingkat workload di Google Distributed Cloud (GDC) dengan air gap.

Kebijakan jaringan tingkat workload menawarkan kontrol terperinci atas komunikasi antara workload individual dalam suatu project. Perincian ini memungkinkan kontrol akses jaringan yang lebih ketat, sehingga meningkatkan keamanan dan penggunaan resource.

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. Untuk mengetahui informasi selengkapnya, lihat Kebijakan jaringan tingkat workload satu zona.

Membuat kebijakan traffic intra-project tingkat workload

Anda dapat membuat kebijakan traffic intra-project tingkat beban kerja untuk mengaktifkan atau menonaktifkan akses jaringan untuk traffic antar-beban kerja dalam project.

Kebijakan jaringan traffic 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 traffic intra-project tingkat beban kerja, kebijakan dasar default harus dihapus terlebih dahulu. Jika tidak, perilaku yang tidak terduga dapat terjadi.

  1. Untuk menghapus kebijakan dasar default, jalankan perintah berikut:

    kubectl --kubeconfig GLOBAL_API_SERVER delete pnp base-policy-allow-intra-project-traffic -n PROJECT
    
  2. Untuk membuat kebijakan jaringan traffic 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 mengetahui detailnya.
    • PROJECT: nama project tempat Anda ingin mengizinkan traffic masuk intra-project tingkat workload.
    • SUBJECT_LABEL_KEY: kunci label yang digunakan untuk memilih beban kerja sumber. Misalnya, app, tier, atau role.
    • SUBJECT_LABEL_VALUE: nilai yang terkait dengan SUBJECT_LABEL_KEY. Objek ini menentukan workload mana yang menjadi sumber traffic yang diizinkan. Misalnya, jika SUBJECT_LABEL_KEY adalah app, dan SUBJECT_LABEL_VALUE adalah backend, maka workload dengan label app: backend adalah sumber traffic.
    • TARGET_LABEL_KEY: kunci label yang digunakan untuk memilih beban kerja tujuan.
    • TARGET_LABEL_VALUE: nilai yang terkait dengan TARGET_LABEL_KEY. Tindakan ini menentukan workload mana yang menjadi tujuan traffic yang diizinkan.

Membuat kebijakan traffic lintas project tingkat workload

Anda dapat membuat kebijakan traffic lintas project tingkat beban kerja untuk mengaktifkan atau menonaktifkan akses jaringan untuk traffic antar-beban kerja di project yang berbeda.

Kebijakan jaringan traffic lintas project tingkat workload keluar

  • Untuk membuat kebijakan jaringan traffic 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 mengetahui detailnya.
    • PROJECT_1: nama project tempat Anda ingin mengizinkan traffic keluar lintas project tingkat beban kerja.
    • PROJECT_2: nama project tempat Anda ingin mengirim traffic keluar lintas project tingkat beban kerja.
    • SUBJECT_LABEL_KEY: kunci label yang digunakan untuk memilih beban kerja sumber. Misalnya, app, tier, atau role.
    • SUBJECT_LABEL_VALUE: nilai yang terkait dengan SUBJECT_LABEL_KEY. Objek ini menentukan workload mana yang menjadi sumber traffic yang diizinkan. Misalnya, jika SUBJECT_LABEL_KEY adalah app, dan SUBJECT_LABEL_VALUE adalah backend, maka workload dengan label app: backend adalah sumber traffic.
    • TARGET_LABEL_KEY: kunci label yang digunakan untuk memilih beban kerja tujuan.
    • TARGET_LABEL_VALUE: nilai yang terkait dengan TARGET_LABEL_KEY. Tindakan ini menentukan workload mana yang menjadi tujuan traffic yang diizinkan.

Membuat kebijakan traffic intra-project tingkat workload satu zona

Anda dapat membuat kebijakan traffic intra-project level beban kerja zona tunggal untuk mengaktifkan atau menonaktifkan akses jaringan untuk traffic antar-beban kerja dalam project di zona tertentu.

Kebijakan jaringan traffic intra-project tingkat workload masuk 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 jaringan traffic intra-project tingkat beban kerja ingress zona tunggal, kebijakan dasar default harus dihapus terlebih dahulu. Jika tidak, perilaku yang tidak terduga dapat terjadi.

  1. Untuk menghapus kebijakan dasar default, jalankan perintah berikut:

    kubectl --kubeconfig GLOBAL_API_SERVER delete pnp base-policy-allow-intra-project-traffic -n PROJECT
    
  2. 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 mengetahui detailnya.
    • PROJECT: nama project tempat Anda ingin mengizinkan traffic masuk intra-project tingkat beban kerja zona tunggal.
    • SUBJECT_LABEL_KEY: kunci label yang digunakan untuk memilih beban kerja sumber. Misalnya, app, tier, atau role.
    • SUBJECT_LABEL_VALUE: nilai yang terkait dengan SUBJECT_LABEL_KEY. Objek ini menentukan workload mana yang menjadi sumber traffic yang diizinkan. Misalnya, jika SUBJECT_LABEL_KEY adalah app, dan SUBJECT_LABEL_VALUE adalah backend, maka workload dengan label app: backend adalah sumber traffic.
    • TARGET_LABEL_KEY: kunci label yang digunakan untuk memilih beban kerja tujuan.
    • TARGET_LABEL_VALUE: nilai yang terkait dengan TARGET_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, atau region.
    • ZONE_SUBJECT_LABEL_VALUE: nilai yang terkait dengan ZONE_SUBJECT_LABEL_KEY. Menentukan zona mana yang menjadi sumber traffic yang diizinkan. Misalnya, jika ZONE_SUBJECT_LABEL_KEY adalah zone, dan ZONE_SUBJECT_LABEL_VALUE adalah us-central1-a, maka workload dengan label zone: 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 dengan ZONE_TARGET_LABEL_KEY. Tindakan ini menentukan zona mana yang menjadi tujuan traffic yang diizinkan.

Membuat kebijakan traffic lintas project tingkat workload zona tunggal

Anda dapat membuat kebijakan traffic lintas project tingkat beban kerja zona tunggal untuk mengaktifkan atau menonaktifkan akses jaringan untuk traffic antar-beban kerja dalam project yang berbeda di zona tertentu.

Kebijakan jaringan traffic lintas project tingkat workload keluar zona tunggal

  • Untuk membuat kebijakan jaringan traffic intra-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 mengetahui detailnya.
    • PROJECT_1: nama project tempat Anda ingin mengizinkan traffic keluar lintas project tingkat beban kerja zona tunggal.
    • PROJECT_2: nama project tempat Anda ingin mengirim traffic keluar lintas project tingkat beban kerja zona tunggal.
    • SUBJECT_LABEL_KEY: kunci label yang digunakan untuk memilih beban kerja sumber. Misalnya, app, tier, atau role.
    • SUBJECT_LABEL_VALUE: nilai yang terkait dengan SUBJECT_LABEL_KEY. Objek ini menentukan workload mana yang menjadi sumber traffic yang diizinkan. Misalnya, jika SUBJECT_LABEL_KEY adalah app, dan SUBJECT_LABEL_VALUE adalah backend, maka workload dengan label app: backend adalah sumber traffic.
    • TARGET_LABEL_KEY: kunci label yang digunakan untuk memilih beban kerja tujuan.
    • TARGET_LABEL_VALUE: nilai yang terkait dengan TARGET_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, atau region.
    • ZONE_SUBJECT_LABEL_VALUE: nilai yang terkait dengan ZONE_SUBJECT_LABEL_KEY. Menentukan zona mana yang menjadi sumber traffic yang diizinkan. Misalnya, jika ZONE_SUBJECT_LABEL_KEY adalah zone, dan ZONE_SUBJECT_LABEL_VALUE adalah us-central1-a, maka workload dengan label zone: 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 dengan ZONE_TARGET_LABEL_KEY. Tindakan ini menentukan zona mana yang menjadi tujuan traffic yang diizinkan.