Configurare un'estensione per Secure Web Proxy

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

  1. Crea, configura e implementa un'istanza di Secure Web Proxy denominata swp-instance1 in una località che vuoi utilizzare per l' estensione, ad esempio us-west1.

    Il proxy deve essere implementato con una policy di sicurezza del gateway con l'ispezione TLS (Transport Layer Security) abilitata.

  2. Configura i seguenti servizi di esempio:

    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

  1. Configura l'estensione di autorizzazione.

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

      Le 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 wireFormat può essere EXT_AUTHZ_GRPC in modo che il callout utilizzi il protocollo ext_authz, anche se è supportato anche il protocollo ext_proc.

      Per impostazione predefinita, failOpen è impostato su false. 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à.

    2. Importa l'estensione di autorizzazione. Utilizza il gcloud beta service-extensions authz-extensions import comando 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
      
  2. 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.

    1. Definisci una policy di autorizzazione che associa l'estensione my-swp-authz-request-ext al 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"
      EOF
      

      Sostituisci PROJECT_ID con l' ID progetto.

      Per le policy di autorizzazione delle richieste, il valore di policyProfile deve essere REQUEST_AUTHZ.

      L'azione CUSTOM indica che un'estensione è associata al proxy.

      Per ulteriori informazioni su una risorsa policy di autorizzazione, consulta la authzPolicy documentazione di riferimento.

    2. Importa la policy di autorizzazione nel progetto. Utilizza il gcloud beta network-security authz-policies import comando 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

  1. Configura l'estensione di autorizzazione.

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

      Per le policy di autorizzazione dei contenuti, il valore di policyProfile deve essere CONTENT_AUTHZ.

      Per le policy CONTENT_AUTHZ, il valore wireFormat non deve essere impostato esplicitamente come EXT_PROC_GRPC. Per impostazione predefinita, il callout utilizza il protocollo ext_proc.

    2. Importa l'estensione di autorizzazione. Utilizza il gcloud beta service-extensions authz-extensions import comando 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
      
  2. Configura una policy di autorizzazione con l'estensione.

    1. Definisci una policy di autorizzazione che associa l'estensione my-swp-content-authz-ext al 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"
      EOF
      

      Per le policy di autorizzazione dei contenuti, il valore di policyProfile è impostato su CONTENT_AUTHZ. Questo valore indica che il provider di policy personalizzato elabora il traffico di richieste e risposte, inclusa l'elaborazione del corpo.

    2. Importa la policy di autorizzazione nel progetto. Utilizza il gcloud beta network-security authz-policies import comando 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:

Passaggi successivi