Questa pagina contiene informazioni sulla configurazione di Google Cloud Armor e regole dei criteri di sicurezza 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 le autorizzazioni di Identity and Access Management (IAM) necessari 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
- Se utilizzi 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
(sologcloud
)
Gli utenti con il ruolo Amministratore della sicurezza (roles/iam.securityAdmin
)
e il ruolo Amministratore della rete di calcolo 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 i ruoli IAM autorizzazioni di base e i 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 |
Utilizza una verifica manuale reCAPTCHA per distinguere tra client automatici da quelli umani
Per utilizzare reCAPTCHA con Google Cloud Armor, devi associare
la tua chiave di sito reCAPTCHA WAF (chiave reCAPTCHA) di tipo CHALLENGEPAGE
con un
criteri di sicurezza. Per ulteriori informazioni sulle chiavi reCAPTCHA, consulta
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 sicurezzaSITE_KEY
: la tua chiave reCAPTCHACHALLENGEPAGE
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"
Scollegare 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 ""
Reindirizza il traffico per test reCAPTCHA
Dopo aver associato la chiave reCAPTCHA al criterio di sicurezza, puoi creare una regola al suo interno per reindirizzare internamente il traffico per la valutazione 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 regolaSECURITY_POLICY
: il nome del criterio di sicurezzaEXPRESSION
: l'espressione del linguaggio delle regole personalizzate che corrisponde al traffico per cui vuoi applicare la valutazione reCAPTCHASRC_IP_RANGE
: un intervallo di indirizzi IP. Utilizzalo per applicare la valutazione 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 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
Applica la valutazione senza problemi di reCAPTCHA
Prima di procedere, consulta panoramica della gestione dei bot per i prerequisiti sull'utilizzo dei token di azione reCAPTCHA 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 Google Cloud Armor.
Analogamente, utilizza token.recaptcha_session.ATTRIBUTE
per estrarre gli 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 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 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 regolaSECURITY_POLICY
: il nome del criterio di sicurezzaEXPRESSION
: l'espressione di linguaggio delle regole personalizzate che corrisponde al traffico a cui vuoi applicare test reCAPTCHASRC_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 che aggiunga intestazioni personalizzate e opzioni i valori statici prima di inviarli a backend protetti, utilizza il seguente codice nell'interfaccia alla 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à che vuoi creare la regolaSECURITY_POLICY
: il nome del criterio di sicurezzaEXPRESSION
: l'espressione del linguaggio delle regole personalizzate che corrisponde al traffico per cui vuoi applicare la valutazione reCAPTCHASRC_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 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
,
purché la richiesta abbia anche un punteggio per il 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
- Visualizza la panoramica sulla limitazione di frequenza.
- Scopri di più sulla gestione dei bot.