I profili di sicurezza del filtro degli URL sono strutture di policy di livello 7 che utilizzano filtri URL per definire le policy di sicurezza per gli endpoint firewall. Questi profili valutano i nomi di dominio nel traffico di rete per applicare azioni di autorizzazione o negazione in base a stringhe di corrispondenza e priorità specifiche.
Questa pagina spiega come creare e gestire i profili di sicurezza con filtro degli URL.
Prima di iniziare
- Devi abilitare l'API Network Security nel tuo progetto.
- Installa Google Cloud CLI se vuoi eseguire gli esempi di riga di comando
gcloudin questa guida.
Ruoli
Per ottenere le autorizzazioni necessarie per creare, visualizzare, aggiornare o eliminare i profili di sicurezza, chiedi all'amministratore di concederti i ruoli IAM (Identity and Access Management) necessari nella tua organizzazione. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
Crea un profilo di sicurezza con filtro degli URL
Per creare un profilo di sicurezza url-filtering, specifica un nome
come stringa o come identificatore URL univoco.
Console
Nella console Google Cloud , vai alla pagina Profili di sicurezza.
Nel menu del selettore dei progetti, seleziona l'organizzazione o il progetto in cui vuoi creare il profilo di sicurezza.
Seleziona la scheda Profili di sicurezza.
Fai clic su Crea profilo.
Inserisci un nome nel campo Nome.
(Facoltativo) Inserisci una descrizione nel campo Descrizione.
Per creare un profilo di sicurezza Cloud Next Generation Firewall Enterprise, seleziona Cloud NGFW Enterprise nella sezione Scopo.
Per creare un profilo di sicurezza con filtro degli URL, nella sezione Tipo, seleziona Filtro degli URL.
Nella sezione Filtri URL, fai clic sul pulsante Crea filtro URL.
Nel riquadro Crea un filtro URL, specifica i seguenti dettagli:
- Priorità: specifica la priorità del filtro URL.
- Azione: specifica l'azione che Cloud NGFW
esegue sul traffico.
- Consenti: consente le connessioni che corrispondono a un URL.
- Nega: nega le connessioni che corrispondono a un URL.
- Elenco di URL: specifica un elenco di URL o stringhe di corrispondenza. Ogni voce di URL o stringa di corrispondenza deve apparire su una riga separata senza spazi o delimitatori. Ogni voce può essere costituita solo da un dominio. Per saperne di più sulle stringhe del matcher, vedi Stringhe del matcher per gli URL.
Fai clic su Crea.
gcloud
Crea un file YAML con i seguenti contenuti:
name: NAME type: url-filtering urlFilteringProfile: urlFilters: - filteringAction: ACTION priority: PRIORITY urls: [URL,URL,...]Sostituisci quanto segue:
NAME: il nome del profilo di sicurezza del filtro degli URL; puoi specificare il nome come stringa o come identificatore URL univoco.ACTION: specifica una delle seguenti azioni:ALLOW: consente le connessioni che corrispondono a un URLDENY: nega le connessioni che corrispondono a un URL
PRIORITY: priorità di un filtro URL compresa tra 0 e 2147483647.URLs: un elenco separato da virgole di stringhe di corrispondenza. Ad esempio,www.example.comewww.examplepetstore.com.
Per creare il profilo di sicurezza con filtro degli URL, esegui il comando
gcloud network-security security-profiles import:gcloud network-security security-profiles import NAME \ --source FILE_NAME \ [ --organization ORGANIZATION_ID | --project PROJECT_ID ] \ --location global
In alternativa, puoi creare un profilo di sicurezza con filtro degli URL senza un file YAML utilizzando il comando
gcloud network-security security-profiles url-filtering create:gcloud network-security security-profiles url-filtering create NAME \ [ --organization ORGANIZATION_ID | --project PROJECT_ID ] \ --description DESCRIPTION \ --location globalSostituisci quanto segue:
NAME: il nome del profilo di sicurezza del filtro degli URL.Se non utilizzi il formato dell'identificatore URL univoco per il nome, devi specificare l'organizzazione o il nome del progetto e la località.
FILE_NAME: il nome del file YAML. Ad esempio,url-filtering-sp.yaml.ORGANIZATION_ID: l'ID organizzazione. Utilizza questo flag per creare un profilo di sicurezza a livello di organizzazione.PROJECT_ID: l'ID progetto Utilizza questo flag per creare un profilo di sicurezza a livello di progetto.DESCRIPTION: una descrizione facoltativa per il profilo di sicurezza del filtro URL.
Ad esempio, il seguente snippet di codice mostra un esempio di profilo di sicurezza con filtro URL che consente le richieste a
www.example.comewww.examplepetstore.com, ma nega le richieste a tutti gli altri domini:urlFilteringProfile: urlFilters: - filteringAction: ALLOW priority: 1000 urls: ['www.example.com', 'www.examplepetstore.com'] # the following URL filter is implicit and will be processed last - filteringAction: DENY priority: 2147483647 urls: ['*']
Filtro URL di negazione implicita
Il profilo di sicurezza del filtro degli URL include sempre un filtro URL predefinito con la priorità più bassa (2147483647), che nega tutte le connessioni che non corrispondono ai filtri URL con priorità più elevata. Il seguente snippet di codice mostra un esempio del filtro URL di negazione implicita:
urlFilteringProfile:
urlFilters:
# user-specified URL filters
- filteringAction: DENY
priority: 1000
urls: ['www.example.com','www.examplepetstore.com']
- filteringAction: ALLOW
priority: 2000
urls: ['www.example.org','www.example.net']
# implicit deny URL filter that will be processed last
- filteringAction: DENY
priority: 2147483647
urls: ['*']
Puoi visualizzare il filtro degli URL di negazione implicita quando visualizzi o esporti un profilo di sicurezza di filtraggio degli URL. Non puoi modificare o rimuovere il filtro implicito.
Ad esempio, se vuoi modificare l'azione predefinita di un profilo da DENY
(applicata dal filtro implicito) a ALLOW, devi aggiungere un filtro esplicito che
Cloud NGFW elabora prima del filtro implicito.
urlFilteringProfile:
urlFilters:
# user-specified filters
- filteringAction: DENY
priority: 1000
urls: ['www.example.com','www.examplepetstore.com']
# explicit allow URL filter that you can add
- filteringAction: ALLOW
priority: 2000
urls: ['*']
# implicit deny URL filter that will be processed last
- filteringAction: DENY
priority: 2147483647
urls: ['*']
Stringhe di corrispondenza per gli URL
Le stringhe di corrispondenza sono i valori che specifichi nel campo urls di un filtro URL. Puoi specificare una o più stringhe di corrispondenza all'interno di un filtro URL.
Caratteri jolly
Ogni stringa di corrispondenza in un elenco di URL supporta un carattere jolly (*) in modo limitato.
- Ogni stringa di corrispondenza può supportare un solo asterisco (*), che deve essere il primo o l'unico carattere.
L'asterisco (*) può avere le seguenti interpretazioni:
Un asterisco (*) prima di un punto (.) indica tutti i sottodomini del dominio.
Ad esempio, la stringa di corrispondenza
*.example.comcorrisponde aa.example.comea.b.c.example.com, ma non aexample.com.urlFilteringProfile: urlFilters: # user-specified filters - filteringAction: ALLOW priority: 1000 urls: ['*.example.com'] # implicit deny URL filter that will be processed last - filteringAction: DENY priority: 2147483647 urls: ['*']Nell'esempio precedente, Cloud NGFW consente il traffico verso i sottodomini di
example.com, ma nega il resto del traffico in uscita.Un asterisco (*) prima di un'etichetta indica il dominio e tutti i sottodomini.
Ad esempio, la stringa di corrispondenza
*example.comcorrisponde aa.example.com,a.b.c.example.comeexample.com.urlFilteringProfile: urlFilters: # user-specified filters - filteringAction: ALLOW priority: 1000 urls: ['*example.com'] # implicit deny URL filter that will be processed last - filteringAction: DENY priority: 2147483647 urls: ['*']Nell'esempio precedente, Cloud NGFW consente il traffico verso
example.come i sottodomini diexample.com, ma nega il resto del traffico in uscita.Un asterisco (*) prima di un'estensione di dominio (ad esempio
.com) indica tutti i domini (e i relativi sottodomini) che utilizzano l'estensione di dominio.Ad esempio, la stringa di corrispondenza
*.comcorrisponde aexample.comeexamplepetstore.come a tutti i relativi sottodomini.Lo snippet di codice seguente mostra come consentire tutti i domini (e i relativi sottodomini) che terminano con
.com, ma negare il traffico rimanente.urlFilteringProfile: urlFilters: # Allow all domains (and their subdomains) that end in '.com' - filteringAction: ALLOW priority: 2000 urls: ['*.com'] # implicit deny URL filter that will be processed last - filteringAction: DENY priority: 2147483647 urls: ['*']Lo snippet di codice seguente mostra come negare tutti i sottodomini di
example.comeexamplepetstore.com, ma consentire questi domini e tutti gli altri domini (e i relativi sottodomini) che terminano con.com.urlFilteringProfile: urlFilters: # Deny all subdomains of example.com - filteringAction: DENY priority: 1000 urls: ['*.example.com'] # Deny all subdomains of examplepetstore.com - filteringAction: DENY priority: 1500 urls: ['*.examplepetstore.com'] # Allow all domains (and their subdomains) that end in '.com' - filteringAction: ALLOW priority: 2000 urls: ['*.com'] # implicit deny URL filter that will be processed last - filteringAction: DENY priority: 2147483647 urls: ['*']Cloud NGFW non interpreta l'asterisco (*) come carattere jolly di un'espressione regolare.
Ad esempio,
*example.testnon corrisponde anewexample.testoa.newexample.test. ma corrisponde solo aexample.teste ai sottodomini diexample.test.Un singolo asterisco (*) senza altri caratteri indica una corrispondenza per tutte le richieste.
Ad esempio, la stringa di corrispondenza nel filtro URL di autorizzazione esplicita con priorità più bassa contiene solo un asterisco (*) e ha un'azione
ALLOWche esegue l'override dell'azione predefinitaDENY. Ciò accade perché il filtro URL di negazione implicita applica il valore predefinitoDENYa qualsiasi richiesta che non corrisponde ai filtri URL con priorità più elevata.Il filtro URL con la priorità più alta, ovvero un
ALLOWesplicito o unDENYimplicito, determina se Cloud NGFW consente o nega le connessioni quando mancano informazioni SNI o di dominio. Ciò può accadere con il traffico HTTP non criptato o quando l'ispezione TLS è disattivata per le intestazioni dei messaggi criptate.urlFilteringProfile: urlFilters: # user-specified filters - filteringAction: DENY priority: 1000 urls: ['www.example.com','www.examplepetstore.com'] # explicit allow URL filter that you can add - filteringAction: ALLOW priority: 2000 urls: ['*'] # implicit deny URL filter that will be processed last - filteringAction: DENY priority: 2147483647 urls: ['*']
Limitazioni
- Le stringhe di corrispondenza rappresentano domini o sottodomini.
- Le stringhe di corrispondenza non supportano il carattere della barra (/), ad esempio
www.example.com/images. - Le stringhe di corrispondenza non supportano schemi o nomi di protocolli. Ad esempio:
http://www.example.com. - Le stringhe di corrispondenza non supportano i numeri di porta. Ad esempio:
www.example.com:80. - Le stringhe di corrispondenza supportano solo lettere ASCII, numeri e caratteri speciali: trattino (-), punto (.) e asterisco (*).
Devi utilizzare Punycode per convertire i nomi di dominio che contengono caratteri diversi da lettere ASCII, numeri, trattini (-), punti (.) o asterischi (*). Punycode è uno standard di codifica che trasforma i nomi di dominio Unicode in un formato compatibile con ASCII.
Se hai due o più etichette, utilizza i punti (.) per separarle. Un'etichetta può contenere uno o più trattini (-), ma non deve iniziare o terminare con un trattino. Ogni etichetta può includere un massimo di 63 caratteri.
Un filtro URL non supporta l'utilizzo di un punto all'inizio di un nome di dominio o di punti consecutivi all'interno di una stringa di corrispondenza. Un filtro URL consente punti finali, ma Cloud NGFW li rimuove prima di salvare un filtro URL.
Cloud NGFW converte le stringhe di corrispondenza in minuscolo prima di salvare il filtro URL. Cloud NGFW non esegue altre normalizzazioni.
Ogni nome di dominio può includere un massimo di 255 caratteri.
Filtri URL per sottodomini multilivello
Puoi utilizzare i filtri URL con priorità e azioni diverse per controllare il traffico di rete verso i sottodomini multilivello. Puoi anche utilizzare il carattere jolly (*) nelle stringhe di corrispondenza per specificare domini e sottodomini.
Ad esempio, considera uno scenario in cui implementi il seguente comportamento:
- Consenti
a.b.c.example.com - Nega
*.b.c.example.com(nega tutti gli altri sottodomini dib.c.example.com) - Consenti
*.c.example.com(consenti tutti gli altri sottodomini dic.example.com) - Nega
*.example.com(nega tutti gli altri sottodomini diexample.com) - Consenti
example.com - Consenti tutto il resto
Il seguente snippet di codice implementa questo scenario:
urlFilteringProfile:
urlFilters:
# Allow 'a.b.c.example.com'
- filteringAction: ALLOW
priority: 1000
urls: ['a.b.c.example.com']
# Deny all subdomains of 'b.c.example.com'
- filteringAction: DENY
priority: 2000
urls: ['*.b.c.example.com']
# Allow all subdomains of 'c.example.com'
- filteringAction: ALLOW
priority: 3000
urls: ['*.c.example.com']
# Deny all subdomains of 'example.com'
- filteringAction: DENY
priority: 4000
urls: ['*.example.com']
# explicit allow URL filter
- filteringAction: ALLOW
priority: 5000
urls: ['*']
# implicit deny URL filter that will be processed last
- filteringAction: DENY
priority: 2147483647
urls: ['*']
Elenca e visualizza i dettagli di un profilo di sicurezza con filtro degli URL
Puoi elencare i profili di sicurezza con filtro degli URL creati in un'organizzazione o in un progetto. Puoi anche visualizzare i dettagli del profilo, come tipo, scopo e descrizione.
Console
Nella console Google Cloud , vai alla pagina Profili di sicurezza.
Seleziona la scheda Profili di sicurezza per visualizzare un elenco dei profili di sicurezza configurati.
Per filtrare in base ai profili di sicurezza del filtro degli URL, nel campo Filtro, specifica Tipo di profilo come Filtro degli URL.
La scheda mostra un elenco di profili di sicurezza con filtro degli URL.
Per visualizzare i dettagli del profilo, fai clic su un profilo di sicurezza con filtro degli URL.
gcloud
Per elencare tutti i profili di sicurezza con filtro degli URL, utilizza il comando
gcloud network-security security-profiles url-filtering list:
gcloud network-security security-profiles url-filtering list \
[ --organization ORGANIZATION_ID | --project PROJECT_ID ] \
[--billing-project QUOTA_PROJECT_ID]
--location global
Per visualizzare i dettagli di un profilo di sicurezza con filtro degli URL, esegui il
comando gcloud network-security security-profiles url-filtering describe:
gcloud network-security security-profiles url-filtering describe NAME \
[ --organization ORGANIZATION_ID | --project PROJECT_ID ] \
[--billing-project QUOTA_PROJECT_ID]
--location global
Sostituisci quanto segue:
NAME: il nome del profilo di sicurezza.Se non utilizzi il formato dell'identificatore URL univoco per il nome, devi specificare l'organizzazione o il nome del progetto e la località.
ORGANIZATION_ID: l'ID dell'organizzazione in cui esiste il profilo di sicurezza.PROJECT_ID: l'ID progetto in cui esiste il profilo di sicurezza.QUOTA_PROJECT_ID: il tuo ID progetto quota. Utilizza questo flag solo per i profili di sicurezza a livello di organizzazione.
Elimina un profilo di sicurezza con filtro degli URL
Puoi eliminare un profilo di sicurezza per il filtro degli URL specificandone il nome, la posizione e l'organizzazione o il progetto. Se un profilo di sicurezza viene a cui fa riferimento un gruppo di profili di sicurezza, non puoi eliminarlo.
Per eliminare un profilo di sicurezza del filtro degli URL, utilizza la console Google Cloud o gcloud CLI. Tuttavia, se un profilo di sicurezza viene referenziato da un gruppo di profili di sicurezza, non può essere eliminato.
Console
Nella console Google Cloud , vai alla pagina Profili di sicurezza.
Seleziona la scheda Profili di sicurezza. La scheda mostra un elenco di profili di sicurezza configurati.
Seleziona il profilo di sicurezza che vuoi eliminare, quindi fai clic su Elimina.
Fai di nuovo clic su Elimina per confermare.
gcloud
Per eliminare un profilo di sicurezza del filtro degli URL, utilizza il
comando gcloud network-security security-profiles url-filtering delete:
gcloud network-security security-profiles url-filtering delete NAME \
[ --organization ORGANIZATION_ID | --project PROJECT_ID ] \
--location global
Sostituisci quanto segue:
NAME: il nome del profilo di sicurezza.Se non specifichi il nome nel formato dell'identificatore URL univoco, devi specificare l'organizzazione o il nome del progetto e la località.
ORGANIZATION_ID: l'ID organizzazione. Utilizza questo flag per un profilo di sicurezza a livello di organizzazione.PROJECT_ID: il tuo ID progetto. Utilizza questo flag per un profilo di sicurezza a livello di progetto.QUOTA_PROJECT_ID: il tuo ID progetto quota. Utilizza questo flag solo per i profili di sicurezza a livello di organizzazione.
Importare un profilo di sicurezza con filtro degli URL
Puoi importare un profilo di sicurezza con filtro degli URL (creato personalizzato o esportato in precedenza) da un file YAML. Quando importi un profilo di sicurezza del filtro degli URL, se esiste già un profilo con lo stesso nome, Cloud NGFW aggiorna il profilo esistente.
Per importare un profilo di sicurezza del filtro degli URL da un file YAML, utilizza gcloud CLI. Se esiste già un profilo con lo stesso nome quando lo importi, Cloud NGFW lo aggiorna.
gcloud
Per importare un profilo di sicurezza del filtro degli URL da un file YAML, utilizza il comando gcloud network-security security-profiles import:
gcloud network-security security-profiles import NAME \
[ --organization ORGANIZATION_ID | --project PROJECT_ID ] \
--location global \
--source FILE_NAME
Sostituisci quanto segue:
NAME: il nome del profilo di sicurezza di tipourl-filteringche vuoi importare; puoi specificare il nome come stringa o come identificatore URL univoco.ORGANIZATION_ID: l'ID organizzazione. Utilizza questo flag per un profilo di sicurezza a livello di organizzazione.PROJECT_ID: l'ID progetto Utilizza questo flag per un profilo di sicurezza a livello di progetto.FILE_NAME: il percorso del file YAML contenente i dati di esportazione della configurazione.
Esporta un profilo di sicurezza con filtro degli URL
Puoi esportare un profilo di sicurezza con filtro URL in un file YAML. Ad esempio, invece di utilizzare l'interfaccia utente per modificare un profilo di sicurezza di grandi dimensioni, puoi utilizzare questa funzionalità per esportare il profilo di sicurezza, modificarlo rapidamente e importarlo di nuovo.
Per esportare un profilo di sicurezza del filtro degli URL in un file YAML, utilizza gcloud CLI.
gcloud
Per esportare un profilo di sicurezza del filtro degli URL in un file YAML, utilizza il comando gcloud network-security security-profiles export:
gcloud network-security security-profiles export NAME \
[ --organization ORGANIZATION_ID | --project PROJECT_ID ] \
--location global \
--destination FILE_NAME
Sostituisci quanto segue:
NAME: il nome del profilo di sicurezza di tipourl-filteringche vuoi esportare. Puoi specificare il nome come stringa o come identificatore URL univoco.ORGANIZATION_ID: l'ID organizzazione. Utilizza questo flag per un profilo di sicurezza a livello di organizzazione.PROJECT_ID: l'ID progetto Utilizza questo flag per un profilo di sicurezza a livello di progetto.FILE_NAME: il percorso del file YAML in cui Cloud NGFW esporterà la configurazione.