Questa pagina descrive configurazioni di criteri di sicurezza di esempio per diversi tipi di bilanciatori del carico e criteri di sicurezza.
Esempi di criteri di sicurezza
Crea criteri di sicurezza
Puoi utilizzare la console Trusted Cloud o gcloud CLI per creare policy di sicurezza. Le istruzioni in questa sezione presuppongono che tu stia configurando i criteri di sicurezza da applicare a un bilanciatore del carico delle applicazioni esterno globale o a un bilanciatore del carico delle applicazioni classico e a un servizio di backend esistenti. Per un esempio di come compilare i campi, vedi Creazione dell'esempio.
Console
Crea criteri e regole di sicurezza di Cloud Armor e collega un criterio di sicurezza a un servizio di backend:
Nella console Trusted Cloud , vai alla pagina Policy Google Cloud Armor.
Fai clic su Crea policy.
Nel campo Nome, inserisci il nome della policy.
(Facoltativo) Inserisci una descrizione della norma.
Per Tipo di policy, scegli Policy di sicurezza del backend o Policy di sicurezza perimetrale.
Per Azione regola predefinita, seleziona Consenti per una regola predefinita che consente l'accesso oppure seleziona Nega per una regola predefinita che vieta l'accesso a un indirizzo IP o a un intervallo di indirizzi IP.
La regola predefinita è la regola con la priorità più bassa che ha effetto solo se non si applica nessun'altra regola.
Se stai configurando una regola Nega, seleziona un messaggio di Stato di negazione. Questo è il messaggio di errore visualizzato da Cloud Armor se un utente senza accesso tenta di ottenerlo.
Indipendentemente dal tipo di regola che stai configurando, fai clic su Passaggio successivo.
Aggiungi altre regole:
- Fai clic su Aggiungi regola.
- (Facoltativo) Inserisci una descrizione per la regola.
Seleziona la modalità:
- Modalità base: consente o nega il traffico in base agli indirizzi IP o agli intervalli IP.
- Modalità avanzata: consente o nega il traffico in base alle espressioni delle regole.
Nel campo Corrispondenza, specifica le condizioni in base alle quali si applica la regola:
- Modalità base: inserisci gli indirizzi IP o gli intervalli di indirizzi IP da corrispondere nella regola.
- Modalità avanzata: inserisci un'espressione o delle sottoespressioni da valutare in base alle richieste in entrata. Per informazioni su come scrivere le espressioni, consulta Configurazione degli attributi del linguaggio delle regole personalizzate.
Per Azione, seleziona Consenti o Nega per consentire o negare il traffico se la regola corrisponde.
Per attivare la modalità di anteprima, seleziona la casella di controllo Attiva. In modalità di anteprima, puoi vedere il comportamento della regola, ma la regola non è abilitata.
Inserisci la Priorità della regola. Può essere qualsiasi numero intero positivo compreso tra 0 e 2.147.483.646 inclusi. Per ulteriori informazioni sull'ordine di valutazione, vedi Ordine di valutazione delle regole.
Fai clic su Fine.
Per aggiungere altre regole, fai clic su Aggiungi regola e ripeti i passaggi precedenti. Altrimenti, fai clic su Passaggio successivo.
Applica la policy alle destinazioni:
- Fai clic su Aggiungi target.
- Nell'elenco Destinazione, seleziona una destinazione.
- Per aggiungere altri target, fai clic su Aggiungi target.
- Fai clic su Fine.
- Fai clic su Crea criterio.
gcloud
Per creare un nuovo criterio di sicurezza Cloud Armor, utilizza il comando
gcloud compute security-policies create
.Nel campo
type
, utilizzaCLOUD_ARMOR
per creare una policy di sicurezza backend oCLOUD_ARMOR_EDGE
per creare una policy di sicurezza perimetrale. Il flagtype
è facoltativo; se non viene specificato alcun tipo, viene creata per impostazione predefinita una policy di sicurezza di backend:gcloud compute security-policies create NAME \ [--type=CLOUD_ARMOR|CLOUD_ARMOR_EDGE] \ [--file-format=FILE_FORMAT | --description=DESCRIPTION] \ [--file-name=FILE_NAME]
Sostituisci quanto segue:
NAME
: il nome della policy di sicurezzaDESCRIPTION
: la descrizione della policy di sicurezza
Il seguente comando aggiorna un criterio che hai creato in precedenza, attiva l'analisi JSON e modifica il livello di log in
VERBOSE
:gcloud compute security-policies update my-policy \ --json-parsing=STANDARD \ --log-level=VERBOSE
Per aggiungere regole a un criterio di sicurezza, utilizza il comando
gcloud compute security-policies rules create PRIORITY
.gcloud compute security-policies rules create PRIORITY \ [--security-policy POLICY_NAME] \ [--description DESCRIPTION] \ --src-ip-ranges IP_RANGE,... | --expression EXPRESSION \ --action=[ allow | deny-403 | deny-404 | deny-502 ] \ [--preview]
Sostituisci
PRIORITY
con la priorità assegnata alla regola nel criterio. Per informazioni su come funziona la priorità delle regole, consulta Ordine di valutazione delle regole.Ad esempio, il seguente comando aggiunge una regola per bloccare il traffico proveniente dagli intervalli di indirizzi IP
192.0.2.0/24
e198.51.100.0/24
. La regola ha priorità 1000 ed è una regola in un criterio denominatomy-policy
.gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --description "block traffic from 192.0.2.0/24 and 198.51.100.0/24" \ --src-ip-ranges "192.0.2.0/24","198.51.100.0/24" \ --action "deny-403"
Con l'aggiunta del flag
--preview
, la regola viene aggiunta al criterio, ma non viene applicata e viene registrato solo il traffico che la attiva.gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --description "block traffic from 192.0.2.0/24 and 198.51.100.0/24" \ --src-ip-ranges "192.0.2.0/24","198.51.100.0/24" \ --action "deny-403" \ --preview
Utilizza il flag
--expression
per specificare una condizione personalizzata. Per ulteriori informazioni, vedi Configurazione degli attributi del linguaggio delle regole personalizzate. Il seguente comando aggiunge una regola per consentire il traffico dall'indirizzo IP1.2.3.4
e contiene la stringaexample
nell'intestazione user-agent:gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "inIpRange(origin.ip, '1.2.3.4/32') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('example')" \ --action allow \ --description "Block User-Agent 'example'"
Il comando seguente aggiunge una regola per bloccare le richieste se il cookie della richiesta contiene un valore specifico:
gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "has(request.headers['cookie']) && request.headers['cookie'].contains('cookie_name=cookie_value')" \ --action "deny-403" \ --description "Cookie Block"
Il seguente comando aggiunge una regola per bloccare le richieste provenienti dalla regione
AU
:gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "origin.region_code == 'AU'" \ --action "deny-403" \ --description "AU block"
Il seguente comando aggiunge una regola per bloccare le richieste provenienti dalla regione
AU
che non rientrano nell'intervallo IP specificato:gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "origin.region_code == 'AU' && !inIpRange(origin.ip, '1.2.3.0/24')" \ --action "deny-403" \ --description "country and IP block"
Il seguente comando aggiunge una regola per bloccare le richieste con un URI che corrisponde a un'espressione regolare:
gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "request.path.matches('/example_path/')" \ --action "deny-403" \ --description "regex block"
Il seguente comando aggiunge una regola per bloccare le richieste se il valore decodificato in Base64 dell'intestazione
user-id
contiene un valore specifico:gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "has(request.headers['user-id']) && request.headers['user-id'].base64Decode().contains('myValue')" \ --action "deny-403" \ --description "country and IP block"
Il seguente comando aggiunge una regola che utilizza un insieme di espressioni preconfigurate per mitigare gli attacchi SQLi:
gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "evaluatePreconfiguredWaf('sqli-stable')" \ --action "deny-403"
Il seguente comando aggiunge una regola che utilizza un'espressione preconfigurata per consentire l'accesso da tutti gli indirizzi IP di un elenco di indirizzi IP denominati:
gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "evaluatePreconfiguredWaf('sourceiplist-fastly')" \ --action "allow"
Configura policy di sicurezza per i bilanciatori del carico delle applicazioni esterni regionali
Questa sezione contiene informazioni sulla configurazione dei criteri di sicurezza Cloud Armor con ambito regionale per i bilanciatori del carico delle applicazioni esterni regionali.
Proteggere i carichi di lavoro bilanciati a livello regionale
Per configurare un criterio di sicurezza per proteggere il tuo servizio di backend con ambito regionale:
Crea una policy di sicurezza con ambito regionale.
gcloud compute security-policies create POLICY_NAME \ --type=CLOUD_ARMOR \ --region=REGION
Collega il criterio di sicurezza con ambito regionale a un servizio di backend con ambito regionale. Sostituisci
BACKEND_NAME
con il nome del tuo servizio di backend esistente con ambito regionale.gcloud compute backend-services update BACKEND_NAME \ --security-policy=POLICY_NAME \ --region=REGION
Applica un criterio di sicurezza Cloud Armor con ambito regionale
Considera un esempio in cui sei un amministratore della sicurezza che vuole soddisfare un requisito di residenza in base al quale tutti i tuoi carichi di lavoro di backend e le regole WAF vengono implementati in una regione specifica. Supponiamo che tu abbia già eseguito le seguenti operazioni:
- Hai creato servizi di backend con bilanciamento del carico con ambito regionale nella regione.
- Hai disattivato tutte le policy di sicurezza esistenti con ambito globale nella tua implementazione.
- Hai creato e collegato una policy di sicurezza con ambito regionale nella stessa regione (come nella sezione precedente).
Puoi aggiungere regole WAF e altre regole avanzate ai criteri soddisfacendo il requisito utilizzando i seguenti comandi di esempio:
Aggiungi una regola WAF al criterio:
gcloud compute security-policies rules create 1000 --action=deny-404 \ --expression="evaluatePreconfiguredWaf('xss-v33-stable', ['owasp-crs-v030301-id941100-xss', 'owasp-crs-v030301-id941160-xss'])" \ --security-policy=POLICY_NAME \ --region=REGION
Aggiungi una regola avanzata alla policy:
gcloud compute security-policies rules create 1000 --action=allow \ --expression="has(request.headers['cookie']) && request.headers['cookie'].contains('80=EXAMPLE')" \ --security-policy=POLICY_NAME \ --region=REGION
Aggiungi una regola di limitazione di frequenza alla policy:
gcloud compute security-policies rules create 1000 --action=throttle \ --src-ip-ranges="1.1.1.1/32" \ --rate-limit-threshold-count=1000 \ --rate-limit-threshold-interval-sec=120 \ --conform-action="allow" \ --exceed-action="deny-429" \ --enforce-on-key=IP \ --ban-duration-sec=999 \ --ban-threshold-count=5000 \ --ban-threshold-interval-sec=60 \ --security-policy=POLICY_NAME \ --region=REGION
Passaggi successivi
- Configura i criteri di sicurezza di Cloud Armor
- Scopri di più sulla limitazione della frequenza.