Per ispezionare il traffico criptato e proteggere la rete virtual private cloud (VPC) da minacce nascoste, configura l'ispezione Transport Layer Security (TLS) per Cloud Next Generation Firewall.
Se sei un amministratore di rete o un ingegnere della sicurezza che configura l'ispezione TLS, utilizza questo documento per configurare l'ambiente.
Questo documento mostra come completare le seguenti attività:
- Configurare le risorse dell'autorità di certificazione (CA)
- Creare risorse di configurazione dell'attendibilità
- Abilitare l'ispezione TLS
Prima di iniziare, esamina i concetti nella panoramica dell'ispezione TLS.
Prima di iniziare
Prima di configurare l'ispezione TLS, completa le attività nelle sezioni seguenti.
Abilitare Certificate Authority Service
Cloud NGFW utilizza Certificate Authority Service per generare autorità di certificazione (CA) intermedie. Cloud NGFW utilizza queste CA intermedie per generare i certificati utilizzati per l'ispezione TLS.
Puoi abilitare l'API CA Service utilizzando la Google Cloud console:
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai
creato il progetto, probabilmente hai già questa autorizzazione tramite il
ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il
ruolo Amministratore di Service Usage (roles/serviceusage.serviceUsageAdmin).
Scopri come concedere i ruoli.
Per abilitare CA Service utilizzando Google Cloud CLI, utilizza il seguente comando:
gcloud services enable privateca.googleapis.com
Abilitare Certificate Manager
Cloud NGFW utilizza Certificate Manager per creare configurazioni dell'attendibilità. Se non vuoi utilizzare le configurazioni dell'attendibilità, salta questo passaggio.
Puoi abilitare l'API Certificate Manager utilizzando la Google Cloud console:
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai
creato il progetto, probabilmente hai già questa autorizzazione tramite il
ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il
ruolo Amministratore di Service Usage (roles/serviceusage.serviceUsageAdmin).
Scopri come concedere i ruoli.
Per abilitare Certificate Manager utilizzando Google Cloud CLI, utilizza il seguente comando:
gcloud services enable certificatemanager.googleapis.com
Creare una configurazione dell'attendibilità
Questo passaggio è facoltativo. Per creare una configurazione dell'attendibilità, segui i passaggi descritti in questa sezione.
-
Il pool di CA che crei in questo passaggio è diverso da quello che crei per configurare la policy di ispezione TLS.
Crea una CA radice utilizzando il pool di CA creato in precedenza.
In alternativa, utilizza una CA radice esterna esistente creando una CA subordinata all'interno del servizio CA. La CA radice esterna deve firmare questa CA subordinata. Affinché Cloud NGFW possa utilizzare la CA, le CA radice e subordinata nel pool di CA devono avere una lunghezza del percorso di almeno uno. Il campo
pathLenConstraintin un certificato CA specifica la lunghezza del percorso. Questo campo definisce il numero massimo di certificati CA subordinati che possono esistere in un percorso di certificazione sotto il certificato CA corrente.Crea un certificato utilizzando una chiave generata automaticamente. Utilizza lo stesso nome del pool di CA creato in precedenza.
Ottieni il certificato pubblico della CA dal certificato creato.
$PEM-CERT=$(gcloud privateca roots describe ROOT_CA_NAME \ --location LOCATION \ --project PROJECT_ID \ --pool CA_POOL \ --format "value(pemCaCertificates)")
Sostituisci quanto segue:
ROOT_CA_NAME: il nome della CA radiceLOCATION: la località della CA radicePROJECT_ID: l'ID progetto della CA radiceCA_POOL: il nome del pool di CA da cui creare i certificati
Crea e importa una configurazione dell'attendibilità utilizzando il
PEM-CERTottenuto nel passaggio precedente. Se utilizzi la tua CA, utilizza il certificato pubblico ottenuto dalla tua CA.
Utilizza questa configurazione dell'attendibilità per creare una policy di ispezione TLS.
Creare un pool di CA
Devi creare un pool di CA prima di poter utilizzare CA Service per creare una CA.
Per creare un pool di CA, segui le istruzioni riportate in Creare pool di CA.
Utilizza questo pool di CA per creare una policy di ispezione TLS.
Creare una CA radice
Se non hai una CA radice esistente, puoi crearne una all'interno di CA Service. Per creare una CA radice, segui le istruzioni riportate in Creare una CA radice, e utilizza lo stesso pool di CA creato in precedenza (vedi la sezione Creare un pool di CA).
Per utilizzare una CA radice esterna esistente, crea una CA subordinata all'interno del servizio CA, firmata dalla CA radice esterna.
Per NGFW Enterprise, i certificati subordinati richiedono una limitazione della lunghezza del percorso di almeno 1 per poter generare una CA intermedia. Per impostazione predefinita, il certificato subordinato e la CSR vengono generati con una limitazione della lunghezza del percorso pari a 0. Questo deve essere modificato. Al momento, questa operazione non può essere eseguita tramite la console, ma solo tramite i comandi Google Cloud CLI forniti da CAS utilizzando alcuni dei seguenti flag
Flag
--extended-key-usages: specifica gli utilizzi delle chiavi estese per il certificato.Flag
--key-usages: specifica gli utilizzi delle chiavi per il certificato.Flag
--max-chain-length: definisce la profondità massima delle CA subordinate consentite in questa CA per un certificato CA.
gcloud
gcloud privateca subordinates create SUBORDINATE_CA_ID \
--pool=SUBORDINATE_POOL_ID \
--location=LOCATION \
--create-csr --csr-output-file=FILE_NAME \
--key-algorithm="ec-p256-sha256" \
--subject="CN=Example Server TLS CA, O=Example LLC
--key-algorithm=rsa-pss-4096-sha256 \
--key-usages=cert_sign,crl_sign \
--extended-key-usages=server_auth \
--max-chain-length=1"
Sostituisci quanto segue:
- SUBORDINATE_CA_ID: l'identificatore univoco della CA subordinata.
- SUBORDINATE_POOL_ID: il nome del pool di CA.
- LOCATION: la località del pool di CA.
- FILE_NAME: il nome del file in cui viene scritta la CSR con codifica PEM.
Viene creata la CSR che restituisce quanto segue
Created Certificate Authority [projects/my-project-pki/locations/us-west1/caPools/SUBORDINATE_POOL_ID/certificateAuthorities/SUBORDINATE_CA_ID] and saved CSR to FILE_NAME.
Per attivare la CA subordinata, devi firmare la CSR dopo averla creata.
Creare un account di servizio
Se non hai un account di servizio, devi crearne uno e concedere le autorizzazioni richieste.
Crea un account di servizio:
gcloud beta services identity create \ --service networksecurity.googleapis.com \ --project PROJECT_IDSostituisci
PROJECT_IDcon l'ID progetto del service account.Google Cloud CLI crea un account di servizio denominato
service-PROJECT_NUMBER@gcp-sa-networksecurity.iam.gserviceaccount.com. Qui,PROJECT_NUMBERè l'identificatore univoco diPROJECT_IDfornito nel comando precedente.Concedi al tuo account di servizio l'autorizzazione per generare certificati che utilizzano il tuo pool di CA:
gcloud privateca pools add-iam-policy-binding CA_POOL \ --member 'serviceAccount:SERVICE_ACCOUNT' \ --role 'roles/privateca.certificateRequester' \ --location REGIONSostituisci quanto segue:
CA_POOL: il nome del pool di CA da cui creare i certificatiSERVICE_ACCOUNT: il nome del account di servizio creato nel passaggio precedenteLOCATION: la regione del pool di CA
Configurare l'ispezione TLS
Prima di procedere con le attività descritte in questa sezione, assicurati di aver configurato i certificati o di aver completato le attività preliminari elencate in la sezione Prima di iniziare.
Per configurare l'ispezione TLS, completa le attività nelle sezioni seguenti.
Creare una policy di ispezione TLS
Console
Nella Google Cloud console, vai alla pagina Policy di ispezione TLS.
Nel menu del selettore dei progetti, seleziona il tuo progetto.
Fai clic su Crea policy di ispezione TLS.
In Nome, inserisci un nome.
(Facoltativo) Nel campo Descrizione, inserisci una descrizione.
Nell'elenco Regione, seleziona la regione in cui vuoi creare la policy di ispezione TLS.
Nell'elenco Pool di CA, seleziona il pool di CA da cui vuoi creare i certificati.
Se non hai configurato un pool di CA, fai clic su Nuovo pool e segui le istruzioni riportate in Creare un pool di CA.
(Facoltativo) Nell'elenco Versione TLS minima, seleziona la versione TLS minima supportata dalla policy.
Per Configurazione dell'attendibilità, seleziona una delle seguenti opzioni:
- Solo CA pubbliche: seleziona questa opzione se vuoi considerare attendibili i server con certificati firmati pubblicamente.
Solo CA private: seleziona questa opzione se vuoi considerare attendibili i server con certificati firmati privatamente.
Nell'elenco Configurazione dell'attendibilità privata, seleziona la configurazione dell'attendibilità con l'archivio di attendibilità configurato da utilizzare per considerare attendibili i certificati server upstream. Per saperne di più su come creare una configurazione dell'attendibilità, vedi Creare una configurazione dell'attendibilità.
CA pubbliche e private: seleziona questa opzione se vuoi utilizzare sia CA pubbliche sia private.
(Facoltativo) Nell'elenco Profilo della suite di crittografia, seleziona il tipo di profilo TLS. Puoi scegliere uno dei seguenti valori:
- Compatibile: consente al set più ampio di client, inclusi i client che supportano solo funzionalità TLS obsolete, di negoziare TLS.
- Moderno: supporta un'ampia gamma di funzionalità TLS, consentendo ai client moderni di negoziare TLS.
- Limitato: supporta un set ridotto di funzionalità TLS progettate per soddisfare requisiti di conformità più rigorosi.
Personalizzato: consente di selezionare singolarmente le funzionalità TLS.
Nell'elenco Suite di crittografia, seleziona il nome delle suite di crittografia supportate dal profilo personalizzato.
Fai clic su Crea.
gcloud
Crea un file YAML
TLS_INSPECTION_FILE.yaml. SostituisciTLS_INSPECTION_FILEcon un nome file a tua scelta.Aggiungi il seguente codice al file YAML per configurare la policy di ispezione TLS.
name: projects/PROJECT_ID/locations/REGION/tlsInspectionPolicies/TLS_INSPECTION_NAME caPool: projects/PROJECT_ID/locations/REGION/caPools/CA_POOL minTlsVersion: TLS_VERSION tlsFeatureProfile: PROFILE_TYPECIPHER_NAME excludePublicCaSet: `TRUE`|`FALSE` trustConfig: projects/PROJECT_ID/locations/REGION/trustConfigs/TRUST_CONFIG_NAMESostituisci quanto segue:
PROJECT_ID: l'ID progetto della policy di ispezione TLSREGION: la regione in cui viene creata la policy di ispezione TLSTLS_INSPECTION_NAME: il nome della policy di ispezione TLS.CA_POOL: il nome del pool di CA da cui creare i certificatiIl pool di CA deve esistere nella stessa regione.
TLS_VERSION: un argomento facoltativo che specifica la versione TLS minima supportata da Cloud NGFWPuoi selezionare uno dei seguenti valori:
TLS_1_0TLS_1_1TLS_1_2
PROFILE_TYPE: un argomento facoltativo che specifica il tipo di profilo TLSPuoi selezionare uno dei seguenti valori:
PROFILE_COMPATIBLE: consente al set più ampio di client, inclusi i client che supportano solo funzionalità TLS obsolete, di negoziare TLS.PROFILE_MODERN: supporta un'ampia gamma di funzionalità TLS, consentendo ai client moderni di negoziare TLS.PROFILE_RESTRICTED: supporta un set ridotto di funzionalità TLS progettate per soddisfare requisiti di conformità più rigorosi.PROFILE_CUSTOM: consente di selezionare singolarmente le funzionalità TLS.
CIPHER_NAME: un argomento facoltativo per specificare il nome della suite di crittografia supportata dal profilo personalizzatoSpecifica questo argomento solo quando il tipo di profilo è impostato su
PROFILE_CUSTOM.excludePublicCaSet: un flag facoltativo per includere o escludere un set di CA pubbliche. Per impostazione predefinita, questo flag è impostato su false. Quando questo flag è impostato su true, le connessioni TLS non considerano attendibili i server CA pubblici. In questo caso, Cloud NGFW può stabilire connessioni TLS solo ai server con certificati firmati da CA nella configurazione dell'attendibilità.TRUST_CONFIG_NAME: un argomento facoltativo per specificare il nome della risorsa di configurazione dell'attendibilità
Importa la policy di ispezione TLS creata nella sezione Creare una policy di ispezione TLS
gcloud network-security tls-inspection-policies import TLS_INSPECTION_NAME \ --source TLS_INSPECTION_FILE.yaml \ --location REGIONSostituisci quanto segue:
TLS_INSPECTION_NAME: il nome della policy di ispezione TLSTLS_INSPECTION_FILE: il nome del file YAML della policy di ispezione TLS
Aggiungere una policy di ispezione TLS a un'associazione di endpoint firewall
Per aggiungere la policy di ispezione TLS a un'associazione di endpoint firewall, segui i passaggi indicati in Creare associazioni di endpoint firewall.
Configurare le regole delle policy del firewall con l'ispezione TLS
Per abilitare l'ispezione TLS per la rete virtual private cloud (VPC), imposta il flag --tls-inspect nella regola della policy del firewall. Questo flag indica
che l'ispezione TLS può essere eseguita quando viene applicato il
gruppo di profili di sicurezza.
Per saperne di più su come abilitare il flag --tls-inspect nelle regole delle policy del firewall gerarchiche, vedi Attività delle regole delle policy del firewall.
Per saperne di più su come abilitare il flag --tls-inspect nelle regole delle policy del firewall di rete globali, vedi Aggiungere una regola della policy del firewall.
Passaggi successivi
- Gestire l'ispezione TLS
- Configurare il servizio di filtro URL
- Configurare il servizio di rilevamento e prevenzione delle intrusioni
- Creare e gestire gli endpoint firewall