Limitazione di frequenza con Cloud Armor

1. Introduzione

Il deployment del bilanciamento del carico HTTP(S) di Google Cloud viene eseguito sul perimetro della rete Google, nei punti di presenza (POP) Google in tutto il mondo. Il traffico utente indirizzato a un bilanciatore del carico HTTP(S) entra nella rete Google attraverso il POP più vicino all'utente. Quindi, il carico viene bilanciato sulla rete Google globale e indirizzato verso il backend più vicino con capacità disponibile sufficiente.

Cloud Armor è il sistema di rilevamento WAF (Distributed Denial of Service) di Google. Cloud Armor è strettamente accoppiato al bilanciatore del carico HTTP di Google Cloud e ti consente di interrogare il traffico in entrata per rilevare eventuali richieste indesiderate. La funzionalità di limitazione della frequenza di questo servizio consente di ridurre il traffico alle risorse di backend in base al volume di richieste e impedisce al traffico indesiderato di consumare risorse sulla tua rete Virtual Private Cloud (VPC).

In questo lab configurerai un bilanciatore del carico HTTP con backend globali, come illustrato dal diagramma riportato di seguito. Successivamente, sottoporrai il bilanciatore del carico a uno stress test e aggiungerai un criterio di limitazione della frequenza di Cloud Armor per limitare il traffico che colpisce le tue risorse di backend.

2e1b99d22f4f32a.png

Cosa imparerai a fare

  • Come configurare un bilanciatore del carico HTTP con controlli di integrità appropriati.
  • Come creare un criterio di limitazione di frequenza di Cloud Armor.
  • Come verificare che il criterio di limitazione della frequenza blocchi il traffico durante l'esecuzione di un test di stress da una VM.

Che cosa ti serve

  • Networking di base e conoscenza di HTTP
  • Conoscenza di base della riga di comando Unix/Linux

2. Configurazione e requisiti

Configurazione dell'ambiente da seguire in modo autonomo

  1. Accedi alla console Google Cloud e crea un nuovo progetto o riutilizzane uno esistente. Se non hai ancora un account Gmail o Google Workspace, devi crearne uno.

96a9c957bc475304.png

b9a10ebdf5b5a448.png

a1e3c01a38fa61c2.png

  • Il Nome progetto è il nome visualizzato dei partecipanti del progetto. Si tratta di una stringa di caratteri non utilizzata dalle API di Google e può essere aggiornata in qualsiasi momento.
  • L'ID progetto deve essere univoco in tutti i progetti Google Cloud ed è immutabile (non può essere modificato dopo essere stato impostato). La console Cloud genera automaticamente una stringa univoca. di solito non ti importa cosa sia. Nella maggior parte dei codelab, devi fare riferimento all'ID progetto (che solitamente è identificato come PROJECT_ID), quindi, se non ti piace, generane un altro a caso oppure puoi fare un tentativo personalizzato e controllare se è disponibile. Poi c'è "congelato" dopo la creazione del progetto.
  • C'è un terzo valore, il numero di progetto, utilizzato da alcune API. Scopri di più su tutti e tre questi valori nella documentazione.
  1. Successivamente, dovrai abilitare la fatturazione nella console Cloud per utilizzare le risorse/le API Cloud. Eseguire questo codelab non dovrebbe costare molto. Per arrestare le risorse in modo da non incorrere in fatturazione oltre questo tutorial, segui eventuali "pulizie" istruzioni riportate alla fine del codelab. I nuovi utenti di Google Cloud sono idonei al programma prova senza costi di 300$.

Avvia Cloud Shell

Anche se Google Cloud può essere utilizzato da remoto dal tuo laptop, in questo codelab utilizzerai Google Cloud Shell, un ambiente a riga di comando in esecuzione nel cloud.

Dalla console di Google Cloud, fai clic sull'icona di Cloud Shell nella barra degli strumenti in alto a destra:

bce75f34b2c53987.png

Dovrebbe richiedere solo qualche istante per eseguire il provisioning e connettersi all'ambiente. Al termine, dovresti vedere una schermata simile al seguente:

f6ef2b5f13479f3a.png

Questa macchina virtuale viene caricata con tutti gli strumenti di sviluppo necessari. Offre una home directory permanente da 5 GB e viene eseguita su Google Cloud, migliorando notevolmente le prestazioni di rete e l'autenticazione. Tutto il lavoro in questo lab può essere svolto semplicemente con un browser.

Prima di iniziare

All'interno di Cloud Shell, assicurati che l'ID progetto sia configurato

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
PROJECT_ID=[YOUR-PROJECT-NAME]
echo $PROJECT_ID

Abilita le API

Abilita tutti i servizi necessari

gcloud services enable compute.googleapis.com
gcloud services enable logging.googleapis.com
gcloud services enable monitoring.googleapis.com

3. Configura le regole del firewall per consentire il traffico HTTP nei backend

Configura le regole del firewall per consentire il traffico HTTP verso i backend dai controlli di integrità di Google Cloud e dal bilanciatore del carico.

Utilizzeremo la rete VPC predefinita creata nel tuo progetto. Crea una regola firewall per consentire il traffico HTTP verso i backend. I controlli di integrità determinano quali istanze di un bilanciatore del carico possono ricevere nuove connessioni. Per il bilanciamento del carico HTTP, i probe di controllo di integrità che verificano le tue istanze con bilanciamento del carico provengono da indirizzi inclusi negli intervalli 130.211.0.0/22 e 35.191.0.0/16. Le regole firewall VPC devono consentire queste connessioni. Inoltre, i bilanciatori del carico comunicano con il backend nello stesso intervallo IP.

  1. Nella console Cloud, vai a Menu di navigazione ( mainmenu.png) > Rete VPC > Firewall.

dbdf491e6d7863f3.png

  1. Osserva le regole firewall ICMP, interno, RDP ed SSH esistenti.Ogni progetto Google Cloud viene avviato con la rete predefinita e queste regole firewall.
  2. Fai clic su Crea regola firewall.
  3. Specifica i valori seguenti e lascia le impostazioni predefinite per gli altri valori:

Proprietà

Valore (digita il valore o seleziona l'opzione come specificato)

Nome

default-allow-health-check

Rete

predefinita

Destinazioni

Tag di destinazione specificati

Tag di destinazione

http-server

Filtro di origine

Intervalli IP

Intervalli IP di origine

130.211.0.0/22, 35.191.0.0/16

Protocolli e porte

Protocolli e porte specificati, quindi seleziona tcp

  1. Fai clic su Crea.

In alternativa, se utilizzi la riga di comando gcloud. Di seguito è riportato il comando:

gcloud compute firewall-rules create default-allow-health-check --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp --source-ranges=130.211.0.0/22,35.191.0.0/16 --target-tags=http-server

4. configura i modelli di istanza e crea i gruppi di istanze gestite

Un gruppo di istanze gestite utilizza un modello di istanza per creare un gruppo di istanze identiche, che puoi utilizzare per creare i backend del bilanciatore del carico HTTP.

Configura i modelli di istanza

Un modello di istanza è una risorsa API che puoi utilizzare per creare istanze VM e gruppi di istanze gestite. I modelli di istanza definiscono il tipo di macchina, l'immagine del disco di avvio, la subnet, le etichette e altre proprietà dell'istanza. Crea un modello di istanza per us-east1 un altro per europe-west1.

  1. Nella console Cloud, vai a Menu di navigazione ( mainmenu.png) > Compute Engine > Modelli di istanza, quindi fai clic su Crea modello istanza.
  2. In corrispondenza di Nome, digita us-east1-template.
  3. In Serie, seleziona N1.
  4. Fai clic su Networking, dischi, sicurezza, gestione , single tenancy.

b60e2a44c3e4d50e.png

  1. Vai alla sezione Gestione:

ee57f20ce55298fd.png

  1. In Metadati, fai clic su Aggiungi elemento e specifica quanto segue:

Chiave

Valore

startup-script-url

gs://cloud-training/gcpnet/httplb/startup.sh

  1. Fai clic su Networking.
  2. Specifica i valori seguenti e lascia le impostazioni predefinite per gli altri valori:

Proprietà

Valore (digita il valore o seleziona l'opzione come specificato)

Rete (sotto Interfacce di rete)

predefinita

Subnet (sotto le interfacce di rete)

predefinita (us-east1)

Tag di rete

http-server

  1. Fai clic su Crea.
  2. Attendi il completamento della creazione del modello di istanza.

Ora crea un altro modello di istanza per subnet-b copiando us-east1-template:

  1. Fai clic su us-east1-template, quindi sull'opzione Copia in alto.
  2. In corrispondenza di Nome, digita europe-west1-template.
  3. Fai clic su Networking, dischi, sicurezza, gestione , single tenancy.
  4. Fai clic su Networking.
  5. In Interfacce di rete,modifica l'interfaccia predefinita. In corrispondenza di Subnet, seleziona predefinita (europe-west1).
  6. Fai clic su Crea.

Crea i gruppi di istanze gestite

Crea un gruppo di istanze gestite in us-east1 e uno in europe-west1.

  1. Sempre in Compute Engine, fai clic su Gruppi di istanze nel menu a sinistra.

72319de055de3942.png

  1. Fai clic su Crea gruppo di istanze. Seleziona Nuovo gruppo di istanze gestite (stateless).
  2. Specifica i valori seguenti e lascia le impostazioni predefinite per gli altri valori:

Proprietà

Valore (digita il valore o seleziona l'opzione come specificato)

Nome

us-east1-mig

Posizione

Più zone

Area geografica

us-east1

Modello di istanza

us-east1-template

Scalabilità automatica > Criterio di scalabilità automatica > Fai clic sull'icona a forma di matita > Tipo di metrica

Utilizzo CPU

Utilizzo CPU target

80, fai clic su Fine.

Periodo di raffreddamento

45

Numero minimo di istanze

1

Numero massimo di istanze

5

  1. Fai clic su Crea.

Ora ripeti la stessa procedura per creare un secondo gruppo di istanze per europe-west1-mig in europe-west1:

  1. Fai clic su Crea gruppo di istanze.
  2. Specifica i valori seguenti e lascia le impostazioni predefinite per gli altri valori:

Proprietà

Valore (digita il valore o seleziona l'opzione come specificato)

Nome

europe-west1-mig

Località

Più zone

Regione

europe-west1

Modello di istanza

europe-west1-template

Scalabilità automatica > Criterio di scalabilità automatica > Fai clic sull'icona a forma di matita > Tipo di metrica

Utilizzo CPU

Utilizzo CPU target

80, fai clic su Fine.

Periodo di raffreddamento

45

Numero minimo di istanze

1

Numero massimo di istanze

5

  1. Fai clic su Crea.

5. configura il bilanciatore del carico HTTP

Configura il bilanciatore del carico HTTP per bilanciare il traffico tra i due backend (us-east1-mig in us-east1 e europe-west1-mig in europe-west1), come illustrato in questo diagramma di rete:

2e1b99d22f4f32a.png

Avvia la configurazione

  1. Nella console Cloud, fai clic sul menu di navigazione ( mainmenu.png) > Fai clic su Servizi di rete > Bilanciamento del carico, quindi fai clic su Crea bilanciatore del carico.
  2. In Bilanciamento del carico HTTP(S), fai clic su Avvia configurazione.

8197d8f041e8eafd.png

  1. Seleziona Da internet alle mie VM, Bilanciatore del carico HTTP(S) classico e fai clic su Continua.
  2. Imposta il Nome su http-lb.

Configura il backend

I servizi di backend indirizzano il traffico in ingresso a uno o più backend collegati. Ciascun backend è composto da un gruppo di istanze e da metadati aggiuntivi relativi alla capacità di distribuzione.

  1. Fai clic su Configurazione backend.
  2. In Servizi e bucket di backend, fai clic su Crea un servizio di backend.
  3. Specifica i valori seguenti e lascia le impostazioni predefinite per gli altri valori:

Proprietà

Valore (seleziona l'opzione come specificato)

Nome

http-backend

Gruppo di istanze

us-east1-mig

Numeri di porta

80

Modalità di bilanciamento

Frequenza

Massimo RPS

50 (per istanza)

Capacità

100

  1. Fai clic su Fine.
  2. Fai clic su Aggiungi backend.
  3. Specifica i valori seguenti e lascia le impostazioni predefinite per gli altri valori:

Proprietà

Valore (seleziona l'opzione come specificato)

Gruppo di istanze

europe-west1-mig

Numeri di porta

80

Modalità di bilanciamento

Utilizzo

Utilizzo backend massimo

80

Capacità

100

  1. Fai clic su Fine.
  2. In Controllo di integrità, seleziona Crea un controllo di integrità.

199239806577ceac.png

  1. Specifica i valori seguenti e lascia le impostazioni predefinite per gli altri valori:

Proprietà

Valore (seleziona l'opzione come specificato)

Nome

http-health-check

Protocollo

TCP

Porta

80

20f7af9fce140475.png

  1. Fai clic su Salva.
  2. Seleziona la casella Abilita il logging.
  3. Imposta la Frequenza di campionamento su 1:

dab4b15c13917786.png

  1. Fai clic su Crea per creare il servizio di backend.

2db64614f855f239.png

Configura il frontend

Le regole relative a host e percorso determinano come sarà indirizzato il traffico. Ad esempio, potresti decidere di indirizzare il traffico video a un backend e il traffico statico a un altro. Tuttavia, non configurerai le regole relative a host e percorso in questo lab.

  1. Fai clic su Configurazione frontend.
  2. Specifica quanto segue, lasciando le impostazioni predefinite per tutti gli altri valori:

Proprietà

Valore (digita il valore o seleziona l'opzione come specificato)

Protocollo

HTTP

Versione IP

IPv4

Indirizzo IP

Temporaneo

Porta

80

  1. Fai clic su Fine.
  2. Fai clic su Aggiungi IP e porta frontend.
  3. Specifica quanto segue, lasciando le impostazioni predefinite per tutti gli altri valori:

Proprietà

Valore (digita il valore o seleziona l'opzione come specificato)

Protocollo

HTTP

Versione IP

IPv6

Indirizzo IP

Temporaneo

Porta

80

  1. Fai clic su Fine.

Esamina e crea il bilanciatore del carico HTTP

  1. Fai clic su Esamina e finalizza.

2c88715aa5f22800.png

  1. Esamina i Servizi di backend e il Frontend.

b2fffef90be309f0.png

  1. Fai clic su Crea.
  2. Attendi che la creazione del bilanciatore del carico sia completa.
  3. Fai clic sul nome del bilanciatore del carico (http-lb).
  4. Prendi nota degli indirizzi IPv4 e IPv6 del bilanciatore del carico, che utilizzerai nella prossima attività. Ci riferiremo a questi indirizzi rispettivamente come [LB_IP_v4] e [LB_IP_v6].

6. verifica il bilanciatore del carico HTTP

Ora che hai creato il bilanciatore del carico HTTP per i tuoi backend, verifica che il traffico sia inoltrato al servizio di backend.

Accedi al bilanciatore del carico HTTP

Per testare l'accesso al bilanciatore del carico HTTP su IPv4, apri una nuova scheda del browser e vai all'indirizzo http://[LB_IP_v4]. Accertati di sostituire [LB_IP_v4] con l'indirizzo IPv4 del bilanciatore del carico.

Se hai un indirizzo IPv6 locale, prova a utilizzare l'indirizzo IPv6 del bilanciatore del carico HTTP andando all'indirizzo http://[LB_IP_v6]. Assicurati di sostituire [LB_IP_v6] con l'indirizzo IPv6 del bilanciatore del carico.

812d1fc75d9dfb3c.png

Esegui lo stress test del bilanciatore del carico HTTP

Crea una nuova VM per simulare un carico sul bilanciatore del carico HTTP utilizzando siege. Quindi, determina se il carico viene bilanciato su entrambi i backend in condizioni di carico elevato.

  1. Nella console, vai a Menu di navigazione ( mainmenu.png) > Compute Engine > Istanze VM.
  2. Fai clic su Crea istanza.
  3. Specifica i valori seguenti e lascia le impostazioni predefinite per gli altri valori:

Proprietà

Valore (digita il valore o seleziona l'opzione come specificato)

Nome

siege-vm

Area geografica

us-west1

Zona

us-west1-c

Serie

N1

  1. Fai clic su Crea.
  2. Attendi che la creazione dell'istanza siege-vm sia completa.
  3. In siege-vm, fai clic su SSH per avviare un terminale e stabilire una connessione.
  4. Esegui questo comando per installare siege:
sudo apt-get -y install siege
  1. Per archiviare l'indirizzo IPv4 del bilanciatore del carico HTTP in una variabile di ambiente, esegui questo comando, sostituendo [LB_IP_v4] con l'indirizzo IPv4:
export LB_IP=[LB_IP_v4]
  1. Per simulare un carico, esegui questo comando:
siege -c 250 http://$LB_IP

L'output dovrebbe avere il seguente aspetto (non copiarlo: si tratta di un esempio):

New configuration template added to /home/student/.siege
Run siege -C to view the current settings in that file
** SIEGE 4.0.4
** Preparing 250 concurrent users for battle.
The server is now under siege...
  1. Nella console Cloud, fai clic sul menu di navigazione ( mainmenu.png), quindi su Servizi di rete > Bilanciamento del carico.
  2. Fai clic su http-lb.
  3. Fai clic sulla scheda Monitoring. Monitorare il traffico tra il Nord America e i due backend per 2 o 3 minuti.

All'inizio, il traffico dovrebbe essere indirizzato soltanto verso us-east1-mig ma appena le richieste al secondo aumentano, il traffico verrà indirizzato anche verso europe-west1-mig.

ead1e6d5c1f4cc4b.png

Questo dimostra che, per impostazione predefinita, il traffico viene inoltrato al backend più vicino, ma se il carico diventa eccessivo, il traffico può essere distribuito tra i due backend.

e5c6a657706c832c.png

  1. Torna al terminale SSH di siege-vm.
  2. Premi Ctrl+C per arrestare siege.

7. Crea criterio per la limitazione di frequenza di Cloud Armor

In questa sezione utilizzerai Cloud Armor per negare a siege-vm l'accesso al bilanciatore del carico HTTP impostando un criterio di limitazione della frequenza.

  1. In Cloud Shell(fai riferimento a "Avviare Cloud Shell" in "Configurazione e requisiti" per istruzioni su come utilizzare Cloud Shell), crea un criterio di sicurezza tramite gcloud:
gcloud compute security-policies create rate-limit-siege \
    --description "policy for rate limiting"
  1. Poi, aggiungi una regola di limitazione di frequenza:
gcloud beta compute security-policies rules create 100 \
    --security-policy=rate-limit-siege     \
    --expression="true" \
    --action=rate-based-ban                   \
    --rate-limit-threshold-count=50           \
    --rate-limit-threshold-interval-sec=120   \
    --ban-duration-sec=300           \
    --conform-action=allow           \
    --exceed-action=deny-404         \
    --enforce-on-key=IP
  1. Collega il criterio di sicurezza al http-backend del servizio di backend:
gcloud compute backend-services update http-backend \
    --security-policy rate-limit-siege –-global
  1. Nella console, vai a Menu di navigazione > Sicurezza della rete > Cloud Armor.
  2. Siege del limite di frequenza di clic. Le norme dovrebbero essere simili alle seguenti:

8be87aa31c2ed74e.png

Verifica il criterio di sicurezza

  1. Torna al terminale SSH di siege-vm.
  2. Esegui un comando curl sull'IP del bilanciatore del carico per verificare se puoi ancora connetterti a questo IP; in caso contrario, dovresti ricevere una risposta 200.
curl http://$LB_IP
  1. Nel terminale SSH di siege-vm, per simulare un carico, esegui questo comando:
siege -c 250 http://$LB_IP

L'output dovrebbe essere simile al seguente (non copiarlo, si tratta di un output di esempio):

** SIEGE 4.0.4
** Preparing 250 concurrent users for battle.
The server is now under siege...
  1. Esamina i log del criterio di sicurezza per determinare se anche questo traffico viene bloccato.
  2. Nella console, vai a Menu di navigazione > Sicurezza della rete > Cloud Armor.
  3. Fai clic su rate-limit-siege.
  4. Fai clic su Log.

f8be7c01c3d7c8f5.png

  1. Fai clic su Visualizza log dei criteri.
  2. Nella pagina Logging, assicurati di cancellare tutto il testo nell'anteprima della query.
  3. Seleziona la risorsa come Bilanciatore del carico HTTP Cloud > http-lb-forwarding-rule > http-lb, quindi fai clic su Aggiungi. In alternativa, di seguito è riportata la query MQL(Monitoring Query Language), che puoi copiare e incollare nell'editor di query.
resource.type="http_load_balancer" resource.labels.forwarding_rule_name="http-lb-forwarding-rule" resource.labels.url_map_name="http-lb"
  1. Ora, fai clic su Esegui query.
  2. Espandi una voce di log in Risultati delle query.
  3. Espandi httpRequest. L'origine della richiesta dovrebbe essere l'indirizzo IP di siege-vm. In caso contrario, espandi un'altra voce di log.
  4. Espandi jsonPayload.
  5. Espandi appliedSecurityPolicy.

151f575ba7b3bde9.png

Tieni presente che il parametro configuratoAction è impostato su RATE_BASED_BAN con il nome rate-limit-siege.

  1. Come controllo aggiuntivo, vai a Menu di navigazione ( mainmenu.png), fai clic su Servizi di rete > Bilanciamento del carico. Fai clic su http-lb. Fai clic sulla scheda Monitoring.

ab9a8a66573a5ebd.png

Puoi vedere il traffico dell'assedio nei grafici. Noterai inoltre che il traffico con limitazioni di frequenza non raggiunge il backend ed è bloccato dal criterio di Cloud Armor.

Complimenti! Hai completato questo lab sulla limitazione di frequenza con Cloud Armor

©2020 Google LLC Tutti i diritti riservati. Google e il logo Google sono marchi di Google LLC. Tutti gli altri nomi di società e prodotti sono marchi delle rispettive società a cui sono associati.

8. Pulizia del lab

  1. Vai a Sicurezza della rete >>. Cloud Armor >> %POLICY NAME% e seleziona Elimina -

eeafa7cafa11c4c7.png

  1. Vai a Networking >> Servizi di rete >> Bilanciamento del carico. Seleziona il bilanciatore del carico che hai creato e fai clic su Elimina.

3886458f25cfbd36.png

Seleziona il servizio di backend e il controllo di integrità come risorse aggiuntive da eliminare.

a0193e91b2f4cb6f.png

  1. Vai a Menu di navigazione ( mainmenu.png) > Compute Engine > Gruppi di istanze. Seleziona entrambi i gruppi di istanze gestite e fai clic su Elimina -

5027d56977997f70.png

Conferma l'eliminazione digitando "delete" nella casella di testo.

Attendi che i gruppi di istanze gestite vengano eliminati. Questa operazione elimina anche le istanze nel gruppo. Puoi eliminare i modelli solo dopo aver eliminato il gruppo di istanze.

  1. Vai a Modelli di istanza dal riquadro laterale a sinistra**.** Seleziona entrambi i modelli di istanza e fai clic su Elimina -

8d88abacd32c11ce.png

  1. Passa alle istanze VM dal riquadro laterale a sinistra**.** Seleziona i puntini di sospensione accanto all'istanza siege-vm e fai clic su Elimina.

2b58ab43695836e9.png

  1. Vai a Menu di navigazione ( mainmenu.png) > Rete VPC > Firewall. Seleziona default-allow-health-check e fai clic su Elimina -

561d5e771d36d85.png

9. Complimenti!

Hai implementato correttamente la limitazione di frequenza con Cloud Armor. Hai configurato un bilanciatore del carico HTTP con backend nelle aree geografiche us-east1 ed europe-west1. Hai quindi eseguito lo stress test del bilanciatore del carico con una VM e hai inserito l'indirizzo IP in una lista bloccata tramite la limitazione di frequenza con Cloud Armor. Hai potuto inoltre consultare i log del criterio di sicurezza per comprendere perché il traffico veniva bloccato.

Argomenti trattati

  • Come configurare i modelli di istanza e creare gruppi di istanze gestite.
  • Come configurare un bilanciatore del carico HTTP
  • Come creare un criterio di limitazione di frequenza di Cloud Armor.
  • Come verificare che le Norme sulla limitazione di frequenza funzionino come previsto.

Passaggi successivi

  • Prova a impostare un criterio di limitazione di frequenza basato su un intervallo IP di origine. Di seguito è riportato un esempio di comando:
gcloud alpha compute security-policies rules create 105 \
    --security-policy sec-policy     \
    --src-ip-ranges "1.2.3.0/24"     \
    --action throttle                \
    --rate-limit-threshold-count 100 \
    --rate-limit-threshold-interval-sec 60 \
    --conform-action allow           \
    --exceed-action deny-429         \
    --enforce-on-key IP
  • Prova a impostare un criterio per la limitazione di frequenza basato sul codice regione. Di seguito è riportato un esempio di comando:
gcloud alpha compute security-policies rules create 101 \
    --security-policy sec-policy     \
    --expression "origin.region_code == 'US'" \
    --action rate-based-ban                 \
    --rate-limit-threshold-count 10         \
    --rate-limit-threshold-interval-sec 60  \
    --ban-duration-sec 300           \
    --ban-threshold-count 1000       \
    --ban-threshold-interval-sec 600 \
    --conform-action allow           \
    --exceed-action deny-403         \
    --enforce-on-key IP