Questo documento descrive come configurare un gateway sicuro Chrome Enterprise Premium per proteggere l'accesso alle tue applicazioni web private.
Un gateway sicuro di Chrome Enterprise Premium funge da proxy di inoltro, applicando un framework di accesso Zero Trust e fornendo un controllo granulare e sensibile al contesto su chi accede alle tue applicazioni web private.
Come funziona la protezione dell'accesso alle applicazioni web private
Creando un tunnel sicuro e applicando criteri di accesso sensibili al contesto, il gateway sicuro mantiene private le applicazioni private e le protegge dall'esposizione a internet pubblico. Una configurazione del browser lato client indirizza il traffico per queste applicazioni tramite l'endpoint proxy di Secure Gateway. Il gateway sicuro applica quindi la policy di accesso pertinente e, se consentito, indirizza la richiesta all'applicazione di destinazione.
Il gateway sicuro può proteggere le applicazioni web private ospitate nei seguenti ambienti:
Google Cloud project: Il gateway sicuro può indirizzare l'accesso alle applicazioni in esecuzione nella tua rete VPC Google Cloud .
Non-Google Cloud (data center on-premise o altri cloud): devi prima stabilire una connessione tra la tua rete VPC privata su Google Cloud e la rete non-Google Cloud . Questa operazione viene comunemente eseguita utilizzando Cloud VPN o Cloud Interconnect. Il gateway sicuro utilizza quindi la connessione per inviare il traffico alla tua rete VPC privata, che a sua volta lo indirizza all'ambiente nonGoogle Cloud .
Prima di iniziare
Prima di configurare il gateway sicuro, verifica di disporre di quanto segue:
- Una licenza Chrome Enterprise Premium
- Accesso alla Console di amministrazione Google con un account amministratore
- Un progetto Google Cloud con un account di fatturazione assegnato e le seguenti API abilitate: API BeyondCorp
Il seguente ruolo Identity and Access Management (IAM) concesso all'amministratore che esegue la configurazione: A livello di progetto: Cloud BeyondCorp Admin (
beyondcorp.admin
).Per le applicazioni private in un ambiente nonGoogle Cloud , una connessione Cloud VPN o Cloud Interconnect tra l'ambienteGoogle Cloud e l'ambiente nonGoogle Cloud in cui si trova l'applicazione. Per saperne di più sulla configurazione delle connessioni di rete, consulta le seguenti risorse:
Configura l'ambiente shell
Per semplificare la procedura di configurazione e interagire con le API del gateway sicuro, definisci le seguenti variabili di ambiente nella shell di lavoro.
Parametri generali
API="beyondcorp.googleapis.com" API_VERSION=v1 PROJECT_ID=MY_PROJECT_ID
Sostituisci quanto segue:
- MY_PROJECT_ID: l'ID del progetto in cui viene creato il gateway sicuro.
Parametri del gateway sicuro
SECURITY_GATEWAY_ID=MY_SECURITY_GATEWAY_ID SECURITY_GATEWAY_DISPLAY_NAME="MY_SECURITY_GATEWAY_DISPLAY_NAME"
Sostituisci quanto segue:
- MY_SECURITY_GATEWAY_ID: l'ID del gateway sicuro che vuoi creare. L'ID può contenere un massimo di 63 caratteri e può includere lettere minuscole, numeri e trattini. Il primo carattere deve essere una lettera e l'ultimo può essere una lettera o un numero.
- MY_SECURITY_GATEWAY_DISPLAY_NAME: Il nome leggibile del gateway sicuro. Il nome può contenere fino a 63 caratteri stampabili.
Crea un gateway sicuro
Un gateway sicuro di Chrome Enterprise Premium è un elemento costitutivo fondamentale per stabilire connessioni sicure alle tue applicazioni. Assegna un progetto e una rete dedicati, fornendo isolamento e sicurezza.
Per creare un gateway sicuro, completa i seguenti passaggi.
Crea un file denominato
securityGateway.json
utilizzando il seguente esempio.{ "display_name": "MY_SECURITY_GATEWAY_DISPLAY_NAME", }
Crea una risorsa gateway sicura chiamando l'API
Create
.curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -X POST \ -d @securityGateway.json \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways?security_gateway_id=${SECURITY_GATEWAY_ID}"
Configura un'applicazione web privata
Prima di poter definire risorse applicative specifiche nel gateway sicuro, devi configurare le autorizzazioni e le impostazioni di rete necessarie per abilitare la connettività e il routing corretto.
Concedi le autorizzazioni al service account
Affinché il gateway sicuro invii correttamente il traffico alla tua rete VPC, è necessario concedere determinate autorizzazioni IAM al account di servizio di delega. In questo modo, il gateway sicuro può raggiungere le tue applicazioni private, indipendentemente dal fatto che siano ospitate all'interno di un VPC o in un ambiente nonGoogle Cloud connesso tramite Cloud VPN o Cloud Interconnect. Google Cloud
Identifica l'email del account di servizio delegante. Questa email si trova nel campo
delegatingServiceAccount
della risorsa gateway di sicurezza.{ "name": "projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}", "createTime": "2024-10-28T20:46:50.949740776Z", "updateTime": "2024-10-29T18:41:18.520661431Z", "state": "RUNNING", "delegatingServiceAccount": "security-gateway@my-gateway-service-account.iam.gserviceaccount.com" }
Imposta le variabili di ambiente per il account di servizio e il progetto VPC di destinazione.
DELEGATING_SERVICE_ACCOUNT="security-gateway@my-gateway-service-account.iam.gserviceaccount.com" # Replace with actual value
Concedi il ruolo IAM
roles/beyondcorp.upstreamAccess
all'account di servizio di delega nel tuo progetto VPC privato.gcloud projects add-iam-policy-binding PRIVATE_VPC_PROJECT_ID \ --role=roles/beyondcorp.upstreamAccess \ --member=serviceAccount:${DELEGATING_SERVICE_ACCOUNT}
Sostituisci PRIVATE_VPC_PROJECT_ID con l'ID progetto della rete VPC in cui è distribuita l'app web privata o in cui è configurata Cloud VPN/Interconnect.
Attendi circa due minuti affinché la policy Identity and Access Management venga applicata dopo aver concesso il ruolo.
Configura il routing di rete e le regole firewall
Per consentire al traffico dal gateway sicuro di raggiungere le tue applicazioni web private, configura le regole firewall, il routing di rete e le impostazioni DNS.
Regole firewall per le applicazioni in Google Cloud
Se la tua applicazione web privata è ospitata all'interno della tua rete VPC Google Cloud , ad esempio su una VM Compute Engine, un servizio Google Kubernetes Engine con un IP interno o dietro un bilanciatore del carico TCP/UDP interno, configura le regole firewall VPCGoogle Cloud . Ciò consente il traffico TCP in entrata dagli intervalli IP del gateway sicuro: 34.158.8.0/21
e 136.124.16.0/20
.
Regole firewall per le applicazioni in ambienti nonGoogle Cloud
Se la tua applicazione web privata si trova in un data center on-premise o nella rete di un altro cloud provider ed è connessa al tuo VPC Google Cloudutilizzando Cloud VPN o Cloud Interconnect, configura le regole firewall sul firewall on-premise o sui controlli di sicurezza di rete equivalenti, come gruppi di sicurezza e ACL di rete, nell'altro ambiente cloud. Ciò consente il traffico TCP in entrata dagli intervalli IP del gateway sicuro.
Configurare il routing dagli ambienti nonGoogle Cloud a un gateway sicuro
Per la comunicazione bidirezionale durante la protezione di applicazioni private ospitate in ambienti non-Google Cloud , come on-premise o altri cloud, la tua rete esterna deve creare un percorso di ritorno ai seguenti indirizzi IP del gateway sicuro: 34.158.8.0/21
e 136.124.16.0/20
.
Verifica che la tua rete privata possa raggiungere gli intervalli IP del gateway sicuro tramite Cloud VPN o Cloud Interconnect:
Routing dinamico: se utilizzi il routing dinamico, ad esempio Border Gateway Protocol (BGP) con router Cloud, verifica che router Cloud inGoogle Cloud pubblicizzi esplicitamente gli intervalli IP del gateway sicuro al tuo dispositivo BGP on-premise. Sebbene BGP scambi dinamicamente molte route, gli intervalli IP del gateway sicuro richiedono una pubblicità esplicita.
Routing statico: se utilizzi route statici, devi aggiungere manualmente le route per ciascuno degli intervalli IP del gateway sicuro alle apparecchiature di rete on-premise, come il router o il firewall. Queste route statiche devono specificare che il traffico destinato agli intervalli IP del gateway sicuro deve essere inviato tramite la connessione Cloud VPN o Cloud Interconnect.
Quando utilizzi il routing statico, Cloud VPN deve trovarsi in una delle seguenti regioni supportate:
africa-south1
asia-east1
asia-south1
asia-south2
asia-southeast1
europe-central2
europe-north1
europe-southwest1
europe-west1
europe-west2
europe-west3
europe-west4
europe-west8
europe-west9
northamerica-northeast1
northamerica-northeast2
northamerica-south1
southamerica-east1
southamerica-west1
us-central1
us-east1
us-east4
us-east5
us-west1
Configurazione DNS per la risoluzione del nome host privato del gateway sicuro
Affinché il gateway sicuro risolva i nomi host delle applicazioni private, la tua rete VPCGoogle Cloud deve essere in grado di risolvere i nomi host utilizzando Cloud DNS. La configurazione specifica di Cloud DNS dipende da dove sono ospitati in modo autorevole i tuoi record DNS privati:
Applicazioni all'interno di Google Cloud che utilizzano zone private Cloud DNS: se le tue applicazioni private sono ospitate in Google Cloud e i relativi record DNS sono gestiti all'interno di zone private Cloud DNS associate alla tua rete VPC, verifica che le zone siano configurate e accessibili correttamente. Il gateway sicuro utilizza le funzionalità di risoluzione Cloud DNS esistenti del VPC.
Applicazioni in ambienti nonGoogle Cloud o che utilizzano server DNS esterni: se le tue applicazioni private si trovano in ambienti nonGoogle Cloud(on-premise o altri cloud) o se i loro record DNS sono gestiti da server DNS esterni alle zone private di Cloud DNS del tuo VPC, devi configurare Cloud DNS per inoltrare le query per questi domini privati. In genere, ciò comporta la creazione di zone di inoltro Cloud DNS all'interno del VPC. Queste zone indirizzeranno le query DNS per i domini privati specificati ai server DNS privati autorevoli, ad esempio on-premise o altri cloud.
Per istruzioni dettagliate sulla configurazione DNS, vedi Creare una zona di inoltro.
Crea una risorsa dell'applicazione
Per fornire l'accesso a un'applicazione web privata, devi stabilirlo all'interno del framework del gateway sicuro creando una risorsa applicazione. Questa risorsa definisce in che modo il gateway sicuro identifica il traffico per la tua applicazione (in base al nome host) e dove instradare il traffico.
Imposta le variabili di ambiente richieste eseguendo questo comando:
APPLICATION_ID=MY_APPLICATION_ID APP_DISPLAY_NAME="MY_APP_DISPLAY_NAME"
Sostituisci quanto segue:
- MY_APPLICATION_ID: un ID univoco per la risorsa applicazione.
- MY_APP_DISPLAY_NAME: Il nome leggibile da una persona da visualizzare.
Crea un file JSON denominato
application.json
utilizzando l'esempio seguente.{ "display_name": "MY_APP_DISPLAY_NAME", "endpoint_matchers": [ {"hostname": "MY_HOST_NAME"} ], "upstreams": [{ "network": { "name": "MY_PRIVATE_NETWORK_RESOURCE_NAME" } }] }
Sostituisci MY_HOST_NAME con il nome host principale a cui accedono gli utenti. Ad esempio,
private.local
. Il nome host può avere una lunghezza massima di 253 caratteri e deve rispettare uno dei seguenti formati:- Un indirizzo IPv4 valido
- Un indirizzo IPv6 valido
- Un nome DNS valido
- Un asterisco (*)
- Un asterisco (*) seguito da un nome DNS valido
Sostituisci MY_PRIVATE_NETWORK_RESOURCE_NAME con il nome completo della risorsa della rete VPC in cui è ospitata la tua applicazione o connessa al tuo ambiente non-Google Cloud . Il nome della rete deve essere nel formato
projects/{project}/global/networks/{network}
(Facoltativo) Specifica una regione di uscita.
In alcune configurazioni di rete, potrebbe essere necessario controllare la regioneGoogle Cloud in cui il traffico del gateway sicuro esce verso la tua applicazione privata. Ad esempio, questo vale se utilizzi route statiche su Cloud VPN o Cloud Interconnect. Per queste configurazioni, puoi aggiungere una norma di uscita alla configurazione upstream per la tua applicazione. Questo criterio di uscita indirizza il gateway sicuro a instradare il traffico per l'applicazione dalla regione Google Cloudspecificata alla tua rete privata.
Di seguito è riportato un file JSON di esempio che include un
egress_policy
.{ "display_name": "MY_APP_DISPLAY_NAME", "endpoint_matchers": [ {"hostname": "MY_HOST_NAME"} ], "upstreams": [{ "network": { "name": "MY_PRIVATE_NETWORK_RESOURCE_NAME" }, "egress_policy": { "regions": [ "us-central1" ] } }] }
Sostituisci
us-central1
con la Google Cloud regione (ad esempioeurope-west1
oasia-northeast1
) in linea con la configurazione del routing statico regionale. Se non hai requisiti di routing statico regionali specifici, puoi omettere la policy di uscita dalla configurazione.Crea la risorsa applicazione chiamando l'API
Create
.curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -X POST \ -d @application.json \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}/applications?application_id=${APPLICATION_ID}"
Configurare la modalità proxy di Google Chrome
Per instradare il traffico per la risorsa dell'applicazione tramite Secure Gateway, configura Chrome applicando un file PAC nelle impostazioni di Chrome nella Console di amministrazione Google.
Crea o aggiorna un file PAC.
Se stai creando la tua prima applicazione, crea un file
pac_config.js
utilizzando il seguente file PAC di esempio.Se stai creando una seconda o una successiva applicazione, aggiorna il file
pac_config.js
esistente e aggiungi i domini della nuova applicazione all'array dei siti, come mostrato nel seguente file PAC di esempio.
function FindProxyForURL(url, host) { const PROXY = "HTTPS ingress.cloudproxy.app:443"; const sites = ["MY_HOST_NAME"]; for (const site of sites) { if (shExpMatch(url, 'https://' + site + '/*') || shExpMatch(url, '*.' + site + '/*')) { return PROXY; } } return 'DIRECT'; }
Se utilizzi un file PAC esistente non specifico per un gateway sicuro, unisci i file PAC aggiungendo i domini della tua applicazione all'array dei siti.
Carica il file in modo che sia scaricabile pubblicamente. Ad esempio, puoi caricare il file su Cloud Storage e renderlo scaricabile pubblicamente concedendo a tutti gli utenti il ruolo Utente oggetto Storage nel bucket.
Per verificare che il file caricato sia sempre l'ultima versione, puoi modificare il suo comportamento di memorizzazione nella cache impostando l'intestazione
Cache-Control
suno-cache
. Questa impostazione impedisce ai browser e ai server intermedi di archiviare una copia del file, in modo che Chrome scarichi sempre la versione più recente.Per saperne di più su
Cache-Control
e sul suo impatto sulla memorizzazione nella cache del browser, consulta Intestazione Cache-Control.Copia l'URL pubblico del file caricato.
Aggiornare le impostazioni della modalità proxy
- Vai alla Console di amministrazione Google.
- Fai clic su Dispositivi -> Chrome -> Impostazioni.
- Seleziona un'unità organizzativa o un gruppo, quindi fai clic su Modalità proxy.
- Nella pagina Modalità proxy, seleziona Utilizza sempre la configurazione automatica proxy specificata di seguito e inserisci l'URL del file PAC da Cloud Storage.
Configura un criterio di accesso
Puoi applicare un criterio di accesso a livello di gateway sicuro o di applicazione:
- Risorsa gateway sicuro:applica un criterio a livello di gateway sicuro per controllare l'accesso a tutte le applicazioni associate.
- Singola applicazione:per un controllo più granulare, puoi applicare una norma di accesso a una singola applicazione.
Crea un file in formato JSON denominato
setIamPolicy.json
e aggiungi quanto segue.{ "policy": { object (POLICY) } }
Sostituisci POLICY con un criterio di autorizzazione IAM. Il valore
etag
nel criterio deve corrispondere al valoreetag
nel criterio attivo, che puoi ottenere chiamando il metodogetIamPolicy
.Per consentire a un gruppo specifico di utilizzare il gateway sicuro, assegna al gruppo il ruolo
roles/beyondcorp.securityGatewayUser
.{ "policy": { "version": 3, "bindings": [ { "role": "roles/beyondcorp.securityGatewayUser", "members": [ "group:
" ] } ], "etag": "AA1jlb" } } Per altri identificatori, come
serviceAccount
,user
,group
,principal
eprincipalSet
, nei binding delle policy, consulta Entità IAM.Applica il criterio di accesso al gateway sicuro specificato nel file JSON chiamando l'API
setIamPolicy
.curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -X POST \ -d @setIamPolicy.json \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}:setIamPolicy"
Per applicare la policy di accesso a un'applicazione, utilizza il comando seguente:
curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -X POST \ -d @setIamPolicy.json \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}/applications/${APPLICATION_ID}:setIamPolicy"
Puoi anche impostare policy di accesso con livelli di accesso come condizione, come mostrato nell'esempio seguente.
{ "policy": { "version": 3, "bindings": [ { "role": "roles/beyondcorp.securityGatewayUser", "members": [ "group:" ], "condition": { "expression": "'accessPolicies/1234567890/accessLevels/in_us' in request.auth.access_levels", "title": "Source IP must be in US" } } ], "etag": "A1jlb" } }'
Installa l'estensione Chrome Enterprise Premium
L'estensione Chrome Enterprise Premium è parte integrante di un gateway sicuro e aiuta con l'autenticazione. Installa l'estensione per tutti gli utenti del gateway sicuro. Per informazioni sul deployment dell'estensione, vedi Visualizzare e configurare app ed estensioni.
- Vai alla Console di amministrazione Google.
- Fai clic su Browser Chrome -> App ed estensioni.
- Fai clic sulla scheda Utenti e browser.
- Per aggiungere un'estensione di Chrome, fai clic sul pulsante +.
- Cerca
ekajlcmdfcigmdbphhifahdfjbkciflj
, quindi forza l'installazione per tutti gli utenti dell'unità organizzativa o del gruppo. Fai clic sull'estensione installata, quindi vai al campo Criteri per le estensioni e fornisci il seguente valore JSON:
{ "securityGateway": { "Value": { "authentication": {}, "context": { "resource": "projects/MY_PROJECT_ID/locations/global/securityGateways/MY_SECURITY_GATEWAY_ID" } } } }
Esperienza utente finale
Al termine della configurazione, agli utenti finali che accedono all'applicazione SaaS protetta viene concesso o negato l'accesso in base al criterio di accesso applicato all'applicazione.
Accedere all'applicazione in Chrome
L'estensione Chrome Enterprise Premium è necessaria per indirizzare il traffico attraverso il gateway sicuro. L'estensione gestisce l'autenticazione tra l'utente e il gateway sicuro. L'estensione viene installata automaticamente tramite il criterio del dominio.
Quando gli utenti accedono all'applicazione SaaS che hai configurato, il loro traffico passa attraverso il gateway sicuro, che verifica se soddisfano i criteri di accesso. Se gli utenti superano i controlli dei criteri di accesso, viene concesso loro l'accesso all'applicazione.
Quando l'accesso del browser all'applicazione viene rifiutato dal criterio di autorizzazione,
gli utenti ricevono un messaggio Access denied
.