Merutekan traffic keluar sekitar melalui Secure Web Proxy

Halaman ini menunjukkan cara mengonfigurasi pemilihan rute traffic keluar untuk workload yang berjalan di jaringan ambient Google Kubernetes Engine (GKE) ke gateway Secure Web Proxy (SWP).

Dengan merutekan traffic keluar melalui gateway Secure Web Proxy, Anda dapat menerapkan kebijakan keamanan egress terpusat—seperti pemfilteran URL, daftar yang diizinkan domain, dan pemeriksaan TLS—tanpa mengubah kode aplikasi. Proxy node Lapisan 4 memblokir traffic keluar di luar Pod aplikasi, sehingga memberikan isolasi keamanan di luar Pod meskipun container workload disusupi.

Arsitektur dan alur traffic

Dalam model deployment ini, Anda mempertahankan kepemilikan infrastruktur, termasuk cluster GKE, instance Secure Web Proxy, dan endpoint Private Service Connect (PSC) (untuk deployment lintas VPC).

Alur traffic keluar beroperasi sebagai berikut:

  1. Pod workload memulai traffic keluar ke endpoint eksternal atau tujuan internet.
  2. Proxy node ambient Lapisan 4 lokal mencegat permintaan keluar pada node.
  3. Proxy node membuat tunnel HTTP CONNECT ke gateway egress.
  4. Jika Secure Web Proxy berada di jaringan VPC yang sama, traffic akan terhubung langsung ke gateway. Jika Secure Web Proxy berada di jaringan VPC yang berbeda, traffic akan melintasi Lampiran Layanan PSC.
  5. Secure Web Proxy menghentikan tunnel, menerapkan kebijakan keamanan egress yang dikonfigurasi, dan meneruskan permintaan yang diizinkan ke tujuan.

Batasan

Sebelum menyiapkan perutean traffic keluar Secure Web Proxy, tinjau batasan berikut dalam pratinjau:

  • Kebijakan di seluruh namespace: Kebijakan perutean traffic keluar hanya berlaku di tingkat namespace. Pemilihan Pod terperinci menggunakan pemilih label tidak didukung.
  • Pemfilteran nama host memerlukan pemeriksaan TLS: Kebijakan Secure Web Proxy hanya dapat memfilter traffic keluar berdasarkan alamat IP, kecuali jika pemeriksaan TLS diaktifkan.
  • Workload Identity: Jaringan ambient GKE mendukung Workload Identity standar. Kumpulan Identitas Agen Terkelola tidak didukung untuk pratinjau ini.
  • Autentikasi: Koneksi antara proxy node ambient dan Secure Web Proxy melewati verifikasi sertifikat server. Permintaan CONNECT menyertakan token tidak terikat bersama dengan sertifikat klien.
  • Pembuatan ulang resource pada update konfigurasi: Perubahan yang dilakukan pada instance Secure Web Proxy atau konfigurasi PSC yang ada tidak diterapkan secara otomatis. Jika Anda memperbarui konfigurasi Secure Web Proxy atau PSC, Anda harus menghapus dan membuat ulang resource GCPEgressPolicy dan instance Secure Web Proxy untuk menerapkan perubahan.
  • Trust anchor pemeriksaan TLS: GKE tidak otomatis memasukkan sertifikat CA pribadi Secure Web Proxy ke dalam container workload. Jika menggunakan pemeriksaan TLS, Anda harus menginstal sertifikat kepercayaan secara manual ke dalam image container.

Prasyarat

Sebelum mengonfigurasi perutean traffic keluar, pastikan Anda memiliki hal berikut:

  • Cluster GKE dengan jaringan ambien yang diaktifkan. Untuk mengetahui petunjuknya, lihat Menyiapkan Ambient Networking GKE.
  • Instance Secure Web Proxy yang di-deploy dengan serverTlsPolicy yang dikonfigurasi dengan clientValidationMode: ALLOW_INVALID_OR_MISSING_CLIENT_CERT di project atau VPC bersamaCloud de Confiance by S3NS Anda.
  • Jika Secure Web Proxy berada di jaringan VPC yang berbeda dengan cluster GKE Anda:
    • Lampiran Layanan PSC yang dibuat untuk Secure Web Proxy.
    • Endpoint Konsumen PSC yang dikonfigurasi di jaringan VPC cluster GKE Anda.

Untuk menyelesaikan langkah-langkah ini, Anda harus memiliki peran berikut:

  • Secure Web Proxy / Network Services: networkservices.gateways.* (atau roles/networkservices.admin) untuk mengonfigurasi resource gateway Secure Web Proxy.
  • Pengelolaan PSC (khusus deployment lintas VPC): compute.networkAttachments.list (atau roles/compute.networkAdmin) untuk mengelola koneksi Private Service Connect.
  • Pengelolaan GKE: roles/container.clusterAdmin untuk men-deploy resource kustom (GCPBackend, GCPEgressPolicy).

Mengonfigurasi kepercayaan untuk pemeriksaan TLS

Jika kebijakan Secure Web Proxy Anda menggunakan pemeriksaan TLS untuk memeriksa traffic keluar yang dienkripsi, proxy akan membuat sertifikat yang ditandatangani oleh Certificate Authority (CA) pribadinya untuk meniru identitas tujuan eksternal.

Aplikasi workload Anda harus memercayai sertifikat CA pribadi yang ditampilkan oleh Secure Web Proxy. Karena GKE tidak memasukkan sertifikat ini secara otomatis, Anda harus menginstal sertifikat CA SWP (trust anchor) ke dalam trust store container Anda.

Untuk menambahkan sertifikat CA ke image container, sertakan baris berikut dalam Dockerfile Anda:

COPY swp-ca-cert.pem /usr/local/share/ca-certificates/swp-ca-cert.crt
RUN update-ca-certificates

Menentukan endpoint gateway

Langkah pertama dalam mengonfigurasi perutean egress ambient adalah membuat endpoint gateway, yang menentukan endpoint Secure Web Proxy dalam cluster GKE Anda dan memberi tahu jaringan ambient tentang lokasi proxy.

Untuk menentukan URI Secure Web Proxy atau Lampiran Layanan Private Service Connect (PSC), buat resource kustom GCPBackend di cluster GKE Anda:

VPC yang sama

  1. Simpan manifes berikut sebagai swp-backend.yaml:

    apiVersion: networking.gke.io/v1
    kind: GCPBackend
    metadata:
      name: swp-backend
      namespace: ambient-test
    spec:
      serviceUris:
      - //networkservices.googleapis.com/projects/PROJECT_ID/locations/REGION/gateways/SWP_NAME
    

    Ganti kode berikut:

    • ambient-test: namespace yang terdaftar di jaringan ambien.
    • PROJECT_ID: Project ID Cloud de Confiance by S3NS Anda.
    • REGION: region tempat Secure Web Proxy Anda di-deploy.
    • SWP_NAME: nama Secure Web Proxy Anda.
  2. Terapkan resource GCPBackend:

    kubectl apply -f swp-backend.yaml
    

Lintas VPC

  1. Simpan manifes berikut sebagai swp-backend.yaml:

    apiVersion: networking.gke.io/v1
    kind: GCPBackend
    metadata:
      name: swp-backend
      namespace: ambient-test
    spec:
      serviceUris:
      - //compute.googleapis.com/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME
    

    Ganti kode berikut:

    • ambient-test: namespace yang terdaftar di jaringan ambien.
    • PROJECT_ID: Project ID Cloud de Confiance by S3NS Anda.
    • REGION: region tempat Lampiran Layanan PSC Anda di-deploy.
    • ATTACHMENT_NAME: nama Lampiran Layanan PSC Anda, jika Secure Web Proxy Anda berada di jaringan VPC yang berbeda.
  2. Terapkan resource GCPBackend:

    kubectl apply -f swp-backend.yaml
    

Mengonfigurasi pengalihan traffic keluar

Buat resource kustom GCPEgressPolicy untuk merutekan traffic keluar dari namespace ke gateway Secure Web Proxy. Hal ini memberikan sinyal yang diperlukan agar proxy node ambient dapat membuat tunnel HTTP CONNECT ke Secure Web Proxy, yang diperlukan untuk pemilihan rute traffic keluar.

  1. Simpan manifes berikut sebagai swp-egress-policy.yaml:

    apiVersion: networking.gke.io/v1
    kind: GCPEgressPolicy
    metadata:
      name: swp-egress-policy
      namespace: ambient-test
    spec:
      to:
        excludeCIDRRanges:
        - "CLUSTER_CONTROL_PLANE_CIDR"
      proxyRef:
        group: networking.gke.io
        kind: GCPBackend
        name: swp-backend
    

    Ganti kode berikut:

    • ambient-test: Namespace yang terdaftar dalam jaringan ambien.
    • CLUSTER_CONTROL_PLANE_CIDR: Rentang CIDR untuk komunikasi internal yang harus mengabaikan Secure Web Proxy (seperti rentang alamat bidang kontrol GKE atau subnet VPC internal).
  2. Terapkan resource GCPEgressPolicy:

    kubectl apply -f swp-egress-policy.yaml
    

    Setelah kebijakan diterapkan, traffic keluar dari workload di namespace akan dialihkan ke Secure Web Proxy.

Pemecahan masalah

Gunakan panduan berikut untuk mendiagnosis dan menyelesaikan masalah terkait perutean traffic keluar ambient:

  • Traffic tidak mencapai Secure Web Proxy:
    • Untuk deployment VPC yang sama, pastikan resource GCPBackend mengarah ke URI gateway Secure Web Proxy yang benar.
    • Untuk deployment lintas VPC:
    • Pastikan resource GCPBackend mengarah ke URI Lampiran Layanan PSC yang benar.
    • Pastikan endpoint PSC dibuat dan diterima di VPC produsen.
    • Pastikan excludeCIDRRanges di GCPEgressPolicy tidak secara tidak sengaja mencocokkan traffic tujuan Anda.
  • Kegagalan koneksi mTLS:
    • Pastikan Secure Web Proxy dikonfigurasi untuk menerima koneksi dari proxy node.
  • Error sertifikat pemeriksaan TLS:
    • Jika permintaan klien gagal dengan error validasi sertifikat (seperti x509: certificate signed by unknown authority), pastikan sertifikat CA Secure Web Proxy diinstal dengan benar di penyimpanan sertifikat sistem container workload.