Service Extensions consente alle estensioni di Secure Web Proxy di inviare callout ai servizi di autorizzazione per inserire l'elaborazione personalizzata nel percorso di elaborazione del traffico. Questa pagina descrive come configurare le estensioni di Secure Web Proxy con le policy di autorizzazione.
Le estensioni di Secure Web Proxy sono configurate con policy di autorizzazione di richieste e contenuti come estensioni di autorizzazione. Le estensioni basate sulle policy di autorizzazione delle richieste vengono configurate per essere eseguite prima di quelle basate sulle policy di autorizzazione dei contenuti.
Per informazioni sul funzionamento delle estensioni di Secure Web Proxy, consulta la panoramica delle estensioni di Secure Web Proxy.
Per informazioni sui limiti relativi alle estensioni di autorizzazione, consulta la pagina Quote e limiti.
Prima di iniziare
Crea, configura e implementa un'istanza di Secure Web Proxy denominata
swp-instance1in una località che vuoi utilizzare per l' estensione, ad esempious-west1.Il proxy deve essere implementato con una policy di sicurezza del gateway con l'ispezione TLS (Transport Layer Security) abilitata.
Configura i seguenti servizi di esempio:
Un servizio di autorizzazione da utilizzare per configurare un'estensione per una policy di autorizzazione delle richieste. Per questo esempio, supponiamo che il FQDN sia
request-authz.com.Un servizio di sanificazione da utilizzare per configurare un'estensione per una policy di autorizzazione dei contenuti. Per questo esempio, supponiamo che il FQDN sia
content-sdp.com.
Le estensioni di Secure Web Proxy possono avere come target solo nomi di dominio completi (FQDN). Quando utilizzi i target FQDN per le estensioni, il piano dati utilizza il protocollo HTTP2 con la crittografia TLS per comunicare con gli endpoint sulla porta 443. Tuttavia, il piano dati non convalida il certificato del server. Per motivi di sicurezza, assicurati che gli endpoint risolti si trovino all'interno del VPC.
Configurare un'estensione per una policy di autorizzazione delle richieste
L'esempio seguente mostra come configurare un'estensione di autorizzazione che applica una policy di autorizzazione delle richieste all'istanza di Secure Web Proxy in us-west1. La policy richiede che il traffico superi autenticazione TLS reciproca (mTLS) da un'entità specifica prima di poter raggiungere la destinazione, example.com/mcp.
gcloud
Configura l'estensione di autorizzazione.
Definisci l'estensione in un file YAML che associa l'estensione a
request-authz.com. Utilizza i valori di esempio forniti.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 EOFLe estensioni di Secure Web Proxy sono risorse regionali e devono trovarsi nella stessa regione dell'istanza di Secure Web Proxy.
Per le policy di autorizzazione delle richieste, il valore
wireFormatpuò essereEXT_AUTHZ_GRPCin modo che il callout utilizzi il protocolloext_authz, anche se è supportato anche il protocolloext_proc.Per impostazione predefinita,
failOpenè impostato sufalse. Se l'estensione va in timeout o non riesce, l'elaborazione della richiesta si interrompe. Questa opzione predefinita è preferibile quando si dà la priorità alla sicurezza o all'integrità rispetto alla disponibilità.Importa l'estensione di autorizzazione. Utilizza il
gcloud beta service-extensions authz-extensions importcomando con i seguenti valori di esempio.gcloud beta service-extensions authz-extensions import my-swp-request-authz-ext \ --source=swp-request-authz-extension.yaml \ --location=us-west1
Nello stesso progetto, configura una policy di autorizzazione con l'estensione.
Per qualsiasi richiesta a
example.com/mcp, la policy richiede l'autenticazione TLS reciproca da un'entità specifica e delega ulteriormente la decisione di autorizzazione all'estensione di autorizzazione,my-swp-authz-request-ext.Definisci una policy di autorizzazione che associa l'estensione
my-swp-authz-request-extal proxy Secure Web Proxy,swp-instance1. Utilizza i valori di esempio forniti.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" EOFSostituisci
PROJECT_IDcon l' ID progetto.Per le policy di autorizzazione delle richieste, il valore di
policyProfiledeve essereREQUEST_AUTHZ.L'azione
CUSTOMindica che un'estensione è associata al proxy.Per ulteriori informazioni su una risorsa policy di autorizzazione, consulta la
authzPolicydocumentazione di riferimento.Importa la policy di autorizzazione nel progetto. Utilizza il
gcloud beta network-security authz-policies importcomando con i seguenti valori di esempio.gcloud beta network-security authz-policies import my-swp-request-authz-policy \ --source=swp-request-authz-policy.yaml \ --location=us-west1
Configurare un'estensione per una policy di autorizzazione dei contenuti
L'esempio seguente mostra come configurare un'estensione di autorizzazione che applica una policy di autorizzazione dei contenuti all'istanza di Secure Web Proxy in us-west1. La policy richiede che un servizio di sanificazione dei contenuti esegua un'ispezione approfondita dei payload dell'applicazione per consentire o negare le richieste o modificare le richieste e le risposte, a seconda delle esigenze.
gcloud
Configura l'estensione di autorizzazione.
Definisci l'estensione in un file YAML che associa l'estensione a
content-sdp.com. Utilizza i valori di esempio forniti.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" EOFPer le policy di autorizzazione dei contenuti, il valore di
policyProfiledeve essereCONTENT_AUTHZ.Per le policy
CONTENT_AUTHZ, il valorewireFormatnon deve essere impostato esplicitamente comeEXT_PROC_GRPC. Per impostazione predefinita, il callout utilizza il protocolloext_proc.Importa l'estensione di autorizzazione. Utilizza il
gcloud beta service-extensions authz-extensions importcomando con i seguenti valori di esempio.gcloud beta service-extensions authz-extensions import my-swp-content-authz-ext \ --source=swp-content-authz-extension.yaml \ --location=us-west1
Configura una policy di autorizzazione con l'estensione.
Definisci una policy di autorizzazione che associa l'estensione
my-swp-content-authz-extal proxy Secure Web Proxy,swp-instance1. Utilizza i valori di esempio forniti.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" EOFPer le policy di autorizzazione dei contenuti, il valore di
policyProfileè impostato suCONTENT_AUTHZ. Questo valore indica che il provider di policy personalizzato elabora il traffico di richieste e risposte, inclusa l'elaborazione del corpo.Importa la policy di autorizzazione nel progetto. Utilizza il
gcloud beta network-security authz-policies importcomando con i seguenti valori di esempio.gcloud beta network-security authz-policies import my-swp-content-authz-policy \ --source=swp-content-authz-policy.yaml \ --location=us-west1
Limitazioni delle estensioni di Secure Web Proxy
Consulta le sezioni seguenti per informazioni sulle limitazioni delle estensioni di Secure Web Proxy:
Per le limitazioni applicabili a tutte le estensioni, consulta Limitazioni delle estensioni.
Per le limitazioni applicabili ai callout, consulta Limitazioni dei callout.
Passaggi successivi
- Visualizza gli esempi di server
ext_procin Python e Go nel repository GitHub di Service Extensions. - Gestire le estensioni