Mengonfigurasi ekstensi untuk Secure Web Proxy

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

  1. Buat, siapkan, dan deploy instance Secure Web Proxy bernama swp-instance1 di 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.

  2. Konfigurasi layanan contoh berikut:

    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

  1. Konfigurasi ekstensi otorisasi.

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

      Ekstensi Secure Web Proxy adalah resource regional dan harus berada di region yang sama dengan instance Secure Web Proxy Anda.

      Untuk kebijakan otorisasi permintaan, nilai wireFormat dapat berupa EXT_AUTHZ_GRPC sehingga balon menggunakan protokol ext_authz meskipun protokol ext_proc juga didukung.

      Secara default, failOpen disetel ke false. Jika waktu tunggu ekstensi habis atau gagal, pemrosesan permintaan akan berhenti. Opsi default ini lebih disukai jika memprioritaskan keamanan atau integritas daripada ketersediaan.

    2. Impor ekstensi otorisasi. Gunakan perintah gcloud beta service-extensions authz-extensions import dengan nilai contoh berikut.

      gcloud beta service-extensions authz-extensions import my-swp-request-authz-ext \
          --source=swp-request-authz-extension.yaml \
          --location=us-west1
      
  2. 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.

    1. Tentukan kebijakan otorisasi yang mengaitkan ekstensi my-swp-authz-request-ext dengan 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"
      EOF
      

      Ganti PROJECT_ID dengan project ID.

      Untuk kebijakan otorisasi permintaan, nilai policyProfile harus berupa REQUEST_AUTHZ.

      Tindakan CUSTOM menunjukkan bahwa ekstensi dikaitkan dengan proxy.

      Untuk mengetahui informasi selengkapnya tentang resource kebijakan otorisasi, lihat dokumentasi referensi authzPolicy.

    2. Impor kebijakan otorisasi ke project. Gunakan perintah gcloud beta network-security authz-policies import dengan 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

  1. Konfigurasi ekstensi otorisasi.

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

      Untuk kebijakan otorisasi konten, nilai policyProfile harus berupa CONTENT_AUTHZ.

      Untuk kebijakan CONTENT_AUTHZ, nilai wireFormat tidak perlu ditetapkan secara eksplisit sebagai EXT_PROC_GRPC. Secara default, balon teks menggunakan protokol ext_proc.

    2. Impor ekstensi otorisasi. Gunakan perintah gcloud beta service-extensions authz-extensions import dengan nilai contoh berikut.

      gcloud beta service-extensions authz-extensions import my-swp-content-authz-ext \
          --source=swp-content-authz-extension.yaml \
          --location=us-west1
      
  2. Konfigurasi kebijakan otorisasi dengan ekstensi.

    1. Tentukan kebijakan otorisasi yang mengaitkan ekstensi my-swp-content-authz-ext dengan 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"
      EOF
      

      Untuk kebijakan otorisasi konten, nilai policyProfile ditetapkan sebagai CONTENT_AUTHZ. Nilai ini menunjukkan bahwa penyedia kebijakan kustom memproses traffic permintaan dan respons, termasuk pemrosesan isi.

    2. Impor kebijakan otorisasi ke project. Gunakan perintah gcloud beta network-security authz-policies import dengan 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:

Langkah berikutnya