Utilizzare i tag per creare criteri

Questa pagina descrive come collegare i tag Resource Manager ai criteri di Secure Web Proxy. I tag Resource Manager sono etichette che puoi collegare a varie risorse Google Cloud , come le istanze di macchine virtuali (VM). Puoi utilizzare i tag per applicare controlli di accesso condizionale nella tua rete con le etichette organizzative esistenti.

Utilizzando questi tag, puoi eseguire le seguenti azioni:

  • Segmenta i carichi di lavoro: puoi identificare in modo univoco diversi ambienti come production o development e tipi di servizi come frontend o database.

  • Centralizza il controllo dell'accesso: puoi basare le tue policy Secure Web Proxy su questi tag. Ad esempio, puoi creare una regola di policy che recita: "Solo il traffico proveniente da risorse con il tag tag segment=production può accedere a un insieme specifico di URL".

Questa pagina mostra come:

Prima di iniziare

Crea 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 creare un proxy web che utilizzi la policy.

Crea una policy di sicurezza vuota

Console

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

    Vai alle 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 della norma, ad esempio My new swp policy.

  5. Per Regioni, seleziona la regione in cui vuoi creare il criterio, 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: il nome del progetto

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

    • POLICY_NAME: il nome della policy

    • POLICY_DESCRIPTION: la descrizione della policy

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

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

Crea un proxy web

Console

  1. Nella console Google Cloud , 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 web proxy, ad esempio myswp.

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

  5. Per Modalità di routing, seleziona l'opzione Esplicita.

  6. Per 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. Per Subnet, seleziona la subnet VPC che hai creato in precedenza nell'ambito dei passaggi di configurazione iniziali.

  9. (Facoltativo) Nel campo Indirizzo IP del proxy web, inserisci l'indirizzo IP del proxy web sicuro.

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

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

  11. Per 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
    addresses: [GATEWAY_IP_ADDRESS]
    scope: samplescope
    

    Sostituisci quanto segue:

    • GATEWAY_NAME: il nome di questa istanza di Secure Web Proxy

    • GATEWAY_PORT_NUMBERS: elenco dei numeri di porta per questo gateway, ad esempio [80,443]

    • CERTIFICATE_URLS: elenco degli URL dei certificati SSL

    • SUBNETWORK: la subnet VPC che hai creato in precedenza nell'ambito dei passaggi di configurazione iniziali.

    • GATEWAY_IP_ADDRESS: elenco facoltativo di indirizzi IP per le istanze Secure Web Proxy all'interno delle subnet proxy create in precedenza nei passaggi di configurazione iniziali.

      Se scegli di non elencare gli indirizzi IP, ometti il campo per consentire al proxy web di scegliere un indirizzo IP per te.

  3. Crea l'istanza del proxy web sicuro utilizzando il comando gcloud network-services gateways import:

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

Testa la connettività

Per testare la connettività, utilizza il comando curl da qualsiasi istanza di macchina virtuale (VM) all'interno della tua 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 implementata correttamente e riceve attivamente traffico.

  • Il criterio del proxy web sicuro applica correttamente la postura di sicurezza predefinita di rifiuto di tutto il traffico finché non definisci regole allow specifiche nelle sezioni successive.

Crea e collega tag di Resource Manager

  1. Creare chiavi e valori dei tag sicuri

    Esempio: per creare un tag per gli ambienti con limitazioni, segui questi passaggi:

    1. Crea la chiave tag (access-level) utilizzando il comando gcloud resource-manager tags keys create con lo scopo impostato su GCE_FIREWALL.

    2. Recupera l'ID chiave tag dall'output del comando di creazione o utilizzando il comando gcloud resource-manager tags keys list. Questo ID è necessario per collegare i valori dei tag a questa chiave tag specifica.

    3. Crea il valore del tag (restricted) utilizzando il comando gcloud resource-manager tags values create, specificando l'ID chiave del tag come elemento principale.

    # Create the tag key
    # The output provides a unique ID, such as "tagKeys/1234567890"
    
    gcloud resource-manager tags keys create "access-level" \
        --parent="organizations/1234567890" \
        --purpose="GCE_FIREWALL" \
        --purpose-values="execution_env=ANS"
    
    # Create the tag value and connect it to the key
    # The "--parent" flag identifies to which key this value belongs
    
    gcloud resource-manager tags values create "restricted" \
        --parent="tagKeys/1234567890"
    
  2. Assegna tag alle istanze VM

    Il collegamento di questi tag associa il traffico in uscita dalle istanze VM a un'identità di tag specifica, il che consente al proxy di riconoscere il carico di lavoro e applicare le regole dei criteri di sicurezza.

    Esempio: supponiamo di avere un'istanza VM denominata internal-tool. Puoi collegare il valore del tag restricted a internal-tool utilizzando il comando gcloud resource-manager tags bindings create. L'assegnazione di questo tag consente al proxy di identificare il traffico proveniente dall'istanza VM internal-tool.

    # Attach the "restricted" tag to a specific VM instance
    
    
    gcloud resource-manager tags bindings create \
        --parent="//[compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/internal-tool](https://compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/internal-tool)" \
        --tag-value="tagValues/987654321"
    

Crea una regola Secure Web Proxy

Console

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

    Vai alle 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.

    3. Nel campo Descrizione, inserisci una descrizione della regola.

    4. Per 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. Per il 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 l'ID univoco del tag che hai creato nella sezione precedente. Ad esempio:

      sessionMatcher: "source.matchTag('TAG_VALUE') && host() == 'example.com'"
      

      Per maggiori informazioni sulla sintassi di SessionMatcher, consulta il riferimento al linguaggio del matcher CEL.

    7. Nella sezione Corrispondenza dell'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 il file rule.yaml.

  2. Per consentire l'accesso a un URL dal tag richiesto, aggiungi quanto segue al file rule.yaml:

    name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME/rules/RULE_NAME
    description: RULE_DESCRIPTION
    enabled: true
    priority: RULE_PRIORITY
    sessionMatcher: CEL_EXPRESSION
    basicProfile: ALLOW
    

    Sostituisci quanto segue:

    • RULE_NAME: il nome di questa regola
    • RULE_DESCRIPTION: descrizione della regola
    • RULE_PRIORITY: priorità di questa regola; un numero inferiore corrisponde a una priorità più alta
    • CEL_EXPRESSION: un'espressione CEL (Common Expression Language). Per saperne di più, consulta il riferimento al linguaggio del matcher CEL.

    Ad esempio, per consentire l'accesso a example.com dal tag richiesto, aggiungi la seguente riga sessionMatcher al file YAML:

    sessionMatcher: "source.matchTag('TAG_VALUE') && host() == 'example.com'"
    

    Sostituisci TAG_VALUE con il tag che vuoi consentire. Assicurati che il tag segua il formato dell'identificatore della risorsa numerica, ad esempio tagValues/567890123456.

  3. Importa le regole che hai creato utilizzando il comando gcloud network-security gateway-security-policies rules import:

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

Testa la configurazione dei criteri

Puoi testare di nuovo la connettività per verificare che i criteri di Secure Web Proxy, che si basano sui tag di Resource Manager per l'identità, funzionino come previsto.

Per testare la connettività, utilizza il comando curl da qualsiasi VM associata al tag TAG_VALUE appropriato.

curl -x https://IPv4_ADDRESS:443 http://example.com
--proxy-insecure

Sostituisci IPv4_ADDRESS con l'indirizzo IPv4 della tua istanza Secure Web Proxy.

Se tutto funziona correttamente, ricevi un codice di stato 200 OK o 403 Forbidden. Queste risposte confermano i seguenti risultati chiave:

  • Operazione riuscita basata sui tag: un codice di stato 200 OK convalida che il traffico proveniente da una VM con il tag Resource Manager corretto collegato corrisponda alla regola del criterio e sia consentito tramite il proxy. Questa corrispondenza verificata comporta una connessione riuscita.

  • Negazione basata su tag: un codice di stato 403 Forbidden verifica che l'accesso al traffico da una VM senza il tag specificato o con un tag errato sia correttamente negato dalla policy. Questa applicazione dimostra che la segmentazione e l'applicazione basate sui tag funzionano come previsto.

Passaggi successivi