Mengonfigurasi ekstensi otorisasi

Service Extensions memungkinkan Load Balancer Aplikasi mengirimkan callout ke layanan backend untuk menyisipkan pemrosesan kustom di jalur pemrosesan. Ekstensi otorisasi berjalan di jalur pemrosesan permintaan saat load balancer menerima header permintaan dan setelah peta URL memilih layanan backend. Halaman ini menjelaskan cara mengonfigurasi ekstensi otorisasi untuk menggunakan mesin otorisasi kustom yang ditentukan dalam kebijakan otorisasi.

Untuk mengetahui ringkasan tentang ekstensi Load Balancer Aplikasi, lihat Ringkasan ekstensi Cloud Load Balancing.

Pengantar

Cloud Load Balancing memungkinkan Anda mengonfigurasi kebijakan otorisasi yang menerapkan kontrol akses pada traffic yang masuk ke load balancer. Terkadang, keputusan otorisasi yang kompleks tidak dapat dengan mudah dinyatakan menggunakan kebijakan otorisasi.

Anda dapat mengonfigurasi kebijakan otorisasi dengan ekstensi otorisasi untuk mendelegasikan keputusan otorisasi ke mesin otorisasi kustom. Di jalur data, ekstensi otorisasi dijalankan setelah ekstensi rute, tetapi sebelum ekstensi traffic. Untuk setiap permintaan otorisasi, load balancer meneruskan header permintaan ke ekstensi. Bergantung pada respons dari penyedia, proxy load balancer akan meneruskan atau menolak permintaan.

Untuk mengetahui informasi tentang batas yang terkait dengan ekstensi Load Balancer Aplikasi, lihat halaman Kuota dan batas.

Sebelum memulai

Buat resource yang diperlukan seperti yang dijelaskan dalam Mengonfigurasi layanan backend callout.

Mengonfigurasi ekstensi otorisasi

Contoh berikut menunjukkan cara mengonfigurasi ekstensi otorisasi, my-authz-ext, dengan kebijakan otorisasi untuk mendelegasikan keputusan otorisasi untuk Load Balancer Aplikasi internal regional di us-east1.

gcloud

  1. Konfigurasi ekstensi otorisasi.

    1. Tentukan ekstensi dalam file YAML yang mengaitkannya dengan layanan backend, authz-service. Gunakan nilai sampel yang diberikan.

      cat >authz-extension.yaml <<EOF
          name: my-authz-ext
          authority: ext11.com
          loadBalancingScheme: INTERNAL_MANAGED
          service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices/authz-service
          forwardHeaders:
            - Authorization
          failOpen: false
          timeout: "0.1s"
          wireFormat: EXT_AUTHZ_GRPC
      EOF
      

      Ganti PROJECT_ID dengan project ID.

      Secara default, semua panggilan Ekstensi Layanan menggunakan protokol Pemrosesan Eksternal Envoy atau ext_proc. Dalam kasus balon otorisasi, protokol Otorisasi Eksternal atau ext_authz yang paling sesuai juga didukung di Pratinjau. Jika opsi wireFormat disetel ke EXT_AUTHZ_GRPC, info menggunakan protokol ext_authz. Jika opsi tidak ditentukan, balon akan menggunakan protokol ext_proc.

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

      gcloud service-extensions authz-extensions import my-authz-ext \
          --source=authz-extension.yaml \
          --location=us-east1
      

      Jika Anda ingin menyetel protokol ke ext_authz, gunakan perintah gcloud beta service-extensions authz-extensions import sebagai gantinya.

  2. Konfigurasi kebijakan otorisasi dengan ekstensi.

    1. Tentukan kebijakan otorisasi yang mengaitkan ekstensi my-authz-ext dengan aturan penerusan fr1. Gunakan nilai sampel yang diberikan. Tindakan CUSTOM menunjukkan bahwa ekstensi sedang digunakan.

      cat >authz-policy.yaml <<EOF
          name: my-authz-policy
          target:
            loadBalancingScheme: INTERNAL_MANAGED
            resources:
              - "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-east1/forwardingRules/fr1"
          action: CUSTOM
          customProvider:
            authzExtension:
              resources:
                - "projects/PROJECT_ID/locations/us-east1/authzExtensions/my-authz-ext"
      EOF
      
    2. Impor kebijakan otorisasi ke project. Gunakan perintah gcloud network-security authz-policies import dengan nilai contoh berikut.

      gcloud network-security authz-policies import my-authz-policy \
          --source=authz-policy.yaml \
          --location=us-east1
      

Batasan untuk ekstensi otorisasi

Berikut beberapa batasan ekstensi otorisasi:

  • Kebijakan otorisasi hanya dapat memiliki satu ekstensi otorisasi.
  • Aturan penerusan dapat digunakan dengan beberapa kebijakan otorisasi yang hanya satu di antaranya dapat berupa kebijakan otorisasi kustom.

Untuk batasan yang berlaku untuk semua ekstensi, lihat Batasan untuk ekstensi.

Langkah berikutnya