Utilizzare gli elenchi di URL per creare criteri

Questa pagina spiega come utilizzare gli elenchi di URL per creare e gestire policy di accesso granulari per il traffico web in uscita all'interno dell'istanza di Secure Web Proxy. Anziché creare singole regole per ogni sito web, gli elenchi di URL ti consentono di definire una raccolta riutilizzabile e centralizzata di domini, nomi host e pattern di URL specifici.

Ecco alcuni vantaggi chiave dell'utilizzo degli elenchi di URL:

  • Semplificare la gestione delle policy: puoi applicare un ampio set di allow o deny regole con un singolo riferimento nella policy di sicurezza.

  • Applicare un controllo preciso: puoi utilizzare una sintassi specifica per trovare corrispondenze con interi domini, sottodomini o percorsi URL esatti. In questo modo, i tuoi workload possono accedere solo alle destinazioni autorizzate.

  • Proteggere l'accesso web: puoi proteggere e controllare in modo efficiente l'accesso web nel tuo ambiente. Google Cloud

Prima di iniziare

  • Completa i passaggi della configurazione iniziale.

  • Verifica di aver installato Google Cloud CLI versione 406.0.0 o successive:

    gcloud version | head -n1
    

    Se hai installato una versione precedente di gcloud CLI, aggiornala:

    gcloud components update --version=406.0.0
    

Creare un'istanza di Secure Web Proxy con una policy vuota

Per creare un'istanza di Secure Web Proxy, devi prima creare una policy di sicurezza vuota e poi un proxy web che la utilizzi.

Creare una policy di sicurezza vuota

Console

  1. Nella Google Cloud console, vai alla pagina Policy SWP.

    Vai a Policy SWP

  2. Fai clic su Crea una policy.

  3. Nel campo Nome, inserisci un nome per la policy, ad esempio myswppolicy.

  4. Nel campo Descrizione, inserisci una descrizione per la policy, ad esempio My new swp policy.

  5. In Regioni, seleziona la regione in cui vuoi creare la policy, ad esempio us-central1.

  6. Fai clic su Crea.

Cloud Shell

  1. Utilizza l'editor di testo che preferisci per creare un file policy.yaml.

  2. Aggiungi quanto segue al file policy.yaml che hai creato:

    name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME
    description: POLICY_DESCRIPTION
    

    Sostituisci quanto segue:

    • PROJECT_NAME: nome del progetto

    • REGION: regione in cui viene creata la policy, ad esempio us-central1

    • POLICY_NAME: nome della policy

    • POLICY_DESCRIPTION: descrizione della policy

  3. Importa la policy di sicurezza utilizzando il gcloud network-security gateway-security-policies import comando:

    gcloud network-security gateway-security-policies import POLICY_NAME \
        --source=POLICY_FILE.yaml \
        --location=REGION
    

Creare un proxy web

Console

  1. Nella Google Cloud console, vai alla pagina Proxy web.

    Vai a Proxy web

  2. Fai clic su Crea un proxy web sicuro.

  3. Nel campo Nome, inserisci un nome per il proxy web, ad esempio myswp.

  4. Nel campo Descrizione, inserisci una descrizione per il proxy web, ad esempio My new swp.

  5. In Modalità di routing, seleziona una delle seguenti opzioni:

    • Esplicita: esegue il deployment dell'istanza di Secure Web Proxy in modalità proxy esplicita.
    • Hop successivo: esegue il deployment dell'istanza di Secure Web Proxy in modalità hop successivo.
  6. In Regioni, seleziona la regione in cui vuoi creare il proxy web, ad esempio us-central1.

  7. In Rete, seleziona la rete in cui vuoi creare il proxy web.

  8. In Subnet, seleziona la subnet VPC che hai creato durante la configurazione iniziale.

  9. (Facoltativo) Nel campo Indirizzo IP del proxy web, inserisci l'indirizzo IP di Secure Web Proxy.

    Puoi inserire un indirizzo IP dall'intervallo di indirizzi IP di Secure Web Proxy che si trovano nella subnet creata nel passaggio precedente. Se non inserisci l'indirizzo IP, l'istanza di Secure Web Proxy ne sceglie automaticamente uno dalla subnet selezionata.

  10. In Certificato, seleziona il certificato che vuoi utilizzare per creare il proxy web.

  11. In Policy, seleziona la policy che hai creato per associare il proxy web.

  12. Fai clic su Crea.

Cloud Shell

  1. Utilizza l'editor di testo che preferisci per creare un file gateway.yaml.

  2. Aggiungi quanto segue al file gateway.yaml:

    name: projects/PROJECT_NAME/locations/REGION/gateways/GATEWAY_NAME
    type: SECURE_WEB_GATEWAY
    ports: [GATEWAY_PORT_NUMBERS]
    certificateUrls: [CERTIFICATE_URLS]
    gatewaySecurityPolicy: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME
    network: projects/PROJECT_NAME/global/networks/NETWORK_NAME
    subnetwork: projects/PROJECT_NAME/regions/REGION/subnetworks/SUBNETWORK
    routingMode: ROUTING_MODE
    addresses: [GATEWAY_IP_ADDRESS]
    scope: samplescope
    

    Sostituisci quanto segue:

  3. Crea l'istanza di Secure Web Proxy utilizzando il gcloud network-services gateways import comando:

    gcloud network-services gateways import GATEWAY_NAME \
        --source=gateway.yaml \
        --location=REGION
    

Testare la connettività

Per testare la connettività, utilizza il comando curl da qualsiasi istanza di macchina virtuale (VM) all'interno della rete Virtual Private Cloud (VPC):

  curl -x https://GATEWAY_IP_ADDRESS:PORT_NUMBER https://www.example.com --proxy-insecure

Se tutto funziona correttamente, l'istanza di Secure Web Proxy restituisce un codice di stato 403 Forbidden. Questo errore conferma quanto segue:

  • L'istanza di Secure Web Proxy è stata eseguita correttamente e riceve attivamente il traffico.

  • La policy di Secure Web Proxy applica correttamente la postura di sicurezza predefinita di rifiuto di tutto il traffico finché non definisci regole allow specifiche nelle sezioni successive.

Creare e configurare un elenco di URL

Console

  1. Nella Google Cloud console, vai alla pagina Elenchi di URL.

    Vai a Elenchi di URL

  2. Fai clic su Crea un elenco di URL. Si apre la pagina Crea elenco di URL.

  3. Nel campo Nome, inserisci un nome per l'elenco di URL, ad esempio example-org-allowed-list.

  4. Nel campo Descrizione, inserisci una descrizione per l'elenco di URL, ad esempio My new URL list.

  5. In Regioni, seleziona la regione in cui vuoi creare l'elenco di URL, ad esempio us-central1.

  6. Per aggiungere l'elenco di host, URL o pattern da trovare, nel campo Elenco di URL , inserisci i dettagli o fai clic su Carica elenco per caricare un elenco personalizzato di URL. Per saperne di più, consulta il riferimento alla sintassi di UrlList.

  7. Fai clic su Crea.

Cloud Shell

  1. Utilizza l'editor di testo che preferisci per creare il file url_list.yaml.

  2. Aggiungi quanto segue al file url_list.yaml:

      name: projects/PROJECT_ID/locations/REGION/urlLists/URL_LIST_NAME
      values: URL_LIST
    

    Sostituisci quanto segue:

    • PROJECT_ID: ID univoco del tuo Google Cloud progetto

    • REGION: regione in cui viene creato l'elenco di URL, ad esempio us-central1

    • URL_LIST_NAME: nome dell'elenco di URL

    • URL_LIST: elenco di host, URL o pattern da trovare

    Per saperne di più, consulta il riferimento alla sintassi di UrlList .

    Di seguito è riportato un esempio di file di regole dell'elenco di URL:

    name: projects/PROJECT_ID/locations/REGION/urlLists/example-org-allowed-list
    values:
      - www.example.com
      - about.example.com
      - "*.google.com"
      - "github.com/example-org/*"
    

    Il carattere asterisco (*) ha un significato speciale in YAML. Devi aggiungere le virgolette intorno agli URL che includono un carattere *.

  3. Importa l'elenco di URL che hai creato utilizzando il gcloud network-security url-lists import comando in modo che la regola di Secure Web Proxy possa farvi riferimento.

    gcloud network-security url-lists import URL_LIST_NAME \
        --location=REGION \
        --project=PROJECT_ID \
        --source=url_list.yaml
    

Aggiungere una regola di Secure Web Proxy

Console

  1. Nella Google Cloud console, vai alla pagina Policy SWP.

    Vai a Policy SWP

  2. Fai clic sul nome della policy, ad esempio myswppolicy.

  3. Fai clic su Aggiungi regola.

  4. Per ogni regola, procedi nel seguente modo:

    1. In Priorità, inserisci un ordine di valutazione numerico per la regola. Le regole vengono valutate dalla priorità più alta a quella più bassa, dove 0 è la priorità più alta.

    2. Nel campo Nome, inserisci un nome per la regola, ad esempio allow-org-url-list.

    3. Nel campo Descrizione, inserisci una descrizione per la regola.

    4. In Azione, seleziona una delle seguenti opzioni:

      • Consenti: per consentire le richieste di connessione che corrispondono alla regola.
      • Nega: per negare le richieste di connessione che corrispondono alla regola.
    5. Nel campo Stato, seleziona una delle seguenti opzioni per l'applicazione della regola:

      • Attivato: per applicare la regola all'istanza di Secure Web Proxy.
      • Disattivato: per non applicare la regola all'istanza di Secure Web Proxy.
    6. Nella sezione Corrispondenza sessione, specifica il nome univoco dell'elenco di URL che hai creato nella sezione precedente. Ad esempio:

        sessionMatcher: "inUrlList(host(), 'projects/PROJECT_ID/locations/REGION/urlLists/URL_LIST_NAME)"
      

      Per saperne di più sulla sintassi di SessionMatcher, consulta il riferimento al linguaggio del matcher CEL.

    7. Nella sezione Corrispondenza applicazione, specifica i criteri per la corrispondenza della richiesta.

    8. Fai clic su Aggiungi regola.

Cloud Shell

  1. Utilizza l'editor di testo che preferisci per creare un file rule.yaml.

  2. Aggiungi quanto segue al file rule.yaml:

    name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/POLICY_NAME/rules/RULE_NAME
    basicProfile: ALLOW
    enabled: true
    priority: RULE_PRIORITY
    description: RULE_DESCRIPTION
    sessionMatcher: SESSION_CEL_EXPRESSION
    applicationMatcher: APPLICATION_CEL_EXPRESSION
    

    Sostituisci quanto segue:

    • PROJECT_ID: ID univoco del tuo Google Cloud progetto

    • REGION: regione a cui si applica questa regola

    • POLICY_NAME: nome di una policy di sicurezza esistente utilizzata dall'istanza di Secure Web Proxy

    • RULE_NAME: nome della regola

    • PRIORITY_VALUE: priorità della regola; un numero inferiore corrisponde a una priorità più alta

    • RULE_DESCRIPTION: descrizione della regola

    • SESSION_CEL_EXPRESSION: un'espressione CEL (Common Expression Language). Per saperne di più, consulta il riferimento al linguaggio del matcher CEL .

    • APPLICATION_CEL_EXPRESSION: un'espressione CEL per l'applicazione

    Di seguito è riportato un esempio di file di regole:

    name: projects/PROJECT_ID/locations/REGION/urlLists/allow-repos
    basicProfile: ALLOW
    enabled: true
    priority: 100
    description: Allow access to our list of known code repos.
    sessionMatcher: "inUrlList(host(), 'projects/PROJECT_ID/locations/REGION/urlLists/URL_LIST_NAME')"
    

  3. Importa la regola che hai creato utilizzando il gcloud network-security gateway-security-policies rules import comando.

        gcloud network-security gateway-security-policies rules import RULE_NAME \
          --location=REGION \
          --project=PROJECT_ID \
          --source=rule.yaml \
          --gateway-security-policy=POLICY_NAME
    

Testare la configurazione della policy

Puoi testare di nuovo la connettività per verificare che le regole di accesso basate sull'elenco di URL siano configurate correttamente e applicate attivamente dall'istanza di Secure Web Proxy.

Per testare la connettività, utilizza il seguente comando curl:

curl -x https://SWP_IP_ADDRESS:SWP_PORT_NUMBER HTTP_TEST_ADDRESS
--proxy-insecure

Sostituisci quanto segue:

  • SWP_IP_ADDRESS: indirizzo IP dell'istanza di Secure Web Proxy

  • SWP_PORT_NUMBER: numero di porta del proxy web, ad esempio 443

  • HTTP_TEST_ADDRESS: un indirizzo da testare, ad esempio https://www.example.com. Corrisponde a una voce host o URL in url_list.

Se tutto funziona correttamente, ricevi una risposta 200 OK. Questa risposta conferma che il traffico in uscita verso un URL elencato nell'elenco di URL e a cui fa riferimento la regola della policy di sicurezza è consentito correttamente tramite l'istanza di Secure Web Proxy.

Passaggi successivi