Service Extensions memungkinkan ekstensi Secure Web Proxy mengirim callout ke layanan otorisasi untuk menyisipkan pemrosesan kustom di jalur pemrosesan traffic. Halaman ini menjelaskan cara mengonfigurasi ekstensi Secure Web Proxy dengan kebijakan otorisasi.
Ekstensi Secure Web Proxy dikonfigurasi dengan kebijakan otorisasi permintaan dan konten sebagai ekstensi otorisasi. Ekstensi yang didasarkan pada kebijakan otorisasi permintaan dikonfigurasi untuk dijalankan sebelum ekstensi yang didasarkan pada kebijakan otorisasi konten.
Untuk mengetahui informasi tentang cara kerja ekstensi Secure Web Proxy, lihat Ringkasan ekstensi Secure Web Proxy.
Untuk mengetahui informasi tentang batas yang terkait dengan ekstensi otorisasi, lihat halaman Kuota dan batas.
Sebelum memulai
Buat, siapkan, dan deploy instance Secure Web Proxy bernama
swp-instance1di lokasi yang ingin Anda gunakan untuk ekstensi—misalnya,us-west1.Proxy harus di-deploy dengan kebijakan keamanan Gateway dengan pemeriksaan Transport Layer Security (TLS) diaktifkan.
Konfigurasi layanan contoh berikut:
Layanan otorisasi yang akan digunakan untuk mengonfigurasi ekstensi untuk kebijakan otorisasi permintaan. Untuk contoh ini, asumsikan bahwa FQDN-nya adalah
request-authz.com.Layanan sanitasi yang akan digunakan untuk mengonfigurasi ekstensi untuk kebijakan otorisasi konten. Untuk contoh ini, asumsikan bahwa FQDN-nya adalah
content-sdp.com.
Ekstensi Secure Web Proxy hanya dapat menargetkan nama domain yang sepenuhnya memenuhi syarat (FQDN). Saat Anda menggunakan target FQDN untuk ekstensi, bidang data menggunakan protokol HTTP2 dengan enkripsi TLS untuk berkomunikasi dengan endpoint di port 443. Namun, dataplane tidak memvalidasi sertifikat server. Untuk alasan keamanan, pastikan endpoint yang diselesaikan berada dalam VPC.
Mengonfigurasi ekstensi untuk kebijakan otorisasi permintaan
Contoh berikut menunjukkan cara mengonfigurasi ekstensi otorisasi yang
menerapkan kebijakan otorisasi permintaan ke instance Secure Web Proxy di
us-west1. Kebijakan ini mewajibkan traffic untuk melewati autentikasi TLS bersama dari
akun utama tertentu sebelum diizinkan untuk mencapai tujuan,
example.com/mcp.
gcloud
Konfigurasi ekstensi otorisasi.
Tentukan ekstensi dalam file YAML yang mengaitkan ekstensi dengan
request-authz.com. Gunakan nilai sampel yang diberikan.cat >swp-request-authz-extension.yaml <<EOF name: my-swp-request-authz-ext authority: ext11.com loadBalancingScheme: INTERNAL_MANAGED service: "request-authz.com" forwardHeaders: - Authorization failOpen: false timeout: "0.1s" wireFormat: EXT_AUTHZ_GRPC EOFEkstensi Secure Web Proxy adalah resource regional dan harus berada di region yang sama dengan instance Secure Web Proxy Anda.
Untuk kebijakan otorisasi permintaan, nilai
wireFormatdapat berupaEXT_AUTHZ_GRPCsehingga balon menggunakan protokolext_authzmeskipun protokolext_procjuga didukung.Secara default,
failOpendisetel kefalse. Jika waktu tunggu ekstensi habis atau gagal, pemrosesan permintaan akan berhenti. Opsi default ini lebih disukai jika memprioritaskan keamanan atau integritas daripada ketersediaan.Impor ekstensi otorisasi. Gunakan perintah
gcloud beta service-extensions authz-extensions importdengan nilai contoh berikut.gcloud beta service-extensions authz-extensions import my-swp-request-authz-ext \ --source=swp-request-authz-extension.yaml \ --location=us-west1
Dalam project yang sama, konfigurasi kebijakan otorisasi dengan ekstensi.
Untuk setiap permintaan ke
example.com/mcp, kebijakan ini memerlukan autentikasi TLS bersama dari prinsipal tertentu dan selanjutnya mendelegasikan keputusan otorisasi ke ekstensi otorisasi,my-swp-authz-request-ext.Tentukan kebijakan otorisasi yang mengaitkan ekstensi
my-swp-authz-request-extdengan proxy Secure Web Proxy,swp-instance1. Gunakan nilai sampel yang diberikan.cat >swp-request-authz-policy.yaml <<EOF name: my-swp-request-authz-policy target: resources: - "projects/PROJECT_ID/locations/us-west1/gateways/swp-instance1" policyProfile: REQUEST_AUTHZ httpRules: - to: operations: - hosts: - exact: "example.com" - paths: - prefix: "/mcp" from: sources: - principals: - principal_selector: CLIENT_CERT_DNS_NAME_SANS principal: exact: "spiffe://p.global.123.workload.id.goog/ns/ns1/sa/hellomcp" action: CUSTOM customProvider: authzExtension: resources: - "projects/PROJECT_ID/locations/us-west1/authzExtensions/my-swp-request-authz-ext" EOFGanti
PROJECT_IDdengan project ID.Untuk kebijakan otorisasi permintaan, nilai
policyProfileharus berupaREQUEST_AUTHZ.Tindakan
CUSTOMmenunjukkan bahwa ekstensi dikaitkan dengan proxy.Untuk mengetahui informasi selengkapnya tentang resource kebijakan otorisasi, lihat dokumentasi referensi
authzPolicy.Impor kebijakan otorisasi ke project. Gunakan perintah
gcloud beta network-security authz-policies importdengan nilai contoh berikut.gcloud beta network-security authz-policies import my-swp-request-authz-policy \ --source=swp-request-authz-policy.yaml \ --location=us-west1
Mengonfigurasi ekstensi untuk kebijakan otorisasi konten
Contoh berikut menunjukkan cara mengonfigurasi ekstensi otorisasi yang
menerapkan kebijakan otorisasi konten ke instance Secure Web Proxy di
us-west1. Kebijakan ini mewajibkan layanan pembersihan konten untuk melakukan pemeriksaan mendalam pada payload aplikasi Anda guna mengizinkan atau menolak permintaan atau mengubah permintaan dan respons, sebagaimana diperlukan.
gcloud
Konfigurasi ekstensi otorisasi.
Tentukan ekstensi dalam file YAML yang mengaitkan ekstensi dengan
content-sdp.com. Gunakan nilai sampel yang diberikan.cat >swp-authz-content-extension.yaml <<EOF name: my-swp-content-authz-ext authority: ext11.com loadBalancingScheme: INTERNAL_MANAGED service: "content-sdp.com" failOpen: false timeout: "0.1s" EOFUntuk kebijakan otorisasi konten, nilai
policyProfileharus berupaCONTENT_AUTHZ.Untuk kebijakan
CONTENT_AUTHZ, nilaiwireFormattidak perlu ditetapkan secara eksplisit sebagaiEXT_PROC_GRPC. Secara default, balon teks menggunakan protokolext_proc.Impor ekstensi otorisasi. Gunakan perintah
gcloud beta service-extensions authz-extensions importdengan nilai contoh berikut.gcloud beta service-extensions authz-extensions import my-swp-content-authz-ext \ --source=swp-content-authz-extension.yaml \ --location=us-west1
Konfigurasi kebijakan otorisasi dengan ekstensi.
Tentukan kebijakan otorisasi yang mengaitkan ekstensi
my-swp-content-authz-extdengan proxy Secure Web Proxy,swp-instance1. Gunakan nilai sampel yang diberikan.cat >swp-content-authz-policy.yaml <<EOF name: my-swp-content-authz-policy target: resources: - "projects/PROJECT_ID/locations/us-west1/gateways/swp-instance1" policyProfile: CONTENT_AUTHZ httpRules: - to: operations: - hosts: - exact: "example.com" - paths: - prefix: "/sensitive-stuff" action: CUSTOM customProvider: authzExtension: resources: - "projects/PROJECT_ID/locations/us-west1/authzExtensions/my-swp-content-authz-ext" EOFUntuk kebijakan otorisasi konten, nilai
policyProfileditetapkan sebagaiCONTENT_AUTHZ. Nilai ini menunjukkan bahwa penyedia kebijakan kustom memproses traffic permintaan dan respons, termasuk pemrosesan isi.Impor kebijakan otorisasi ke project. Gunakan perintah
gcloud beta network-security authz-policies importdengan nilai contoh berikut.gcloud beta network-security authz-policies import my-swp-content-authz-policy \ --source=swp-content-authz-policy.yaml \ --location=us-west1
Batasan ekstensi Secure Web Proxy
Lihat bagian berikut untuk mengetahui informasi tentang batasan ekstensi Secure Web Proxy:
Untuk batasan yang berlaku untuk semua ekstensi, lihat Batasan ekstensi.
Untuk mengetahui batasan yang berlaku pada info promo, lihat Batasan info promo.
Langkah berikutnya
- Lihat contoh server
ext_procPython dan Go di repositori GitHub Service Extensions. - Mengelola ekstensi