I gruppi di indirizzi ti consentono di combinare più indirizzi IP e intervalli di indirizzi IP in un'unica unità logica denominata, che puoi utilizzare in più prodotti. Questo documento illustra come utilizzare i gruppi di indirizzi con i criteri di sicurezza di Google Cloud Armor. Per utilizzare i gruppi di indirizzi, devi avere un abbonamento Google Cloud Armor Enterprise attivo.
Prima di iniziare
Prima di configurare i gruppi di indirizzi, devi prima abilitare l'API Network Security networksecurity.googleapis.com
Ruoli IAM
Per creare e gestire un gruppo di indirizzi, devi disporre del ruolo Amministratore di rete (compute.networkAdmin
). Puoi anche definire un ruolo personalizzato con un insieme di autorizzazioni equivalente.
La tabella seguente fornisce un elenco delle autorizzazioni Identity and Access Management (IAM) necessarie per eseguire un insieme di attività sui gruppi di indirizzi.
Attività | Nome del ruolo IAM | Autorizzazioni IAM |
---|---|---|
Creare e gestire gruppi di indirizzi | compute.networkAdmin
|
networksecurity.addressGroups.* |
Trovare e visualizzare i gruppi di indirizzi | compute.networkUser |
networksecurity.addressGroups.list
|
Per saperne di più sui ruoli che includono autorizzazioni IAM specifiche, consulta il riferimento alle autorizzazioni IAM.
Creare o modificare gruppi di indirizzi
Le sezioni seguenti spiegano come creare gruppi di indirizzi, come aggiungere e rimuovere indirizzi dai gruppi di indirizzi e come eliminare i gruppi di indirizzi.
Crea un gruppo di indirizzi
Quando crei un gruppo di indirizzi, devi specificarne la capacità e la versione dell'indirizzo IP utilizzando rispettivamente i flag --capacity
e --type
. Non puoi
modificare questi valori dopo aver creato il gruppo di indirizzi.
Inoltre, la capacità massima di Google Cloud Armor potrebbe essere superiore alla capacità massima di altri prodotti, come Cloud Next Generation Firewall. Pertanto, se vuoi utilizzare lo stesso gruppo di indirizzi in più di un prodotto, devi impostare la capacità su un valore inferiore o uguale alla capacità massima più bassa tra questi prodotti.
Console
Nella console Google Cloud, vai alla pagina Gruppi di indirizzi.
Nel menu del selettore dei progetti, seleziona il tuo progetto, se disponibile.
Fai clic su Crea gruppo di indirizzi.
Nel campo Nome, inserisci un nome.
(Facoltativo) Nel campo Descrizione, aggiungi una descrizione.
In Ambito, scegli Globale.
Per Tipo, scegli IPv4 o IPv6.
Per Scopo, scegli Cloud Armor; in alternativa, scegli Firewall e Cloud Armor se prevedi di utilizzare il gruppo di indirizzi anche con le policy di Cloud Next Generation Firewall.
Per ulteriori informazioni sulla scelta dello scopo, consulta la specifica del gruppo di indirizzi.
Nel campo Capacità, inserisci la capacità del gruppo di indirizzi.
Nel campo Indirizzi IP, elenca gli indirizzi IP o gli intervalli IP che vuoi includere nel gruppo di indirizzi separati da virgole. Ad esempio,
1.1.1.0/24,1.2.0.0
.Fai clic su Crea.
gcloud
Utilizza il seguente esempio
comando gcloud network-security address-groups create
per creare un gruppo di indirizzi denominato GROUP_NAME con una
capacità di 1000 indirizzi IPv4
, che può essere utilizzato sia con
Google Cloud Armor sia con Cloud NGFW:
gcloud network-security address-groups create GROUP_NAME \ --location global \ --description "address group description" \ --capacity 1000 \ --type IPv4 \ --purpose DEFAULT,CLOUD_ARMOR
In alternativa, puoi creare un gruppo di indirizzi con una capacità maggiore impostando
esclusivamente lo scopo su CLOUD_ARMOR
. Nell'esempio seguente, crei un gruppo di indirizzi con una capacità di 10.000 intervalli di indirizzi IP IPv6
:
gcloud network-security address-groups create GROUP_NAME \ --location global \ --description "address group description" \ --capacity 10000 \ --type IPv6 \ --purpose CLOUD_ARMOR
Aggiungere elementi a un gruppo di indirizzi
Dopo aver creato un gruppo di indirizzi, puoi aggiungere elementi utilizzando la console Google Cloud o il comando gcloud network-security address-groups add-items
.
Console
Nella console Google Cloud, vai alla pagina Gruppi di indirizzi.
Nel menu del selettore dei progetti, seleziona il tuo progetto, se disponibile.
Per modificare un gruppo di indirizzi, fai clic sul nome del gruppo.
Fai clic su Modifica.
Nel campo Indirizzi IP, aggiungi i nuovi elementi all'elenco di indirizzi IP separati da virgole. In alternativa, puoi fare clic su Importa indirizzi per caricare un file CSV con un elenco di indirizzi IP.
Fai clic su Salva.
gcloud
Nell'esempio seguente, aggiungi gli indirizzi IP 192.168.1.2
,
192.168.1.8
e 192.168.1.9
al gruppo di indirizzi GROUP_NAME.
Fornisci un elenco di elementi separati da virgole con il flag --item
:
gcloud network-security address-groups add-items GROUP_NAME \ --location global \ --items 192.168.1.2,192.168.1.8,192.168.1.9
Rimuovere elementi da un gruppo di indirizzi
Puoi rimuovere elementi da un gruppo di indirizzi utilizzando la console Google Cloud o il comando gcloud network-security address-groups remove-items
.
Console
Nella console Google Cloud, vai alla pagina Gruppi di indirizzi.
Nel menu del selettore dei progetti, seleziona il tuo progetto, se disponibile.
Per modificare un gruppo di indirizzi, fai clic sul nome del gruppo.
Fai clic su Modifica.
Nel campo Indirizzi IP, elimina gli elementi che vuoi rimuovere dall'elenco di indirizzi IP separati da virgole.
Fai clic su Salva.
gcloud
Il seguente comando rimuove gli indirizzi IP 192.168.1.2
, 192.168.1.8
e 192.168.1.9
aggiunti nel comando precedente:
gcloud network-security address-groups remove-items GROUP_NAME \ --location global \ --items 192.168.1.2,192.168.1.8,192.168.1.9
Eliminare un gruppo di indirizzi
Non puoi eliminare un gruppo di indirizzi se una risorsa, ad esempio un criterio di firewall o di sicurezza, fa riferimento a questo gruppo. Per eliminare un gruppo di indirizzi:
Console
Nella console Google Cloud, vai alla pagina Gruppi di indirizzi.
Nel menu del selettore dei progetti, seleziona il tuo progetto, se disponibile.
Seleziona la casella di controllo accanto al gruppo di indirizzi che vuoi eliminare. Assicurati che al gruppo di indirizzi selezionato non sia fatto riferimento da nessun criterio di firewall o di sicurezza.
Fai clic su Elimina, quindi fai di nuovo clic su Elimina per confermare.
gcloud
L'esempio seguente utilizza il
comando gcloud network-security address-groups delete
per eliminare un gruppo di indirizzi denominato GROUP_NAME.
gcloud network-security address-groups delete GROUP_NAME \ --location global
Utilizzare i gruppi di indirizzi con i criteri di sicurezza
Dopo aver creato un gruppo di indirizzi e avervi aggiunto indirizzi IP, puoi usarlo con qualsiasi criterio di sicurezza di backend Google Cloud Armor esistente. Gli esempi riportati di seguito mostrano due diversi modi per utilizzare i gruppi di indirizzi.
Negare un gruppo di indirizzi IP
Per questo esempio, immagina di avere un gruppo di indirizzi IP chiamato
BAD_IPS con 10.000 indirizzi IP che sai essere dannosi. Puoi negare tutti questi indirizzi IP utilizzando una singola regoladeny
dei criteri di sicurezza con la seguente condizione di corrispondenza:
evaluateAddressGroup('BAD_IPS', origin.ip)
Riutilizzare un gruppo di intervalli di indirizzi IP in più criteri di sicurezza
Per questo esempio, immagina di avere lo stesso elenco di 10.000 indirizzi IP
dell'esempio precedente, ma che alcuni di questi indirizzi IP siano noti come
cacciatori di ragni web. Vuoi bloccare tutti questi indirizzi IP da alcuni servizi di backend, ma consentire ai crawler web di accedere ad altri servizi di backend per migliorare l'ottimizzazione per i motori di ricerca (SEO). Per negare a tutti gli indirizzi l'accesso a BACKEND_SERVICE_1, consentendo al contempo agli intervalli di indirizzi IP 66.249.77.32/27
e 66.249.77.64/27
di accedere a BACKEND_SERVICE_2:
- Crea un criterio di sicurezza di backend denominato POLICY_1 e associalo a BACKEND_SERVICE_1.
In POLICY_1, crea una regola
deny
con la seguente condizione di corrispondenza:evaluateAddressGroup('BAD_IPS', origin.ip)
Crea un secondo criterio di sicurezza del backend denominato POLICY_2 e aggancialo a BACKEND_SERVICE_2.
In POLICY_2, crea una regola
deny
con la seguente condizione di corrispondenza, che esclude66.249.77.32/27
e66.249.77.64/27
:evaluateAddressGroup('BAD_IPS', origin.ip, [66.249.77.32/27, 66.249.77.64/27])
Utilizzare un gruppo di indirizzi per la corrispondenza con gli indirizzi IP degli utenti
Per questo esempio, immagina di avere un gruppo di indirizzi IP chiamato
BAD_IPS con 10.000 indirizzi IP che sai essere dannosi. Inoltre, utilizzi un proxy upstream, che include informazioni sui client di origine nell'intestazione. Puoi negare tutti questi indirizzi IP utilizzando
una singola regola deny
del criterio di sicurezza con la seguente condizione di corrispondenza:
evaluateAddressGroup('BAD_IPS', origin.user_ip)
Per ulteriori informazioni sugli indirizzi IP degli utenti, consulta Attributi del linguaggio delle regole.