Configura la gestione dei bot

Questa pagina contiene informazioni sulla configurazione delle regole dei criteri di sicurezza di Google Cloud Armor per la gestione dei bot. Prima di configurare la gestione dei bot, assicurati di conoscere le informazioni riportate nella panoramica della gestione dei bot.

Prima di iniziare

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

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

Le seguenti operazioni richiedono il ruolo Amministratore della sicurezza di Compute (roles/compute.securityAdmin) di Identity and Access Management (IAM):

  • Configurazione, modifica, aggiornamento ed eliminazione di Google Cloud Armor criterio di sicurezza
  • Utilizzando i seguenti metodi dell'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
  • Se utilizzi i seguenti metodi dell'API:
    • BackendServices setSecurityPolicy
    • BackendServices list (solo gcloud)

Utenti con il ruolo Amministratore sicurezza (roles/iam.securityAdmin) e il ruolo Amministratore rete Compute può visualizzare la sicurezza di Google Cloud Armor utilizzando i metodi dell'API SecurityPolicies 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 dell'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

Utilizzare una verifica manuale reCAPTCHA per distinguere i clienti umani da quelli automatici

Per utilizzare reCAPTCHA con Google Cloud Armor, devi associare la chiave di sito WAF reCAPTCHA (chiave reCAPTCHA) di tipo CHALLENGEPAGE a un criterio di sicurezza. Per ulteriori informazioni sulle chiavi reCAPTCHA, consulta la panoramica delle chiavi reCAPTCHA.

Per associare o annullare l'associazione della tua chiave reCAPTCHA a un criterio di sicurezza, utilizza il seguente comando:

gcloud compute security-policies update SECURITY_POLICY \
    --recaptcha-redirect-site-key SITE_KEY

Sostituisci quanto segue:

  • SECURITY_POLICY: il nome del criterio di sicurezza
  • SITE_KEY: la tua chiave reCAPTCHA CHALLENGEPAGE

Associare una chiave reCAPTCHA

L'esempio seguente associa una chiave reCAPTCHA a un criterio di sicurezza. La chiave reCAPTCHA associata si applica a tutte le regole che utilizzano la funzionalità di verifica manuale in base al criterio di sicurezza specificato.

gcloud compute security-policies update SECURITY_POLICY \
    --recaptcha-redirect-site-key "SITE_KEY"

Annulla l'associazione di una chiave reCAPTCHA

Per disaccoppiare una chiave reCAPTCHA da un criterio di sicurezza, utilizza questo comando:

gcloud compute security-policies update SECURITY_POLICY \
    --recaptcha-redirect-site-key ""

Reindirizzare il traffico per la valutazione reCAPTCHA

Dopo aver associato la chiave reCAPTCHA ai criteri di sicurezza, puoi: creare una regola all'interno di questo criterio per reindirizzare internamente il traffico Test reCAPTCHA. Utilizza il seguente formato nell'interfaccia a riga di comando gcloud per reindirizzare il traffico:

gcloud compute security-policies rules create PRIORITY \
  --security-policy SECURITY_POLICY \
  {--expression EXPRESSION | --src-ip-ranges SRC_IP_RANGE} \
  --action redirect \
  --redirect-type google-recaptcha

Sostituisci quanto segue:

  • PRIORITY: la priorità con cui vuoi creare il regola
  • SECURITY_POLICY: il nome del criterio di sicurezza
  • EXPRESSION: l'espressione del linguaggio delle regole personalizzate che corrisponde al traffico per cui vuoi applicare la valutazione reCAPTCHA
  • SRC_IP_RANGE: un intervallo di indirizzi IP. Utilizza questa opzione per applicare Test reCAPTCHA su tutte le richieste di questo intervallo.

L'esempio seguente crea una regola che reindirizza il traffico che tenta di raggiungere /login.html per una verifica manuale reCAPTCHA:

gcloud compute security-policies rules create 1000 \
    --security-policy SECURITY_POLICY \
    --expression "request.path.matches(\"/login.html\")" \
    --action redirect \
    --redirect-type google-recaptcha

Applicare la valutazione senza problemi di reCAPTCHA

Prima di procedere, consulta la panoramica della gestione dei bot per i prerequisiti per l'utilizzo dei token di azione o dei token di sessione reCAPTCHA.

Per estrarre attributi da un token di azione reCAPTCHA, puoi utilizzare token.recaptcha_action.ATTRIBUTE. Sostituisci ATTRIBUTE con un attributo token valido nel linguaggio delle regole di Google Cloud Armor. Allo stesso modo, usa token.recaptcha_session.ATTRIBUTE per estrarre attributi da un token di sessione reCAPTCHA. Per maggiori informazioni informazioni sulla sintassi del token reCAPTCHA disponibile vedere gli attributi riferimento al linguaggio di regole.

Un token di azione può provenire da un'applicazione web, un'applicazione per iOS o un'applicazione Android, mentre un token di sessione può provenire solo da un'applicazione. Ogni piattaforma richiede una chiave reCAPTCHA separata. Le espressioni token.recaptcha_action.ATTRIBUTE e token.recaptcha_session.ATTRIBUTE si applicano ai token di qualsiasi di queste piattaforme. Per distinguere i token di piattaforme diverse Per evitare il furto di token, ti consigliamo di associare le chiavi reCAPTCHA quando e configurare regole che utilizzano queste espressioni.

Esempi

Il primo esempio crea una regola che consente il targeting del traffico /login.html con un token di azione reCAPTCHA con punteggio non meno di 0.8.

gcloud compute security-policies rules create 1000 \
    --security-policy SECURITY_POLICY \
    --expression "request.path.matches(\"/login.html\") && token.recaptcha_action.score >= 0.8" \
    --action allow

Il secondo esempio è uguale al primo, ma richiede anche che il token di azione venga emesso con una chiave reCAPTCHA di example-site-key-1 o example-site-key-2:

gcloud compute security-policies rules create 1000 \
    --security-policy SECURITY_POLICY \
    --expression "request.path.matches(\"/login.html\") && token.recaptcha_action.score >= 0.8" \
    --recaptcha-action-site-keys "example-site-key-1,example-site-key-2" \
    --action allow

Il terzo esempio crea una regola che consente il traffico che ha come target /login.html, con un token di sessione reCAPTCHA emesso con una chiave reCAPTCHA di example-site-key-3 e con un punteggio non inferiore a 0.8.

gcloud compute security-policies rules create 1000 \
    --security-policy SECURITY_POLICY \
    --expression "request.path.matches(\"/login.html\") && token.recaptcha_session.score >= 0.8" \
    --recaptcha-session-site-keys "example-site-key-3" \
    --action allow

Reindirizzamento (risposta 302)

Per creare una regola per reindirizzare il traffico a un URL configurato dall'utente, utilizza il seguente formato in Google Cloud CLI:

gcloud compute security-policies rules create PRIORITY \
    --security-policy SECURITY_POLICY \
    {--expression EXPRESSION | --src-ip-ranges SRC_IP_RANGE} \
    --action redirect \
    --redirect-type external-302 \
    --redirect-target REDIRECT_URL

Sostituisci quanto segue:

  • PRIORITY: la priorità con cui vuoi creare il regola
  • SECURITY_POLICY: il nome del criterio di sicurezza
  • EXPRESSION: l'espressione del linguaggio delle regole personalizzate che corrisponde al traffico per cui vuoi applicare la valutazione reCAPTCHA
  • SRC_IP_RANGE: un intervallo di indirizzi IP. Utilizzalo per applicare la valutazione reCAPTCHA a tutte le richieste di questo intervallo.
  • REDIRECT_URL: l'URL a cui vuoi reindirizzare gli utenti traffico

L'esempio seguente crea una regola che reindirizza il traffico proveniente da 10.10.10.0/24 a https://www.example.com.

gcloud compute security-policies rules create 1000 \
   --security-policy SECURITY_POLICY \
   --src-ip-ranges "10.10.10.0/24" \
   --action redirect \
   --redirect-type external-302 \
   --redirect-target "https://www.example.com"

Richiesta di decorazione

Per creare una regola che consenta il traffico, ma aggiunga intestazioni personalizzate e valori statici definiti dall'utente prima di inviarli ai backend protetti, utilizza il seguente formato nella CLI gcloud:

gcloud compute security-policies rules create PRIORITY \
    --security-policy SECURITY_POLICY \
    {--expression EXPRESSION | --src-ip-ranges SRC_IP_RANGE} \
    --action allow \
    --request-headers-to-add HEADER_1=VALUE_1,HEADER_2=VALUE_2,...

Sostituisci quanto segue:

  • PRIORITY: la priorità che vuoi creare la regola
  • SECURITY_POLICY: il nome del criterio di sicurezza
  • EXPRESSION: l'espressione del linguaggio delle regole personalizzate che corrisponde al traffico per cui vuoi applicare la valutazione reCAPTCHA
  • SRC_IP_RANGE: un intervallo di indirizzi IP. Utilizzalo per applicare la valutazione reCAPTCHA a tutte le richieste di questo intervallo.
  • HEADER_#: il nome dell'intestazione della richiesta con cui vuoi decorare la richiesta
  • VALUE_#: il valore dell'intestazione della richiesta con cui vuoi decorare la richiesta

L'esempio seguente crea una regola che consente il traffico che ha come target /login.html, a condizione che la richiesta abbia anche un punteggio del token di azione reCAPTCHA inferiore a 0.2.

gcloud compute security-policies rules create 1000 \
    --security-policy SECURITY_POLICY \
    --expression "request.path.matches("/login.html") && token.recaptcha_action.score < 0.2" \
    --action allow \
    --request-headers-to-add "reCAPTCHA-Warning=high"

Passaggi successivi