Configurare Cloud Armor Adaptive Protection

Questa pagina contiene informazioni sulla configurazione di Protezione adattiva. Prima di configurare Adaptive Protection, assicurati di conoscere le informazioni riportate nella Panoramica di Adaptive Protection e i casi d'uso di Adaptive Protection.

Prima di iniziare

Le sezioni seguenti spiegano tutti i ruoli e le autorizzazioni di Identity and Access Management (IAM) necessari per configurare i criteri di sicurezza di Google Cloud Armor. Per i casi d'uso descritti in questo documento, è sufficiente l'autorizzazione compute.securityPolicies.update.

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 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

Abilita Adaptive Protection

Per attivare la Protezione adattiva per i tuoi criteri di sicurezza, segui questa procedura. Adaptive Protection viene applicata a ogni criterio di sicurezza singolarmente.

Console

Per attivare Adaptive Protection per un criterio di sicurezza:

  1. Nella console Google Cloud, vai alla pagina Sicurezza di rete.

    Vai a Sicurezza della rete

  2. Nella pagina Norme, fai clic sul nome di un criterio di sicurezza.

  3. Fai clic su Modifica.

  4. In Protezione adattiva, seleziona Attiva.

  5. Fai clic su Aggiorna.

Per disattivare Adaptive Protection per una policy di sicurezza:

  1. Nella console Google Cloud, vai alla pagina Sicurezza di rete.

    Vai a Sicurezza della rete

  2. Nella pagina Norme, fai clic sul nome di un criterio di sicurezza.

  3. Fai clic su Modifica.

  4. In Adaptive Protection (Protezione adattiva), deseleziona Attiva.

  5. Fai clic su Aggiorna.

gcloud

Per attivare Adaptive Protection per un criterio di sicurezza:

gcloud compute security-policies update MY-SECURITY-POLICY \
    --enable-layer7-ddos-defense

Per disattivare Adaptive Protection per una policy di sicurezza:

gcloud compute security-policies update MY-SECURITY-POLICY \
    --no-enable-layer7-ddos-defense

Configura modelli granulari

La funzionalità dei modelli granulari ti consente di configurare host o percorsi specifici come unità granulari analizzate da Adaptive Protection. Nei seguenti esempi, crei unità di traffico granulari per ogni host, personalizzi un'unità di traffico granulare e configuri la Protezione adattiva in modo che intervenga quando il traffico supera le query al secondo (QPS) di riferimento. Per ulteriori informazioni sui modelli granulari, consulta la panoramica di Adaptive Protection.

Configurare unità di traffico granulari

Gli esempi in questa sezione utilizzano il comando add-layer7-ddos-defense-threshold-config con alcuni o tutti i seguenti flag:

Bandiera Descrizione
--threshold-config-name Il nome della configurazione della soglia.
--traffic-granularity-configs Opzioni di configurazione per consentire il funzionamento di Adaptive Protection sulla granularità del servizio specificata.
--auto-deploy-impacted-baseline-threshold Soglia per l'impatto stimato di Adaptive Protection sul traffico di riferimento della regola di mitigazione suggerita per un attacco rilevato. Le difese automatiche vengono applicate solo se la soglia non viene superata.
--auto-deploy-expiration-sec La durata delle azioni, se presenti, intraprese dal deployment automatico.
--detection-load-threshold Soglia di rilevamento in base al carico del servizio di backend.
--detection-absolute-qps Soglia di rilevamento basata sulle QPS assolute.
--detection-relative-to-baseline-qps Soglia di rilevamento basata sulle QPS rispetto alla media del traffico di riferimento.

Nel primo esempio, configuri Adaptive Protection per rilevare gli attacchi su e suggerire mitigazioni indipendenti per ogni host dietro il tuo servizio di backend, senza sostituire le soglie predefinite.

gcloud

  1. Crea una policy di sicurezza con il nome POLICY_NAME o utilizzane una esistente.
  2. Se Adaptive Protection non è già attivato, utilizza il seguente comando per attivarlo per il tuo criterio:
    gcloud compute security-policies update POLICY_NAME 
    --enable-layer7-ddos-defense
  3. Applica il criterio di sicurezza a un servizio di backend con più host.
  4. Utilizza il seguente comando add-layer7-ddos-defense-threshold-config con il flag --traffic-granularity-configs per configurare un'unità di traffico granulare:
    gcloud compute security-policies add-layer7-ddos-defense-threshold-config POLICY_NAME 
    --threshold-config-name=per-host-config
    --traffic-granularity-configs=type=HTTP_HEADER_HOST;enableEachUniqueValue=true

Nel secondo esempio, configuri diverse soglie di rilevamento e deployment automatico per alcune o tutte le unità di traffico granulari configurate nel primo esempio.

gcloud

  1. Se il deployment automatico di Adaptive Protection non è già attivo, crea una regola segnaposto.
  2. Il seguente comando personalizza la soglia di deployment automatico per un'unità di traffico granulare con un valore HTTP_HEADER_HOST di HOST e un valore HTTP_PATH di PATH. Utilizza questo comando per ogni unità di traffico granulare che vuoi personalizzare, sostituendo le variabili in base alle esigenze per ogni host e percorso dell'URL:
    gcloud compute security-policies add-layer7-ddos-defense-threshold-config POLICY_NAME 
    --threshold-config-name=my-host-config
    --auto-deploy-impacted-baseline-threshold=0.01
    --auto-deploy-expiration-sec=3600
    --traffic-granularity-configs=type=HTTP_HEADER_HOST;value=HOST,type=HTTP_PATH;value=PATH

Rileva quando il volume di attacchi supera la QPS media di riferimento

Nell'esempio seguente, configuri Adaptive Protection in modo da rilevare un attacco solo quando il volume degli attacchi supera il QPS medio di riferimento di più del 50% e solo quando il carico del servizio di backend è superiore al 90% della sua capacità.

gcloud

  1. Crea una policy di sicurezza con il nome POLICY_NAME o utilizzane una esistente.
  2. Se Adaptive Protection non è già attivato, utilizza il seguente comando per attivarlo per il tuo criterio:

    gcloud compute security-policies update POLICY_NAME \
      --enable-layer7-ddos-defense
    
  3. Applica il criterio di sicurezza a un servizio di backend.

  4. Utilizza il seguente comando per configurare la Protezione adattiva con soglie di rilevamento personalizzate:

    gcloud compute security-policies add-layer7-ddos-defense-threshold-config POLICY_NAME \
       --threshold-config-name=my-customized-thresholds \
       --detection-load-threshold=0.9 \
       --detection-relative-to-baseline-qps=1.5
    

Passaggi successivi