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
Konfigurasi ekstensi otorisasi.
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 EOFGanti
PROJECT_IDdengan project ID.Secara default, semua panggilan Ekstensi Layanan menggunakan protokol Pemrosesan Eksternal Envoy atau
ext_proc. Dalam kasus balon otorisasi, protokol Otorisasi Eksternal atauext_authzyang paling sesuai juga didukung di Pratinjau. Jika opsiwireFormatdisetel keEXT_AUTHZ_GRPC, info menggunakan protokolext_authz. Jika opsi tidak ditentukan, balon akan menggunakan protokolext_proc.Impor ekstensi otorisasi. Gunakan perintah
gcloud service-extensions authz-extensions importdengan nilai contoh berikut.gcloud service-extensions authz-extensions import my-authz-ext \ --source=authz-extension.yaml \ --location=us-east1Jika Anda ingin menyetel protokol ke
ext_authz, gunakan perintahgcloud beta service-extensions authz-extensions importsebagai gantinya.
Konfigurasi kebijakan otorisasi dengan ekstensi.
Tentukan kebijakan otorisasi yang mengaitkan ekstensi
my-authz-extdengan aturan penerusanfr1. Gunakan nilai sampel yang diberikan. TindakanCUSTOMmenunjukkan 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" EOFImpor kebijakan otorisasi ke project. Gunakan perintah
gcloud network-security authz-policies importdengan 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
- Lihat contoh Python dan Go server
ext_authzdanext_procdi repositori GitHub Service Extensions. - Mengonfigurasi ekstensi rute
- Mengonfigurasi ekstensi traffic
- Mengelola ekstensi