Service Extensions consente ai bilanciatori del carico delle applicazioni di inviare callout ai servizi di backend per inserire l'elaborazione personalizzata nel percorso di elaborazione. Le estensioni di autorizzazione vengono eseguite nel percorso di elaborazione delle richieste quando il bilanciatore del carico riceve le intestazioni delle richieste e dopo che la mappa URL sceglie il servizio di backend. Questa pagina descrive come configurare le estensioni di autorizzazione per utilizzare un motore di autorizzazione personalizzato definito in un'policy di autorizzazione.
Per una panoramica delle estensioni del bilanciatore del carico delle applicazioni, consulta la panoramica delle estensioni Cloud Load Balancing.
Introduzione
Cloud Load Balancing ti consente di configurare policy di autorizzazione che applicano controllo dell'accessoo al traffico che entra nei bilanciatori del carico. A volte, le decisioni di autorizzazione complesse non possono essere espresse facilmente utilizzando un criterio di autorizzazione.
Puoi configurare le policy di autorizzazione con le estensioni di autorizzazione per delegare le decisioni di autorizzazione a motori di autorizzazione personalizzati. Nel percorso dei dati, le estensioni di autorizzazione vengono eseguite dopo le estensioni di percorso, ma prima delle estensioni di traffico. Per ogni richiesta di autorizzazione, il bilanciatore del carico inoltra le intestazioni della richiesta all'estensione. A seconda della risposta del provider, il proxy del bilanciatore del carico inoltra o rifiuta la richiesta.
Per informazioni sui limiti relativi alle estensioni del bilanciatore del carico delle applicazioni, consulta la pagina Quote e limiti.
Prima di iniziare
Crea le risorse richieste come descritto in Configura un servizio di backend callout.
Configurare un'estensione di autorizzazione
L'esempio seguente mostra come configurare un'estensione di autorizzazione, my-authz-ext, con una policy di autorizzazione per delegare le decisioni di autorizzazione per un bilanciatore del carico delle applicazioni interno regionale in us-east1.
gcloud
Configura l'estensione di autorizzazione.
Definisci l'estensione in un file YAML che la associa al servizio di backend
authz-service. Utilizza i valori di esempio forniti.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 EOFSostituisci
PROJECT_IDcon l'ID progetto.Per impostazione predefinita, tutti i callout delle estensioni di servizio utilizzano il protocollo Envoy External Processing o
ext_proc. Nel caso dei callout di autorizzazione, il protocollo di autorizzazione esterna oext_authzpiù adatto è supportato anche in anteprima. Quando l'opzionewireFormatè impostata suEXT_AUTHZ_GRPC, il callout utilizza il protocolloext_authz. Se l'opzione non è specificata, il callout utilizza il protocolloext_proc.Importa l'estensione di autorizzazione. Utilizza il comando
gcloud service-extensions authz-extensions importcon i seguenti valori di esempio.gcloud service-extensions authz-extensions import my-authz-ext \ --source=authz-extension.yaml \ --location=us-east1Se vuoi impostare il protocollo su
ext_authz, utilizza il comandogcloud beta service-extensions authz-extensions import.
Configura una policy di autorizzazione con l'estensione.
Definisci una policy di autorizzazione che associ l'estensione
my-authz-extalla regola di forwardingfr1. Utilizza i valori di esempio forniti. L'azioneCUSTOMindica che viene utilizzata un'estensione.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" EOFImporta la policy di autorizzazione nel progetto. Utilizza il comando
gcloud network-security authz-policies importcon i seguenti valori di esempio.gcloud network-security authz-policies import my-authz-policy \ --source=authz-policy.yaml \ --location=us-east1
Limitazioni per le estensioni di autorizzazione
Di seguito sono riportate alcune limitazioni delle estensioni dell'autorizzazione:
- Una policy di autorizzazione può avere una sola estensione di autorizzazione.
- Una regola di forwarding può essere utilizzata con diverse norme di autorizzazione, di cui solo una può essere una norma di autorizzazione personalizzata.
Per le limitazioni applicabili a tutte le estensioni, consulta Limitazioni per le estensioni.
Passaggi successivi
- Visualizza esempi Python e Go di server
ext_authzeext_procnel repository GitHub Service Extensions. - Configurare un'estensione di percorso
- Configurare un'estensione del traffico
- Gestire le estensioni