Menyiapkan kebijakan otorisasi untuk Secure Web Proxy

Halaman ini menjelaskan cara mengonfigurasi kebijakan otorisasi untuk Secure Web Proxy.

Sebelum memulai

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 agentGateway untuk 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 Gateway Secure 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:

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 ExtensionBinding di 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/list atau tools/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:

  1. 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.

  2. Intersepsi TLS: traffic yang tidak diabaikan kemudian diintersepsi dan didekripsi menggunakan kebijakan pemeriksaan TLS gateway.

  3. 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.

  4. 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):

  1. 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: ALLOW
    

    Ganti kode berikut:

    • PROJECT_ID: ID project Google Cloud Anda
    • LOCATION: region tempat instance Agent Gateway dan Secure Web Proxy Anda di-deploy
    • AGENT_GATEWAY_NAME: nama resource agentGateway yang terkait dengan gateway Secure Web Proxy Anda
  2. 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.

  1. 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: ALLOW
    

    Ganti kode berikut:

    • PROJECT_ID: ID project Google Cloud Anda
    • LOCATION: region tempat instance Agent Gateway dan Secure Web Proxy Anda di-deploy
    • AGENT_GATEWAY_NAME: nama resource agentGateway yang terkait dengan gateway Secure Web Proxy Anda
  2. 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.com atau iap.googleapis.com).
  • Ekstensi kustom dan partner (2P/3P): untuk pemroses internal kustom atau vendor keamanan pihak ketiga, produsen memublikasikan resource ProducerExtension yang 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:

  1. Aktifkan Service Extensions API.

    gcloud services enable serviceextensions.googleapis.com
    
  2. Buat file konfigurasi bernama extension-binding-model-armor.yaml yang menargetkan resource agentGateway, 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 Anda
    • LOCATION: region tempat instance Agent Gateway dan Secure Web Proxy Anda di-deploy
    • AGENT_GATEWAY_NAME: nama resource agentGateway Anda
    • TEMPLATE_PROJECT_ID: project ID tempat template Model Armor Anda dibuat
    • REQUEST_TEMPLATE_ID: ID template yang digunakan untuk memeriksa permintaan masuk
    • RESPONSE_TEMPLATE_ID: ID template yang digunakan untuk memeriksa respons keluar

    Catatan:

    • failOpen: false memblokir traffic jika layanan ekstensi tidak dapat dijangkau. Untuk mengizinkan traffic melewati tanpa diperiksa selama gangguan layanan, tetapkan failOpen: true.
    • Untuk mengikat ekstensi internal atau pihak ketiga kustom, bukan Model Armor, tetapkan producerExtension ke jalur resource produsen dalam format berikut: projects/PRODUCER_PROJECT_ID/locations/LOCATION/producerExtensions/PRODUCER_EXTENSION_NAME.
  3. 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.

  1. 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 utama SPIFFE ID yang 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
    EOF
    

    Ganti kode berikut:

    • PROJECT_ID: ID project Google Cloud Anda
    • LOCATION: region instance Secure Web Proxy Anda
  2. 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= LOCATION 
    

    Ganti LOCATION dengan 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:

Akun layanan

  1. Buat file YAML kebijakan otorisasi untuk mengizinkan permintaan tertentu.

    Contoh berikut membuat file authz-policy.yaml untuk instance Secure Web Proxy bernama swp1. Kebijakan ini dikonfigurasi untuk mengizinkan permintaan dari instance virtual machine (VM) Compute Engine dengan akun layanan my-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
    EOF
    

    Ganti kode berikut:

    • PROJECT_ID: ID project Google Cloud Anda
    • LOCATION: region instance Secure Web Proxy Anda
  2. 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= LOCATION 
    

    Ganti LOCATION dengan region instance Secure Web Proxy Anda.

Tag

  1. Buat file YAML kebijakan otorisasi untuk mengizinkan permintaan tertentu.

    Contoh berikut membuat file authz-policy-tag.yaml untuk instance Secure Web Proxy bernama swp1. Kebijakan ini hanya mengizinkan permintaan yang berasal dari resource Google Clouddengan nilai tag TAG_VALUE_PERMANENT_ID untuk 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
    EOF
    

    Ganti kode berikut:

    • PROJECT_ID: ID project Google Cloud Anda
    • LOCATION: region instance Secure Web Proxy Anda
    • GATEWAY_NAME: nama gateway Secure Web Proxy Anda
    • TAG_VALUE_PERMANENT_ID: ID permanen nilai tag, seperti tagValues/123456789012
  2. 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= LOCATION 
    

    Ganti LOCATION dengan 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 CUSTOM dan profil REQUEST_AUTHZ untuk 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 CUSTOM dan profil CONTENT_AUTHZ untuk 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.

Langkah berikutnya