Questa pagina contiene informazioni sulla configurazione delle regole delle policy di sicurezza di Cloud Armor per la gestione dei bot. Prima di configurare la gestione dei bot, assicurati di conoscere le informazioni contenute nella panoramica della gestione dei bot.
Prima di iniziare
Le sezioni seguenti descrivono tutti i ruoli e le autorizzazioni di Identity and Access Management (IAM) necessari per configurare le policy di sicurezza di Cloud Armor. Per
i casi d'uso descritti in questo documento, hai bisogno solo delle
autorizzazioni compute.securityPolicies.create e compute.securityPolicies.update.
Configura le autorizzazioni IAM per le policy di sicurezza di Cloud Armor
Le seguenti operazioni richiedono il ruolo Identity and Access Management (IAM) Compute Security Admin (roles/compute.securityAdmin):
- Configurare, modificare, aggiornare ed eliminare una policy di sicurezza Cloud Armor
- Utilizzare i seguenti metodi API:
SecurityPolicies insertSecurityPolicies deleteSecurityPolicies patchSecurityPolicies addRuleSecurityPolicies patchRuleSecurityPolicies removeRule
Un utente con il ruolo Compute Network Admin (roles/compute.networkAdmin) può eseguire le seguenti operazioni:
- Impostare una policy di sicurezza di Cloud Armor per un servizio di backend
- Utilizzare i seguenti metodi API:
BackendServices setSecurityPolicyBackendServices list(sologcloud)
Gli utenti con il ruolo Security Admin (roles/iam.securityAdmin) e il ruolo Compute Network Admin (roles/compute.networkAdmin) possono visualizzare le policy di sicurezza di Cloud Armor utilizzando i metodi dell'API SecurityPolicies get, list e getRule.
Configura le autorizzazioni IAM per i ruoli personalizzati
La tabella seguente elenca le autorizzazioni di base dei ruoli IAM e i metodi dell'API associati.
| Autorizzazione IAM | Metodi dell'API |
|---|---|
compute.securityPolicies.create |
SecurityPolicies insert |
compute.securityPolicies.delete |
SecurityPolicies delete |
compute.securityPolicies.get |
SecurityPolicies getSecurityPolicies getRule |
compute.securityPolicies.list |
SecurityPolicies list |
compute.securityPolicies.use |
BackendServices setSecurityPolicy |
compute.securityPolicies.update |
SecurityPolicies patchSecurityPolicies addRuleSecurityPolicies patchRuleSecurityPolicies removeRule |
compute.backendServices.setSecurityPolicy |
BackendServices setSecurityPolicy |
Utilizza una verifica manuale reCAPTCHA per distinguere tra client umani o automatici
Per utilizzare reCAPTCHA con Cloud Armor, devi associare
la chiave di sito reCAPTCHA WAF (chiave reCAPTCHA) di tipo CHALLENGEPAGE a una
policy di sicurezza. Per ulteriori informazioni sulle chiavi reCAPTCHA, consulta la
panoramica delle chiavi reCAPTCHA.
Per associare o dissociare la tua chiave reCAPTCHA a una policy 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 della policy di sicurezzaSITE_KEY: la chiaveCHALLENGEPAGEreCAPTCHA
Associa una chiave reCAPTCHA
L'esempio seguente associa una chiave reCAPTCHA a una policy di sicurezza. La chiave reCAPTCHA associata si applica a tutte le regole che utilizzano la funzionalità di verifica manuale nell'ambito della policy di sicurezza specificata.
gcloud compute security-policies update SECURITY_POLICY \
--recaptcha-redirect-site-key "SITE_KEY"
Dissocia una chiave reCAPTCHA
Per dissociare una chiave reCAPTCHA da una policy di sicurezza, utilizza questo comando:
gcloud compute security-policies update SECURITY_POLICY \
--recaptcha-redirect-site-key ""
Reindirizza il traffico per il test reCAPTCHA
Dopo aver associato la chiave reCAPTCHA alla policy di sicurezza, puoi creare una regola all'interno della policy per reindirizzare internamente il traffico per il test reCAPTCHA. Utilizza il seguente formato in gcloud CLI 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 la regolaSECURITY_POLICY: il nome della policy di sicurezzaEXPRESSION: l'espressione del linguaggio delle regole personalizzate che corrisponde al traffico su cui vuoi applicare il test reCAPTCHASRC_IP_RANGE: un intervallo di indirizzi IP. Utilizza questa opzione per applicare il test reCAPTCHA a 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 reCAPTCHA manuale:
gcloud compute security-policies rules create 1000 \
--security-policy SECURITY_POLICY \
--expression "request.path.matches(\"/login.html\")" \
--action redirect \
--redirect-type google-recaptcha
Applica in modo forzato il test reCAPTCHA senza interruzioni
Prima di procedere, consulta la panoramica della gestione dei bot per i prerequisiti per l'utilizzo dei token di azione reCAPTCHA o dei token di sessione.
Per estrarre gli 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 Cloud Armor.
Allo stesso modo, utilizza token.recaptcha_session.ATTRIBUTE
per estrarre gli attributi da un token di sessione reCAPTCHA. Per ulteriori informazioni sulla sintassi degli attributi dei token reCAPTCHA disponibili, consulta il riferimento per il linguaggio delle regole.
Un token di azione può provenire da un'applicazione web, un'applicazione iOS o
un'app per Android, mentre un token di sessione può provenire solo da un'applicazione
web. Ogni piattaforma richiede una chiave reCAPTCHA separata. Le espressioni
token.recaptcha_action.ATTRIBUTE e
token.recaptcha_session.ATTRIBUTE si applicano ai token di
una qualsiasi di queste piattaforme. Per distinguere i token di piattaforme diverse e per impedire il furto di token, ti consigliamo di associare le chiavi reCAPTCHA quando configuri le 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 il cui 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_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 la regolaSECURITY_POLICY: il nome della policy di sicurezzaEXPRESSION: l'espressione del linguaggio delle regole personalizzate che corrisponde al traffico per il quale vuoi applicare il test reCAPTCHASRC_IP_RANGE: un intervallo di indirizzi IP. Utilizza questa opzione per applicare il test reCAPTCHA a tutte le richieste di questo intervallo.REDIRECT_URL: l'URL a cui vuoi reindirizzare il 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"
Decora la richiesta
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 in gcloud CLI:
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à con cui vuoi creare la regolaSECURITY_POLICY: il nome della policy di sicurezzaEXPRESSION: l'espressione del linguaggio delle regole personalizzate che corrisponde al traffico su cui vuoi applicare il test reCAPTCHASRC_IP_RANGE: un intervallo di indirizzi IP. Utilizza questa opzione per applicare il test reCAPTCHA a tutte le richieste di questo intervallo.HEADER_#: il nome dell'intestazione della richiesta con cui vuoi decorare la richiestaVALUE_#: il valore dell'intestazione della richiesta con cui vuoi decorare la richiesta
L'esempio seguente crea una regola che consente il targeting del traffico /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
- Consulta la panoramica della limitazione di frequenza.
- Scopri di più sulla gestione dei bot.