Configura le policy di autorizzazione per Secure Web Proxy

Questa pagina descrive come configurare le policy di autorizzazione per Secure Web Proxy.

Prima di iniziare

Crea una policy di autorizzazione

Questa sezione spiega come creare diversi tipi di policy di autorizzazione collegate a un'istanza di Secure Web Proxy.

Per creare una policy di autorizzazione per Secure Web Proxy:

Policy di autorizzazione basata sull'identità mTLS

Secure Web Proxy supporta l'applicazione di regole di sicurezza basate su identità derivate da certificati mutual TLS (mTLS). L'applicazione di regole basate su queste identità è particolarmente utile negli ambienti Zero Trust, in cui il traffico tra i client e il proxy è protetto da mTLS. Per saperne di più, consulta Criterio di autorizzazione basato sulle entità.

L'esempio seguente mostra una policy di autorizzazione per un'istanza di Secure Web Proxy denominata swp1. Questo esempio presuppone che il traffico verso il proxy utilizzi il protocollo HTTPS.

La policy con il profilo REQUEST_AUTHZ impone che tutto il traffico verso example.com/mcp richieda l'autenticazione mTLS da un principal specifico prima che il traffico possa passare. La policy nega anche tutto il traffico in uscita che non è destinato a example.com/mcp.

  1. Crea il file YAML della policy di autorizzazione.

    L'esempio seguente crea un file authz-policy.yaml. Il criterio consente il traffico verso l'host e il percorso specificati solo se il client presenta un certificato che corrisponde all'entità SPIFFE ID definita.

    $ cat >authz-policy.yaml <<EOF
    name: test-authz-policy-mtls
    target:
      resources:
      - "projects/ PROJECT_ID /locations/ LOCATION /gateways/swp1"
    policyProfile: REQUEST_AUTHZ
    httpRules:
    - to:
      operations:
      - hosts:
          - exact: "example.com"
        paths:
          - exact: "/mcp"
      from:
        sources:
        - principals:
          - principalSelector: CLIENT_CERT_URI_SAN
            principal:
              exact: "spiffe:// PROJECT_ID .global.123.workload.id.goog/ns/ns1/sa/hellomcp"
    action: ALLOW
    EOF
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo Google Cloud progetto
    • LOCATION: la regione dell'istanza Secure Web Proxy
  2. Crea una policy di autorizzazione e importa il file YAML utilizzando il comando gcloud network-security authz-policies import.

    gcloud beta network-security authz-policies import my-authz-policy-allow
        --source=authz-policy.yaml
        --location= LOCATION 
    

    Sostituisci LOCATION con la regione dell'istanza Secure Web Proxy.

Norme di autorizzazione basate su service account o tag

Puoi applicare un'autorizzazione basata su service account o tag collegati a varie risorse Google Cloud .

Questo esempio presuppone che tu abbia completato le seguenti operazioni:

Service account

  1. Crea un file YAML della policy di autorizzazione per consentire determinate richieste.

    L'esempio seguente crea un file authz-policy.yaml per l'istanza Secure Web Proxy denominata swp1. Il criterio è configurato per consentire alle richieste di un'istanza di macchina virtuale (VM) Compute Engine con il account di servizio my-sa-123@56788.iam.gserviceaccount.com di raggiungere il percorso example1.com/url1.

    $ cat >authz-policy.yaml <<EOF
    name: my-authz-policy-allow
    target:
        resources:
        - "projects/PROJECT_ID/locations/ LOCATION /gateways/swp1"
    policyProfile: REQUEST_AUTHZ
    httpRules:
    - from:
        sources:
            - resources:
                - iamServiceAccount:
                    exact: "my-sa-123@56788.iam.gserviceaccount.com"
      to:
        operations:
        - hosts:
            - exact: "example1.com"
        paths:
        - prefix: "/url1"
    action: ALLOW
    EOF
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo Google Cloud progetto
    • LOCATION: la regione della tua istanza Secure Web Proxy
  2. Crea una policy di autorizzazione e importa il file YAML utilizzando il comando gcloud network-security authz-policies import.

    Il seguente comando di esempio mostra come importare il file della policy creato in precedenza e creare una policy di autorizzazione:

    gcloud network-security authz-policies import my-authz-policy-allow
    
        --source=authz-policy.yaml
        --location= LOCATION 
    

    Sostituisci LOCATION con la regione dell'istanza Secure Web Proxy.

Tag

  1. Crea un file YAML della policy di autorizzazione per consentire determinate richieste.

    L'esempio seguente crea un file authz-policy-tag.yaml per l'istanza Secure Web Proxy denominata swp1. La policy consente solo le richieste provenienti da una risorsa Google Cloudcon un valore del tag TAG_VALUE_PERMANENT_ID di accedere al percorso dell'URL example1.com/url1.

    $ cat >authz-policy-tag.yaml <<EOF
    name: my-authz-policy-tag-allow
    target:
        resources:
        - "projects/PROJECT_ID/locations/ LOCATION /gateways/ GATEWAY_NAME "
    policyProfile: REQUEST_AUTHZ
    httpRules:
    - from:
        sources:
        - resources:
            - tagValueIdSet:
                ids: ["TAG_VALUE_PERMANENT_ID"]
      to:
        operations:
        - hosts:
            - exact: "example1.com"
            paths:
            - exact: "/url1"
    action: ALLOW
    EOF
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo Google Cloud progetto
    • LOCATION: la regione della tua istanza Secure Web Proxy
    • GATEWAY_NAME: nome del gateway Secure Web Proxy
    • TAG_VALUE_PERMANENT_ID: ID permanente di un valore tag, ad esempio tagValues/123456789012
  2. Crea una policy di autorizzazione e importa il file YAML utilizzando il comando gcloud network-security authz-policies import.

    Il seguente comando di esempio importa il file della policy creato in precedenza e crea una policy di autorizzazione nella regione Google Cloud specificata: