Configura i criteri di sicurezza di Google Cloud Armor

Utilizza queste istruzioni per creare criteri di sicurezza Google Cloud Armor per filtrare il traffico in entrata verso le seguenti destinazioni:

  • Bilanciatore del carico delle applicazioni esterno globale
  • Bilanciatore del carico delle applicazioni classico
  • Bilanciatore del carico delle applicazioni esterno regionale
  • Bilanciatore del carico delle applicazioni interno regionale
  • Bilanciatore del carico di rete proxy esterno
  • Bilanciatore del carico di rete proxy classico
  • Bilanciatore del carico di rete passthrough esterno
  • Forwarding del protocollo
  • VM con indirizzi IP pubblici

Per informazioni concettuali sui criteri di sicurezza, consulta la panoramica dei criteri di sicurezza di Google Cloud Armor.

Prima di iniziare

Prima di configurare i criteri di sicurezza, segui questi passaggi:

  • Assicurati di conoscere i concetti relativi ai bilanciatori del carico delle applicazioni esterni.

  • Esamina i servizi di backend esistenti per determinare quali non hanno già un criterio di sicurezza associato. Questi servizi di backend e i relativi backend associati non sono protetti da Google Cloud Armor. Per aggiungere la protezione offerta da Google Cloud Armor, segui le istruzioni riportate in questo documento per collegare un criterio di sicurezza appena creato o esistente al servizio di backend.

Configura le autorizzazioni IAM per i criteri di sicurezza di Google Cloud Armor

Le seguenti operazioni richiedono il ruolo Amministratore sicurezza per l'elaborazione (roles/compute.securityAdmin) di Identity and Access Management (IAM):

  • Configurazione, modifica, aggiornamento ed eliminazione di un criterio di sicurezza di Google Cloud Armor
  • Utilizzando i seguenti metodi API:
    • SecurityPolicies insert
    • SecurityPolicies delete
    • SecurityPolicies patch
    • SecurityPolicies addRule
    • SecurityPolicies patchRule
    • SecurityPolicies removeRule

Un utente con il ruolo Amministratore rete Compute (roles/compute.networkAdmin) può eseguire le seguenti operazioni:

  • Impostazione di un criterio di sicurezza di Google Cloud Armor per un servizio di backend
  • Utilizzando i seguenti metodi API:
    • BackendServices setSecurityPolicy
    • BackendServices list (solo gcloud)

Gli utenti con il ruolo Amministratore sicurezza (roles/iam.securityAdmin) e il ruolo Amministratore rete di Compute possono visualizzare i criteri di sicurezza di Google Cloud Armor utilizzando i metodi SecurityPolicies dell'API get, list e getRule.

Configurare le autorizzazioni IAM per i ruoli personalizzati

La tabella seguente elenca le autorizzazioni di base dei ruoli IAM e i relativi metodi API associati.

Autorizzazioni IAM Metodi API
compute.securityPolicies.create SecurityPolicies insert
compute.securityPolicies.delete SecurityPolicies delete
compute.securityPolicies.get SecurityPolicies get
SecurityPolicies getRule
compute.securityPolicies.list SecurityPolicies list
compute.securityPolicies.use BackendServices setSecurityPolicy
compute.securityPolicies.update SecurityPolicies patch
SecurityPolicies addRule
SecurityPolicies patchRule
SecurityPolicies removeRule
compute.backendServices.setSecurityPolicy BackendServices setSecurityPolicy

Crea criteri di sicurezza

Puoi configurare i criteri, le regole e le espressioni di sicurezza di Google Cloud Armor utilizzando la console Google Cloud, Google Cloud CLI o l'API REST. Quando utilizzi gcloud CLI per creare criteri di sicurezza, utilizza il flag --type per specificare se il criterio di sicurezza è un criterio di sicurezza di backend o di sicurezza di confine.

Se non hai dimestichezza con la configurazione dei criteri di sicurezza, ti consigliamo di esaminare alcuni criteri di sicurezza di esempio.

Espressioni di esempio

Di seguito sono riportate alcune espressioni di esempio. Per ulteriori informazioni sulle espressioni, consulta il riferimento per il linguaggio delle regole personalizzate di Google Cloud Armor.

Se configuri una regola o un'espressione che utilizza i codici paese o regione ISO 3166-1 alpha 2, Google Cloud Armor tratta ogni codice in modo indipendente. Le regole e le espressioni di Google Cloud Armor utilizzano esplicitamente questi codici regione per consentire o negare le richieste.

  • La seguente espressione corrisponde alle richieste dall'indirizzo IP 1.2.3.4 e contiene la stringa example nell'intestazione user-agent:

    inIpRange(origin.ip, '1.2.3.4/32') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('example')
    

    In alternativa, puoi eseguire la corrispondenza sull'intervallo di indirizzi IP di un intestazione dell'indirizzo IP client personalizzato utilizzando l'attributo origin.user_ip:

    inIpRange(origin.user_ip, '1.2.3.4/32') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('example')
    
  • La seguente espressione corrisponde alle richieste che hanno un cookie con un valore specifico:

    has(request.headers['cookie']) && request.headers['cookie'].contains('cookie_name=cookie_value')
    
  • La seguente espressione corrisponde alle richieste provenienti dalla regione AU:

    origin.region_code == 'AU'
    
  • La seguente espressione corrisponde alle richieste provenienti dalla regione AU che non rientrano nell'intervallo IP specificato:

    origin.region_code == "AU" && !inIpRange(origin.ip, '1.2.3.0/24')
    
  • La seguente espressione corrisponde alle richieste con un percorso variabile numerato a un file specifico se l'URI corrisponde a un'espressione regolare:

    request.path.matches('/path/[0-9]+/target_file.html')
    
  • La seguente espressione corrisponde alle richieste se il valore decodificato in Base64 dell'intestazione user-id contiene un valore specifico:

    has(request.headers['user-id']) && request.headers['user-id'].base64Decode().contains('myValue')
    
  • La seguente espressione utilizza un insieme di espressioni preconfigurate per trovare corrispondenze con gli attacchi SQLi:

    evaluatePreconfiguredExpr('sqli-stable')
    

Gestire i criteri di sicurezza

Utilizza le sezioni seguenti per elencare i criteri di sicurezza nel progetto, aggiornarli, eliminarli o testarli.

Elenca criteri di sicurezza

Segui queste istruzioni per elencare tutti i criteri di sicurezza di Google Cloud Armor nel progetto corrente o in un progetto specificato.

Console

  1. Nella console Google Cloud, vai alla pagina Criteri di Google Cloud Armor.

    Vai ai criteri di Google Cloud Armor

  2. Per visualizzare una determinata norma, fai clic sul nome della norma nell'elenco delle norme nella pagina Norme di sicurezza.

gcloud

gcloud compute security-policies list

Ad esempio:

gcloud compute security-policies list
NAME
my-policy

Per ulteriori informazioni, consulta gcloud compute security-policies list.

Aggiornamento dei criteri di sicurezza

Segui queste istruzioni per aggiornare un criterio di sicurezza di Google Cloud Armor. Ad esempio, puoi modificare la descrizione del criterio, il comportamento della regola predefinita, il servizio di backend di destinazione o aggiungere nuove regole.

Console

  1. Nella console Google Cloud, vai alla pagina Criteri di Google Cloud Armor.

    Vai ai criteri di Google Cloud Armor

  2. Per aggiornare una determinata norma, nella pagina Criteri di sicurezza, fai clic su Menu accanto alla norma che vuoi aggiornare nell'elenco dei criteri.

    • Per aggiornare la descrizione delle norme dell'azione della regola predefinita, seleziona Modifica, apporta le modifiche e poi fai clic su Aggiorna.
    • Per aggiungere una regola, seleziona Aggiungi regola e segui le istruzioni riportate in Aggiunta di regole a un criterio di sicurezza.
    • Per modificare il servizio di backend di destinazione per il criterio, seleziona Applica criterio al target, fai clic su Aggiungi target, seleziona un target e poi fai clic su Aggiungi.

gcloud

Per aggiornare un criterio di sicurezza, segui le seguenti istruzioni di Google Cloud CLI:

Elimina policy di sicurezza

Segui queste istruzioni per eliminare un criterio di sicurezza di Google Cloud Armor. Devi rimuovere tutti i servizi di backend dalla policy prima di poterla eliminare.

Console

  1. Nella console Google Cloud, vai alla pagina Criteri di Google Cloud Armor.

    Vai ai criteri di Google Cloud Armor

  2. Nella pagina Norme di sicurezza, seleziona la casella di controllo accanto al nome della norma di sicurezza da eliminare.

  3. Nell'angolo in alto a destra della pagina, fai clic su Elimina.

gcloud

Utilizza gcloud compute security-policies delete NAME. Sostituisci NAME con il nome del criterio di sicurezza:

gcloud compute security-policies delete NAME

Testare i criteri di sicurezza

Ti consigliamo di implementare tutte le nuove regole in modalità di anteprima, quindi di esaminare i log delle richieste per verificare che le norme e le regole funzionino come previsto.

Gestire le regole dei criteri di sicurezza

Utilizza le sezioni seguenti per elencare le regole del criterio di sicurezza, aggiungerle, aggiornarle o eliminarle.

Elenca le regole in un criterio di sicurezza

Utilizza queste istruzioni per elencare le regole in un criterio di sicurezza di Google Cloud Armor.

Console

  1. Nella console Google Cloud, vai alla pagina Criteri di Google Cloud Armor.

    Vai ai criteri di Google Cloud Armor

  2. Nella pagina Criteri di sicurezza, fai clic sul nome del criterio di sicurezza. Viene visualizzata la pagina Dettagli norme e le regole delle norme sono elencate nella scheda Regole al centro della pagina.

gcloud

Utilizza il seguente comando gcloud per elencare tutte le regole di un singolo criterio di sicurezza, insieme a una descrizione del criterio:

gcloud compute security-policies describe NAME \

Utilizza il seguente comando gcloud per descrivere una regola con la priorità specificata nel criterio di sicurezza specificato:

gcloud compute security-policies rules describe PRIORITY \
    --security-policy POLICY_NAME

Ad esempio, il seguente comando descrive la regola con priorità 1000 nel criterio di sicurezza my-policy:

gcloud compute security-policies rules describe 1000 \
    --security-policy my-policy

Output:

action: deny(403)
description: block traffic from 192.0.2.0/24 and 198.51.100.0/24
kind: compute#securityPolicyRule
match:
  srcIpRanges:
  - '192.0.2.0/24'
  - '198.51.100.0/24'
preview: false
priority: 1000

Aggiungere regole a un criterio di sicurezza

Segui queste istruzioni per aggiungere regole a un criterio di sicurezza Google Cloud Armor.

Console

  1. Nella console Google Cloud, vai alla pagina Criteri di Google Cloud Armor.

    Vai ai criteri di Google Cloud Armor

  2. Nella pagina Criteri di sicurezza, fai clic sul nome del criterio di sicurezza. Viene visualizzata la pagina Dettagli norme.

  3. Al centro della pagina, fai clic sulla scheda Regole.

  4. Fai clic su Aggiungi regola.

  5. (Facoltativo) Inserisci una descrizione della regola.

  6. Seleziona la modalità:

    • Modalità di base: consente o nega il traffico in base agli indirizzi IP o agli intervalli IP.
    • Modalità avanzata: consente o nega il traffico in base alle espressioni delle regole.
  7. Nel campo Corrispondenza, specifica le condizioni in base alle quali si applica la regola:

    • Modalità di base: inserisci da uno (1) a cinque (5) intervalli di indirizzi IP da associare nella regola.
    • Modalità avanzata: inserisci un'espressione o sottoespressioni da valutare in base alle richieste in arrivo. Per informazioni su come scrivere le espressioni e leggere gli esempi riportati di seguito, consulta il riferimento al linguaggio delle regole personalizzate.

      • La seguente espressione corrisponde alle richieste dall'indirizzo IP 1.2.3.4 e contiene la stringa example nell'intestazione user-agent:

        inIpRange(origin.ip, '1.2.3.4/32') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('example')
        
      • La seguente espressione corrisponde alle richieste che hanno un cookie con un valore specifico:

        has(request.headers['cookie']) && request.headers['cookie'].contains('cookie_name=cookie_value')
        
      • La seguente espressione corrisponde alle richieste provenienti dalla regione AU:

        origin.region_code == 'AU'
        
      • La seguente espressione corrisponde alle richieste provenienti dalla regione AU che non rientrano nell'intervallo IP specificato:

        origin.region_code == "AU" && !inIpRange(origin.ip, '1.2.3.0/24')
        
      • La seguente espressione corrisponde alle richieste se l'URI corrisponde a un'espressione regolare:

        request.path.matches('/example_path/')
        
      • La seguente espressione corrisponde alle richieste se il valore decodificato in Base64 dell'intestazione user-id contiene un valore specifico:

        has(request.headers['user-id']) && request.headers['user-id'].base64Decode().contains('myValue')
        
      • La seguente espressione utilizza un'espressione preconfigurata impostata per trovare corrispondenze con gli attacchi SQLi:

        evaluatePreconfiguredExpr('sqli-stable')
        
  8. Per Azione, seleziona Consenti o Nega.

  9. Se stai configurando una regola di rifiuto, seleziona un messaggio Stato di rifiuto.

  10. Se vuoi attivare la modalità di anteprima per la regola, seleziona la casella di controllo Attiva.

  11. Nel campo Priority (Priorità), inserisci un numero intero positivo.

  12. Fai clic su Aggiungi.

gcloud

Utilizza il comando gcloud compute security-policies rules create PRIORITY. Sostituisci PRIORITY con la priorità della regola nel criterio:

gcloud compute security-policies rules create PRIORITY \
    --security-policy POLICY_NAME \
    --description DESCRIPTION \
    --src-ip-ranges IP_RANGES | --expression EXPRESSION \
    --action=[ allow | deny-403 | deny-404 | deny-502 ] \
    --preview

Ad esempio, il seguente comando aggiunge una regola per bloccare il traffico dagli intervalli di indirizzi IP 192.0.2.0/24 e 198.51.100.0/24. La regola ha priorità 1000 ed è una regola in un criterio denominato my-policy:

gcloud compute security-policies rules create 1000 \
    --security-policy my-policy \
    --description "block traffic from 192.0.2.0/24 and 198.51.100.0/24" \
    --src-ip-ranges "192.0.2.0/24","198.51.100.0/24" \
    --action "deny-403"

Utilizza il flag --expression per specificare una condizione nel riferimento per il linguaggio delle regole personalizzate. Il seguente comando aggiunge una regola per consentire il traffico dall'indirizzo IP 1.2.3.4 e contiene la stringa example nell'intestazione user-agent:

gcloud compute security-policies rules create 1000 \
    --security-policy my-policy \
    --expression "inIpRange(origin.ip, '1.2.3.4/32') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('example')" \
    --action allow \
    --description "Block User-Agent 'example'"

Il seguente comando aggiunge una regola per bloccare le richieste se il cookie della richiesta contiene un valore specifico:

gcloud compute security-policies rules create 1000 \
    --security-policy my-policy \
    --expression "has(request.headers['cookie']) && request.headers['cookie'].contains('80=BLAH')" \
    --action deny-403 \
    --description "Cookie Block"

Il seguente comando aggiunge una regola per bloccare le richieste provenienti dalla regione AU:

gcloud compute security-policies rules create 1000 \
    --security-policy my-policy \
    --expression "origin.region_code == 'AU'" \
    --action deny-403 \
    --description "AU block"

Il seguente comando aggiunge una regola per bloccare le richieste provenienti dalla regione AU che non rientrano nell'intervallo IP specificato:

gcloud compute security-policies rules create 1000 \
    --security-policy my-policy \
    --expression "origin.region_code == "AU" && !inIpRange(origin.ip, '1.2.3.0/24')" \
    --action deny-403 \
    --description "country and IP block"

Il seguente comando aggiunge una regola per bloccare le richieste con un URI che corrisponde a un'espressione regolare:

gcloud compute security-policies rules create 1000 \
    --security-policy my-policy \
    --expression "request.path.matches('/example_path/')" \
    --action deny-502 \
    --description "regex block"

Il seguente comando aggiunge una regola per bloccare le richieste se il valore decodificato in base64 dell'intestazione user-id contiene un valore specifico:

gcloud compute security-policies rules create 1000 \
    --security-policy my-policy \
    --expression "has(request.headers['user-id']) && request.headers['user-id'].base64Decode().contains('myValue')" \
    --action deny-403 \
    --description "country and IP block"

Il seguente comando aggiunge una regola che utilizza un insieme di espressioni preconfigurate per mitigare gli attacchi SQLi:

gcloud compute security-policies rules create 1000 \
    --security-policy my-policy \
    --expression "evaluatePreconfiguredExpr('sqli-stable')" \
    --action deny-403

Aggiornare una singola regola in un criterio di sicurezza

Segui queste istruzioni per aggiornare una singola regola in un criterio di sicurezza di Google Cloud Armor. Per aggiornare più regole in modo atomico, consulta Aggiornare più regole in modo atomico in un criterio di sicurezza.

Console

  1. Nella console Google Cloud, vai alla pagina Criteri di Google Cloud Armor.

    Vai ai criteri di Google Cloud Armor

  2. Nella pagina Criteri di sicurezza, fai clic sul nome del criterio di sicurezza. Viene visualizzata la pagina Dettagli norme.

  3. Al centro della pagina, fai clic sulla scheda Regole.

  4. Accanto alla regola che vuoi aggiornare, fai clic su Modifica. Viene visualizzata la pagina Modifica regola.

  5. Apporta le modifiche e fai clic su Aggiorna.

gcloud

Utilizza questo comando per aggiornare una regola con la priorità specificata in un criterio di sicurezza designato. Puoi aggiornare un solo criterio di sicurezza alla volta utilizzando questo comando:

gcloud compute security-policies rules update PRIORITY [ \
    --security-policy POLICY_NAME  \
    --description DESCRIPTION  \
    --src-ip-ranges IP_RANGES  | --expression EXPRESSION \
    --action=[ allow | deny-403 | deny-404 | deny-502 ]  \
    --preview
  ]
  

Ad esempio, il seguente comando aggiorna una regola con priorità 1111 per consentire il traffico dall'intervallo di indirizzi IP 192.0.2.0/24:

gcloud compute security-policies rules update 1111 \
    --security-policy my-policy \
    --description "allow traffic from 192.0.2.0/24" \
    --src-ip-ranges "192.0.2.0/24" \
    --action "allow"

Per ulteriori informazioni su questo comando, consulta gcloud compute security-policies rules update.

Per aggiornare la priorità di una regola, devi utilizzare l'API REST. Per ulteriori informazioni, consulta securityPolicies.patchRule.

Aggiornare in modo atomico più regole in un criterio di sicurezza

Un aggiornamento atomico applica le modifiche a più regole in un unico aggiornamento. Se aggiornassi le regole una alla volta, potresti riscontrare un comportamento indesiderato perché le regole vecchie e nuove potrebbero funzionare insieme per un breve periodo di tempo.

Per aggiornare in modo atomico più regole, esporta il criterio di sicurezza corrente in un file JSON o YAML e poi modificalo. Utilizza il file modificato per creare un nuovo criterio di sicurezza, quindi cambia il criterio di sicurezza per i servizi di backend pertinenti.

gcloud

  1. Esporta il criterio da aggiornare, come mostrato nell'esempio seguente:

    gcloud compute security-policies export my-policy \
        --file-name my-file \
        --file-format yaml
    

    Il criterio esportato sarà simile all'esempio seguente:

    description: my description
    fingerprint: PWfLGDWQDLY=
    id: '123'
    name: my-policy
    rules:
    - action: deny(404)
      description: my-rule-1
      match:
        expr:
          expression: evaluatePreconfiguredExpr('xss-stable')
        versionedExpr: SRC_IPS_V1
      preview: false
      priority: 1
    - action: allow
      description: my-rule-2
      match:
        config:
          srcIpRanges:
          - '1.2.3.4'
        versionedExpr: SRC_IPS_V1
      preview: false
      priority: 2
    - action: deny
      description: default rule
      kind: compute#securityPolicyRule
      match:
        config:
          srcIpRanges:
          - '*'
        versionedExpr: SRC_IPS_V1
      preview: false
      priority: 2147483647
    selfLink: https://www.googleapis.com/compute/v1/projects/my-project/global/securityPolicies/my-policy
    
  2. Utilizza qualsiasi editor di testo per modificare il criterio. Ad esempio, puoi modificare le priorità delle regole esistenti e aggiungere una nuova regola:

    description: my description
    fingerprint: PWfLGDWQDLY=
    id: '123'
    name: my-policy
    rules:
    - action: deny(404)
      description: my-rule-1
      match:
        expr:
          expression: evaluatePreconfiguredExpr('xss-stable')
        versionedExpr: SRC_IPS_V1
      preview: false
      priority: 1
    - action: allow
      description: my-new-rule
      match:
        config:
          srcIpRanges:
          - '1.2.3.1'
        versionedExpr: SRC_IPS_V1
      preview: false
      priority: 10
    - action: allow
      description: my-rule-2
      match:
        config:
          srcIpRanges:
          - '1.2.3.4'
        versionedExpr: SRC_IPS_V1
      preview: false
      priority: 11
    - action: deny
      description: default rule
      kind: compute#securityPolicyRule
      match:
        config:
          srcIpRanges:
          - '*'
        versionedExpr: SRC_IPS_V1
      preview: false
      priority: 2147483647
    selfLink: https://www.googleapis.com/compute/v1/projects/my-project/global/securityPolicies/my-policy
    
  3. Crea un nuovo criterio di sicurezza di Google Cloud Armor e specifica il nome e il formato del file modificati, come mostrato nell'esempio seguente:

    gcloud compute security-policies create new-policy \
        --file-name modified-policy \
        --file-format yaml
    
  4. Rimuovi il vecchio criterio di sicurezza dal servizio di backend pertinente, come mostrato nell'esempio seguente:

    gcloud compute backend-services update my-backend \
        --security-policy ""
    
  5. Aggiungi il nuovo criterio di sicurezza al servizio di backend, come mostrato nell'esempio seguente:

    gcloud compute backend-services update my-backend \
        --security-policy new-policy
    
  6. Se il vecchio criterio non è utilizzato, eliminalo:

    gcloud compute security-policies delete my-policy
    

Eliminare le regole da un criterio di sicurezza

Segui queste istruzioni per eliminare le regole da un criterio di sicurezza di Google Cloud Armor.

Console

  1. Nella console Google Cloud, vai alla pagina Criteri di Google Cloud Armor.

    Vai ai criteri di Google Cloud Armor

  2. Fai clic sul nome del criterio di sicurezza. Viene visualizzata la pagina Dettagli norme.

  3. Al centro della pagina, nella scheda Regole, seleziona la casella di controllo accanto alla regola da eliminare.

  4. Fai clic su Elimina.

gcloud

Utilizza questo comando per rimuovere una regola con la priorità specificata da un criterio di sicurezza designato. Puoi modificare un solo criterio di sicurezza alla volta, ma puoi eliminare più regole contemporaneamente:

gcloud compute security-policies rules delete PRIORITY [...] [
    --security-policy POLICY_NAME \
  ]

Ad esempio:

gcloud compute security-policies rules delete 1000 \
    --security-policy my-policy

Collegare e rimuovere i criteri di sicurezza

Utilizza le sezioni seguenti per collegare e rimuovere i criteri di sicurezza dai servizi di backend e dai bucket di backend.

Collegare un criterio di sicurezza a un servizio di backend

Utilizza queste istruzioni per collegare un criterio di sicurezza di Google Cloud Armor a un servizio di backend. Un criterio di sicurezza può essere collegato a più di un servizio di backend, ma un servizio di backend può avere collegato un solo criterio di sicurezza di ogni tipo.

Console

  1. Nella console Google Cloud, vai alla pagina Criteri di Google Cloud Armor.

    Vai ai criteri di Google Cloud Armor

  2. Nella pagina Criteri di sicurezza, fai clic sul nome del criterio di sicurezza. Viene visualizzata la pagina Dettagli norme.

  3. Al centro della pagina, fai clic sulla scheda Target.

  4. Fai clic su Applica criterio a una nuova destinazione.

  5. Fai clic su Aggiungi target.

  6. Nell'elenco Target, seleziona un target e poi fai clic su Aggiungi.

gcloud

Quando colleghi un criterio di sicurezza di backend a un servizio di backend, utilizza il comando gcloud compute backend-services e il flag --security-policy:

gcloud compute backend-services update my-backend \
    --security-policy my-policy

Quando colleghi un criterio di sicurezza perimetrale a un servizio di backend, utilizza il comando gcloud compute backend-services e il flag --edge-security-policy:

gcloud compute backend-services update my-backend \
    --edge-security-policy my-policy

Rimuovere un criterio di sicurezza da un servizio di backend

Segui queste istruzioni per rimuovere un criterio di sicurezza del backend o di sicurezza perimetrale di Google Cloud Armor da un servizio di backend.

Console

  1. Nella console Google Cloud, vai alla pagina Criteri di Google Cloud Armor.

    Vai ai criteri di Google Cloud Armor

  2. Nella pagina Criteri di sicurezza, fai clic sul nome del criterio di sicurezza. Viene visualizzata la pagina Dettagli norme.

  3. Al centro della pagina, fai clic sulla scheda Target.

  4. Seleziona il servizio di backend di destinazione da cui stai rimuovendo il criterio.

  5. Fai clic su Rimuovi.

  6. Nel messaggio Rimuovi target, fai clic su Rimuovi.

gcloud

Quando rimuovi un criterio di sicurezza di backend, utilizza il comando gcloud compute backend-services e il flag --security-policy:

gcloud compute backend-services update my-backend \
    --security-policy ""

Quando rimuovi un criterio di sicurezza dell'edge, utilizza il comando gcloud compute backend-services e il flag --edge-security-policy:

gcloud compute backend-services update my-backend \
    --edge-security-policy ""

Collega un criterio di sicurezza a un bucket di backend

Segui queste istruzioni per collegare un criterio di sicurezza perimetrale di Google Cloud Armor a un bucket di backend. Un criterio di sicurezza perimetrale può essere collegato a più bucket di backend.

Console

  1. Nella console Google Cloud, vai alla pagina Criteri di Google Cloud Armor.

    Vai ai criteri di Google Cloud Armor

  2. Nella pagina Criteri di sicurezza, fai clic sul nome del criterio di sicurezza. Viene visualizzata la pagina Dettagli norme.

  3. Al centro della pagina, fai clic sulla scheda Target.

  4. Fai clic su Applica criterio a una nuova destinazione.

  5. Fai clic su Aggiungi target.

  6. Nell'elenco Target, seleziona un target e poi fai clic su Aggiungi.

gcloud

Quando colleghi un criterio di sicurezza perimetrale a un bucket di backend, utilizza il comando cloud compute backend-buckets e il flag --edge-security-policy:

gcloud compute backend-services update my-bucket \
    --edge-security-policy my-edge-policy

Rimuovere un criterio di sicurezza da un bucket di backend

Segui queste istruzioni per rimuovere un criterio di sicurezza perimetrale di Google Cloud Armor da un bucket di backend.

Console

  1. Nella console Google Cloud, vai alla pagina Criteri di Google Cloud Armor.

    Vai ai criteri di Google Cloud Armor

  2. Nella pagina Criteri di sicurezza, fai clic sul nome del criterio di sicurezza. Viene visualizzata la pagina Dettagli norme.

  3. Al centro della pagina, fai clic sulla scheda Target.

  4. Seleziona il servizio di backend di destinazione da cui stai rimuovendo il criterio.

  5. Fai clic su Rimuovi.

  6. Nel messaggio Rimuovi target, fai clic su Rimuovi.

gcloud

Quando rimuovi un criterio di sicurezza perimetrale da un bucket di backend, utilizza il comando cloud compute backend-buckets e il flag --edge-security-policy:

gcloud compute backend-services update my-bucket \
    --edge-security-policy ""

Importare ed esportare i criteri di sicurezza

Utilizza le seguenti sezioni per importare ed esportare i criteri di sicurezza come file YAML o JSON.

Importa criteri di sicurezza

Puoi importare i criteri di sicurezza di Google Cloud Armor da un file YAML o JSON utilizzando Google Cloud CLI. Non puoi utilizzare il comando import per aggiornare le regole di un criterio esistente. Devi invece aggiornare le regole una alla volta utilizzando la procedura Aggiornare una singola regola in un criterio di sicurezza o tutte contemporaneamente utilizzando la procedura Aggiornare più regole in modo atomico in un criterio di sicurezza.

gcloud

Per importare i criteri di sicurezza, usa il comando gcloud compute security-policies import NAME. Sostituisci NAME con il nome del criterio di sicurezza che stai importando. Se non fornisci il formato del file, viene assunto il formato corretto in base alla struttura del file. Se la struttura non è valida, viene visualizzato un errore.

gcloud compute security-policies import NAME \
    --file-name FILE_NAME  \
   [--file-format FILE_FORMAT]

Ad esempio, il seguente comando aggiorna il criterio my-policy importando il file my-file.

gcloud compute security-policies import my-policy \
    --file-name my-file \
    --file-format json

Se il fingerprint del criterio non è aggiornato al momento dell'importazione, Google Cloud Armor mostra un errore. Ciò significa che il criterio è stato modificato dall'ultima esportazione. Per risolvere il problema, utilizza il comando describe nel criterio per ottenere l'impronta più recente. Unisci le eventuali differenze tra i criteri descritti e i tuoi criteri, quindi sostituisci l'impronta obsoleta con quella più recente.

Esportare i criteri di sicurezza

Puoi esportare un criterio di sicurezza di Google Cloud Armor come file YAML o JSON utilizzando Google Cloud CLI. L'esportazione di un criterio consente di recuperarne una copia che puoi modificare o salvare nel controllo del codice sorgente.

gcloud

  1. Nel seguente comando, NAME è il nome del criterio di sicurezza. I formati file validi sono YAML e JSON. Se non fornisci il formato del file, Google Cloud Armor utilizza il file YAML predefinito.

    gcloud compute security-policies export NAME \
        --file-name FILE_NAME  \
        --file-format FILE_FORMAT
    

    Il seguente esempio esporta il criterio di sicurezza my-policy nel my-file file in formato YAML:

    gcloud compute security-policies export my-policy \
        --file-name my-file \
        --file-format yaml
     

    L'esempio seguente mostra un criterio di sicurezza esportato:

    description: my description
    fingerprint: PWfLGDWQDLY=
    id: '123'
    name: my-policy
    rules:
    - action: allow
      description: default rule
      match:
          config:
            srcIpRanges:
            - '*'
          versionedExpr: SRC_IPS_V1
        preview: false
        priority: 2147483647
      selfLink: https://www.googleapis.com/compute/v1/projects/my-project/global/securityPolicies/my-policy
      
  2. Puoi modificare il file esportato con qualsiasi editor di testo, quindi import di nuovo in Google Cloud utilizzando il comandoimport.

Elenco delle regole preconfigurate disponibili

Elenca le regole preconfigurate per visualizzare le regole di protezione delle applicazioni predefinite e le firme, come il ModSecurity Core Rule Set, fornite da Google Cloud Armor. Queste regole preconfigurate contengono più firme predefinite che Google Cloud Armor utilizza per eseguire valutazioni in base alle richieste in arrivo. Puoi aggiungere queste regole predefinite a regole nuove o esistenti utilizzando il riferimento al linguaggio delle regole personalizzate.

Per ulteriori informazioni, vedi Regole preconfigurate.

gcloud

  1. Esegui il comando gcloud compute security-policies list-preconfigured-expression-sets:

    gcloud compute security-policies list-preconfigured-expression-sets
    

    L'esempio seguente mostra la forma dell'output del comando:

    EXPRESSION_SET
    expression-set-1
       RULE_ID                SENSITIVITY
       expression-set-1-id-1  sensitivity-value-1
       expression-set-1-id-2  sensitivity-value-2
    expression-set-2
       alias-1
       RULE_ID                SENSITIVITY
       expression-set-2-id-1  sensitivity-value-1
       expression-set-2-id-2  sensitivity-value-2
    

    L'esempio seguente include un esempio dell'output effettivo del comando. Tieni presente che l'output effettivo include tutte le regole elencate in Ottimizzazione delle regole WAF di Google Cloud Armor.

    gcloud compute security-policies list-preconfigured-expression-sets
    
    EXPRESSION_SET
    sqli-canary
        RULE_ID                          SENSITIVITY
        owasp-crs-v030001-id942110-sqli  2
        owasp-crs-v030001-id942120-sqli  2
        …
    xss-canary
        RULE_ID                         SENSITIVITY
        owasp-crs-v030001-id941110-xss  1
        owasp-crs-v030001-id941120-xss  1
    …
    sourceiplist-fastly
    sourceiplist-cloudflare
    sourceiplist-imperva
    

Passaggi successivi