Halaman ini menjelaskan cara mengonfigurasi kebijakan otorisasi untuk Secure Web Proxy.
Sebelum memulai
Tinjau halaman Ringkasan Secure Web Proxy dan Ringkasan kebijakan otorisasi.
-
- Network Security API
- Network Services API
- Certificate Manager API
Pastikan Anda memiliki peran dan izin yang sesuai.
Anda harus memiliki instance Secure Web Proxy aktif yang di-deploy dan dikaitkan dengan
GatewaySecurityPolicy. Untuk mengetahui informasi selengkapnya, lihat Men-deploy instance Secure Web Proxy.Untuk mengonfigurasi kebijakan otorisasi Secure Web Proxy, Anda harus mengaktifkan kebijakan pemeriksaan TLS.
Membuat kebijakan otorisasi
Anda dapat mengonfigurasi kebijakan otorisasi untuk dua kasus penggunaan yang berbeda:
Mengatur traffic agen: untuk mengamankan traffic keluar dari agen AI ke server, alat, dan model Model Context Protocol (MCP), lihat Mengonfigurasi kebijakan otorisasi untuk tujuan agen. Anda dapat mengonfigurasi kebijakan dan binding ekstensi pada resource
agentGatewayuntuk menerapkan batasan alat MCP, identitas agen mTLS, dan pembersihan payload.Mengamankan traffic web non-agentic: untuk mengamankan traffic web keluar dari workload perusahaan non-agentic, lihat contoh di bagian berikutnya. Anda dapat mengonfigurasi kebijakan langsung di resource
GatewaySecure Web Proxy untuk menerapkan identitas sertifikat klien mTLS, akun layanan, tag aman, atau ekstensi otorisasi kustom.
Untuk membuat kebijakan otorisasi untuk Secure Web Proxy, lakukan hal berikut:
- Konfigurasikan file YAML yang menentukan target dan aturan.
- Untuk mengimpor file YAML, jalankan
perintah
gcloud network-security authz-policies import.
Mengonfigurasi kebijakan otorisasi untuk tujuan agentic
Saat Anda men-deploy Secure Web Proxy sebagai Gateway Agen, Anda dapat menentukan kebijakan otorisasi untuk memeriksa dan membatasi traffic yang diarahkan ke server alat MCP dan tujuan agen AI.
Anda dapat mengonfigurasi aturan yang menerapkan kontrol akses pada lapisan permintaan berikut:
Aturan jaringan: lewati pemeriksaan TLS atau analisis payload mendalam untuk endpoint model atau agen eksternal tepercaya tertentu.
Binding ekstensi: menggunakan resource
ExtensionBindingdi Service Extensions untuk melampirkan pemroses tata kelola dan keamanan eksternal, seperti Identity-Aware Proxy (IAP) untuk verifikasi identitas agen dan Model Armor untuk pembersihan perintah dan respons.Pemfilteran alat dan metode MCP HTTP: menerapkan kontrol terperinci atas tindakan MCP tertentu, seperti
tools/listatautools/call, dan memvalidasi argumen untuk membatasi alat yang dapat dipanggil agen.
Urutan evaluasi untuk aturan otorisasi
Saat memproses traffic agen AI keluar melalui Gateway Agen, aturan dievaluasi dalam urutan berikut:
Aturan otorisasi jaringan (L4): dievaluasi terlebih dahulu. Jika aturan pencocokan SNI berlaku, seperti mengizinkan komunikasi langsung ke endpoint model eksternal, traffic akan mengabaikan intersepsi TLS.
Intersepsi TLS: traffic yang tidak diabaikan kemudian diintersepsi dan didekripsi menggunakan kebijakan pemeriksaan TLS gateway.
Aturan binding ekstensi: permintaan dievaluasi oleh layanan ekstensi yang dikonfigurasi, seperti IAP, untuk memverifikasi identitas pemanggil pada header permintaan dan Model Armor untuk memeriksa payload yang didekripsi demi keamanan perintah dan mencegah kebocoran data sensitif dalam respons.
Aturan otorisasi HTTP (L7): Kebijakan otorisasi tingkat HTTP, seperti pembatasan alat MCP dan pemfilteran metode, akan dievaluasi.
Contoh 1: Membatasi eksekusi alat MCP
Contoh berikut menunjukkan kebijakan otorisasi yang dilampirkan ke
resource agentGateway yang memungkinkan agen menemukan alat (tools/list) dan
hanya menjalankan alat yang disetujui (tools/call untuk get_weather dan get_location):
Buat file bernama
authz-policy-mcp.yaml.name: authz-policy-restrict-tools target: resources: - "projects/PROJECT_ID/locations/LOCATION/agentGateways/AGENT_GATEWAY_NAME" policyProfile: REQUEST_AUTHZ httpRules: - to: operations: - mcp: baseProtocolMethodsOption: MATCH_BASE_PROTOCOL_METHODS methods: - name: "tools/list" - name: "tools/call" params: - exact: "get_weather" - exact: "get_location" action: ALLOWGanti kode berikut:
PROJECT_ID: ID project Google Cloud AndaLOCATION: region tempat instance Agent Gateway dan Secure Web Proxy Anda di-deployAGENT_GATEWAY_NAME: nama resourceagentGatewayyang terkait dengan gateway Secure Web Proxy Anda
Untuk mengimpor kebijakan otorisasi, jalankan perintah
gcloud network-security authz-policies import.gcloud network-security authz-policies import authz-policy-restrict-tools \ --source=authz-policy-mcp.yaml \ --location=LOCATION
Contoh 2: Melewati intersepsi TLS menggunakan pencocokan SNI
Jika penyedia model eksternal atau API agen tertentu menggunakan penyematan sertifikat atau tidak memerlukan pemeriksaan payload, Anda dapat menggunakan aturan jaringan untuk mencocokkan Server Name Indication (SNI) dan mengizinkan koneksi tanpa mendekripsi sesi.
Buat file bernama
authz-policy-sni.yaml.name: authz-policy-skip-interception target: resources: - "projects/PROJECT_ID/locations/LOCATION/agentGateways/AGENT_GATEWAY_NAME" policyProfile: REQUEST_AUTHZ networkRules: - to: operations: - snis: - exact: "api.example-model-provider.com" action: ALLOWGanti kode berikut:
PROJECT_ID: ID project Google Cloud AndaLOCATION: region tempat instance Agent Gateway dan Secure Web Proxy Anda di-deployAGENT_GATEWAY_NAME: nama resourceagentGatewayyang terkait dengan gateway Secure Web Proxy Anda
Untuk mengimpor kebijakan otorisasi, jalankan perintah
gcloud network-security authz-policies import.gcloud network-security authz-policies import authz-policy-skip-interception \ --source=authz-policy-sni.yaml \ --location=LOCATION
Contoh 3: Mengaktifkan pemeriksaan payload mendalam dengan Model Armor menggunakan binding ekstensi
Untuk melindungi dari injeksi perintah, output beracun, atau kebocoran data sensitif, Anda
dapat mengalihkan pemrosesan traffic ke Model Armor atau pemroses
ext_proc kustom menggunakan binding ekstensi di
Service Extensions.
Model ini memisahkan penyedia ekstensi dari konsumen dengan cara berikut:
- Layanan Google (1P): untuk layanan Google bawaan, seperti
Model Armor dan IAP, Google mengelola
infrastruktur yang mendasarinya. Anda dapat langsung mengikat layanan menggunakan URI endpoint yang telah ditetapkan (
modelarmor.googleapis.comatauiap.googleapis.com). - Ekstensi kustom dan partner (2P/3P): untuk pemroses internal kustom atau vendor keamanan pihak ketiga, produsen memublikasikan resource
ProducerExtensionyang mengarah ke lampiran layanan Private Service Connect dan konsumen mengikat URI resource tersebut.
Untuk mengetahui informasi selengkapnya tentang cara kebijakan dan ekstensi otorisasi
dievaluasi pada resource agentGateway, lihat Mendelegasikan otorisasi dengan
Service Extensions
dan Kebijakan yang dapat diperluas di
Agent Gateway.
Untuk mengonfigurasi binding ekstensi untuk Model Armor, lakukan hal berikut:
Aktifkan Service Extensions API.
gcloud services enable serviceextensions.googleapis.com
Buat file konfigurasi bernama
extension-binding-model-armor.yamlyang menargetkan resourceagentGateway, menetapkan template inspeksi, dan mencegat traffic yang ditujukan untuk server MCP.name: ext-binding-model-armor target: resources: - "//networkservices.googleapis.com/projects/PROJECT_ID/locations/LOCATION/agentGateways/AGENT_GATEWAY_NAME" failOpen: false producerExtension: modelarmor.googleapis.com producerMetadata: model_armor_settings: '[ { "request_template_id": "projects/TEMPLATE_PROJECT_ID/locations/LOCATION/templates/REQUEST_TEMPLATE_ID", "response_template_id": "projects/TEMPLATE_PROJECT_ID/locations/LOCATION/templates/RESPONSE_TEMPLATE_ID" } ]' matchConditions: - to: destination: resources: - prefix: "urn:mcp"Ganti kode berikut:
PROJECT_ID: ID project Google Cloud AndaLOCATION: region tempat instance Agent Gateway dan Secure Web Proxy Anda di-deployAGENT_GATEWAY_NAME: nama resourceagentGatewayAndaTEMPLATE_PROJECT_ID: project ID tempat template Model Armor Anda dibuatREQUEST_TEMPLATE_ID: ID template yang digunakan untuk memeriksa permintaan masukRESPONSE_TEMPLATE_ID: ID template yang digunakan untuk memeriksa respons keluar
Catatan:
failOpen: falsememblokir traffic jika layanan ekstensi tidak dapat dijangkau. Untuk mengizinkan traffic melewati tanpa diperiksa selama gangguan layanan, tetapkanfailOpen: true.- Untuk mengikat ekstensi internal atau pihak ketiga kustom, bukan
Model Armor, tetapkan
producerExtensionke jalur resource produsen dalam format berikut:projects/PRODUCER_PROJECT_ID/locations/LOCATION/producerExtensions/PRODUCER_EXTENSION_NAME.
Untuk mengimpor binding ekstensi, jalankan perintah
gcloud beta service-extensions extension-bindings import.gcloud beta service-extensions extension-bindings import ext-binding-model-armor \ --source=extension-binding-model-armor.yaml \ --location=LOCATION
Untuk mengetahui informasi selengkapnya tentang mengikat IAP untuk verifikasi identitas, lihat Melampirkan binding ekstensi ke Agent Gateway.
Kebijakan otorisasi berdasarkan identitas mTLS
Secure Web Proxy mendukung penerapan aturan keamanan berdasarkan identitas yang berasal dari sertifikat mutual TLS (mTLS). Penerapan aturan berdasarkan identitas ini sangat berguna di lingkungan zero-trust, di mana traffic antara klien dan proxy diamankan oleh mTLS. Untuk mengetahui informasi selengkapnya, lihat Kebijakan otorisasi berdasarkan principal.
Contoh berikut menunjukkan kebijakan otorisasi untuk
instance Secure Web Proxy bernama swp1. Contoh ini mengasumsikan bahwa
traffic ke proxy menggunakan protokol HTTPS.
Kebijakan dengan profil REQUEST_AUTHZ menerapkan bahwa semua traffic ke
example.com/mcp memerlukan autentikasi mTLS dari
principal tertentu sebelum traffic diizinkan untuk diteruskan. Kebijakan ini
juga menolak semua traffic keluar yang tidak ditujukan ke
example.com/mcp.
Buat file YAML kebijakan otorisasi.
Contoh berikut membuat file
authz-policy.yaml. Kebijakan ini mengizinkan traffic ke host dan jalur yang ditentukan hanya jika klien menunjukkan sertifikat yang cocok dengan akun utamaSPIFFE IDyang ditentukan.$ cat >authz-policy.yaml <<EOF name: test-authz-policy-mtls target: resources: - "projects/ PROJECT_ID /locations/ LOCATION /gateways/swp1" policyProfile: REQUEST_AUTHZ httpRules: - to: operations: - hosts: - exact: "example.com" paths: - exact: "/mcp" from: sources: - principals: - principalSelector: CLIENT_CERT_URI_SAN principal: exact: "spiffe:// PROJECT_ID .global.123.workload.id.goog/ns/ns1/sa/hellomcp" action: ALLOW EOFGanti kode berikut:
PROJECT_ID: ID project Google Cloud AndaLOCATION: region instance Secure Web Proxy Anda
Buat kebijakan otorisasi dan impor file YAML menggunakan perintah
gcloud network-security authz-policies import.gcloud beta network-security authz-policies import my-authz-policy-allow --source=authz-policy.yaml --location= LOCATIONGanti
LOCATIONdengan region instance Secure Web Proxy Anda.
Kebijakan otorisasi berdasarkan akun layanan atau tag
Anda dapat menerapkan kebijakan otorisasi berdasarkan akun layanan atau tag yang dilampirkan ke berbagai resource Google Cloud .
Contoh ini mengasumsikan bahwa Anda telah menyelesaikan hal berikut:
Membuat akun layanan dan melampirkannya ke resource Google Cloud .
Membuat tag dan melampirkannya ke resource Google Cloud sebagai key-value pair. Saat Anda membuat tag, tetapkan flag
--purpose-nya keGCE_FIREWALL. Kebijakan otorisasi memerlukan tujuanGCE_FIREWALLuntuk menerapkan tag.
Akun layanan
Buat file YAML kebijakan otorisasi untuk mengizinkan permintaan tertentu.
Contoh berikut membuat file
authz-policy.yamluntuk instance Secure Web Proxy bernamaswp1. Kebijakan ini dikonfigurasi untuk mengizinkan permintaan dari instance virtual machine (VM) Compute Engine dengan akun layananmy-sa-123@56788.untuk menjangkau jalur example1.com/url1.$ cat >authz-policy.yaml <<EOF name: my-authz-policy-allow target: resources: - "projects/PROJECT_ID/locations/ LOCATION /gateways/swp1" policyProfile: REQUEST_AUTHZ httpRules: - from: sources: - resources: - iamServiceAccount: exact: "my-sa-123@56788." to: operations: - hosts: - exact: "example1.com" paths: - prefix: "/url1" action: ALLOW EOFGanti kode berikut:
PROJECT_ID: ID project Google Cloud AndaLOCATION: region instance Secure Web Proxy Anda
Buat kebijakan otorisasi dan impor file YAML menggunakan perintah
gcloud network-security authz-policies import.Contoh perintah berikut menunjukkan cara mengimpor file kebijakan yang dibuat sebelumnya dan membuat kebijakan otorisasi:
gcloud network-security authz-policies import my-authz-policy-allow --source=authz-policy.yaml --location= LOCATIONGanti
LOCATIONdengan region instance Secure Web Proxy Anda.
Tag
Buat file YAML kebijakan otorisasi untuk mengizinkan permintaan tertentu.
Contoh berikut membuat file
authz-policy-tag.yamluntuk instance Secure Web Proxy bernamaswp1. Kebijakan ini hanya mengizinkan permintaan yang berasal dari resource Google Clouddengan nilai tagTAG_VALUE_PERMANENT_IDuntuk mengakses jalur URL example1.com/url1.$ cat >authz-policy-tag.yaml <<EOF name: my-authz-policy-tag-allow target: resources: - "projects/PROJECT_ID/locations/ LOCATION /gateways/ GATEWAY_NAME " policyProfile: REQUEST_AUTHZ httpRules: - from: sources: - resources: - tagValueIdSet: ids: ["TAG_VALUE_PERMANENT_ID"] to: operations: - hosts: - exact: "example1.com" paths: - exact: "/url1" action: ALLOW EOFGanti kode berikut:
PROJECT_ID: ID project Google Cloud AndaLOCATION: region instance Secure Web Proxy AndaGATEWAY_NAME: nama gateway Secure Web Proxy AndaTAG_VALUE_PERMANENT_ID: ID permanen nilai tag, sepertitagValues/123456789012
Buat kebijakan otorisasi dan impor file YAML menggunakan perintah
gcloud network-security authz-policies import.Contoh perintah berikut mengimpor file kebijakan yang dibuat sebelumnya dan membuat kebijakan otorisasi di region Google Cloud yang ditentukan:
gcloud network-security authz-policies import my-authz-policy-tag-allow --source=authz-policy-tag.yaml --location= LOCATIONGanti
LOCATIONdengan region instance Secure Web Proxy Anda.
Kebijakan otorisasi untuk mendelegasikan keputusan otorisasi
Untuk keputusan otorisasi kompleks yang tidak dapat dinyatakan menggunakan aturan ALLOW atau DENY standar, Anda dapat membuat kebijakan otorisasi dengan tindakan CUSTOM. Kemudian, Anda dapat mendelegasikan keputusan otorisasi ke ekstensi otorisasi (Service Extensions).
Saat Anda mengonfigurasi kebijakan dengan tindakan CUSTOM, Secure Web Proxy akan memindahkan metadata atau payload permintaan ke Service Extensions. Bergantung
pada respons dari Service Extensions, proxy akan mengizinkan
atau menolak traffic.
Secure Web Proxy mendukung jenis delegasi berikut:
Mendelegasikan keputusan otorisasi permintaan ke Service Extensions: Anda dapat menggunakan kebijakan otorisasi yang dikonfigurasi dengan tindakan
CUSTOMdan profilREQUEST_AUTHZuntuk mendelegasikan keputusan berdasarkan metadata dan header permintaan. Dalam mode ini, keputusan akses didelegasikan ke ekstensi otorisasi. Anda dapat menggunakan mode ini untuk memverifikasi identitas dan izin.Mendelegasikan keputusan otorisasi konten ke Service Extensions: Anda dapat menggunakan kebijakan otorisasi dengan tindakan
CUSTOMdan profilCONTENT_AUTHZuntuk mendelegasikan keputusan ke ekstensi otorisasi berdasarkan payload data permintaan yang sebenarnya. Mode ini memungkinkan Anda mengaktifkan pemeriksaan konten mendalam dan penegakan keamanan, sehingga Anda dapat memindai informasi sensitif atau pola berbahaya dengan mengintegrasikan layanan seperti Model Armor.
Batasan
Saat Anda menerapkan kebijakan otorisasi untuk Secure Web Proxy, batasan berikut berlaku:
Batasan target dan konektivitas: ekstensi otorisasi untuk Secure Web Proxy tidak mendukung IAP sebagai target langsung.
Konflik dan kompatibilitas kebijakan: jika Anda memiliki kebijakan keamanan gateway dengan aturan keamanan yang ada, Anda tidak perlu menghapusnya. Secure Web Proxy mengabaikan aturan ini saat Anda menerapkan kebijakan otorisasi ke instance Anda.
Persyaratan protokol dan pemeriksaan: untuk mengonfigurasi kebijakan otorisasi Secure Web Proxy, Anda harus mengaktifkan pemeriksaan TLS.