Questa pagina ti guida nella procedura di protezione delle tue applicazioni SaaS tramite il gateway sicuro di Chrome Enterprise Premium.
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 SaaS.
Come funziona la protezione dell'accesso alle applicazioni SaaS
Di seguito è riportata una panoramica generale di come un gateway sicuro protegge le tue applicazioni SaaS:
- Le impostazioni del browser lato client instradano il traffico dell'applicazione tramite un proxy gateway sicuro.
- Il gateway sicuro controlla le norme di accesso sensibile al contesto per autorizzare l'accesso del client (utente e dispositivo).
- Se consentito, il gateway inoltra il traffico all'applicazione utilizzando indirizzi IP di origine univoci assegnati a quel gateway e alla regione Google Cloud . Per controllare l'accesso, puoi aggiungere questi indirizzi IP di origine dedicati a una lista consentita nella tua applicazione SaaS.
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: amministratore di Cloud BeyondCorp (
beyondcorp.admin
).Un'applicazione SaaS che vuoi proteggere. L'applicazione deve supportare
IP allowlisting
per applicare i controlli di sicurezza tramite il gateway sicuro.
Limitazioni
Un gateway sicuro Chrome Enterprise Premium presenta la seguente limitazione: un gateway sicuro non supporta le applicazioni SaaS che consentono solo la connettività IPv6.
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
APPLICATION_ID=MY_APPLICATION_ID
APPLICATION_DISPLAY_NAME="MY_APPLICATION_DISPLAY_NAME
" HOST_NAME=MY_HOST_NAME
Sostituisci quanto segue:
MY_PROJECT_ID
: l'ID del progetto in cui viene creato il gateway sicuro.MY_APPLICATION_ID
: l'ID della tua applicazione, ad esempiogithub
. Il nome può contenere fino a 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_APPLICATION_DISPLAY_NAME
: Il nome leggibile da una persona da visualizzare.MY_HOST_NAME
: il nome host della tua applicazione. Ad esempio,github.com
. Il nome host può contenere fino a 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
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. L'ID può contenere fino a 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 e può contenere solo 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 una risorsa gateway sicuro, utilizza uno dei seguenti metodi.
gcloud
Esegui questo comando. Per il flag --hubs
, specifica
una o più regioni dall'elenco seguente.
gcloud beta beyondcorp security-gateways create ${SECURITY_GATEWAY_ID} \
--project=${PROJECT_ID} \
--location=global \
--display-name="MY_SECURITY_GATEWAY_DISPLAY_NAME
" \
--hubs=us-central1
REST
Chiama il metodo dell'API Create con i dettagli del gateway nel corpo della richiesta. Per l'oggetto hubs
, specifica una o più regioni dall'elenco
seguente.
curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-X POST \
-d '{ "display_name": "MY_SECURITY_GATEWAY_DISPLAY_NAME
", "hubs": { "us-central1": {} } }' \
"https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways?security_gateway_id=${SECURITY_GATEWAY_ID}"
hubs
rappresenta le risorse regionali necessarie per abilitare la connettività di uscita all'applicazione di destinazione. Puoi avere un hub per ogni regione
e ogni hub fornisce due indirizzi IP. Puoi specificare le seguenti regioni:
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
Configura un'applicazione SaaS
Dopo aver creato un gateway sicuro, puoi configurare le tue applicazioni SaaS per utilizzare il gateway sicuro per l'accesso sicuro.
Ottieni gli indirizzi IP allocati dal gateway sicuro per ogni hub. Per una regione vengono allocati due indirizzi IP.
gcloud
gcloud beta beyondcorp security-gateways describe ${SECURITY_GATEWAY_ID} \ --project=${PROJECT_ID} \ --location=global
REST
curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}"
Di seguito è riportato un esempio di risposta
GET
di un gateway sicuro conhubs
. Nell'esempio,hubs
vengono creati nelle regionius-central1
eus-east1
e tutti gli indirizzi IP restituiti nella risposta devono essere consentiti nell'applicazione SaaS.gcloud
createTime: 'CREATE_TIME' displayName: My security gateway hubs: us-central1: internetGateway: assignedIps: - IP_ADDRESS_1 - IP_ADDRESS_2 us-east1: internetGateway: assignedIps: - IP_ADDRESS_1 - IP_ADDRESS_2 name: projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID} state: RUNNING updateTime: 'UPDATE_TIME'
REST
{ "securityGateways": [ { "name": "projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}", "createTime": "CREATE_TIME", "updateTime": "UPDATE_TIME", "displayName": "My security gateway", "state": "RUNNING", "hubs": { "us-central1": { "internetGateway": { "assignedIps": [ "IP_ADDRESS_1", "IP_ADDRESS_2", ] } }, "us-east1": { "internetGateway": { "assignedIps": [ "IP_ADDRESS_1", "IP_ADDRESS_2", ] } } } } ] }
Aggiungi gli indirizzi IP alla lista consentita IP della tua applicazione SaaS. Ad esempio, per un'applicazione GitHub, puoi seguire questa guida: Gestione degli indirizzi IP consentiti per la tua organizzazione.
Crea una risorsa dell'applicazione
Le seguenti informazioni ti guidano nella procedura di configurazione di una risorsa applicativa di Secure Gateway.
Crea una risorsa applicazione gateway sicuro in Google Cloud
La risorsa Google Cloud dell'applicazione è una risorsa secondaria della risorsa
del gateway sicuro. Crea una risorsa applicazione chiamando l'API
Create
.
gcloud
gcloud beta beyondcorp security-gateways applications create ${APPLICATION_ID} \ --project=${PROJECT_ID} \ --security-gateway=${SECURITY_GATEWAY_ID} \ --location=global \ --display-name="${APPLICATION_DISPLAY_NAME}" \ --endpoint-matchers="hostname=${HOST_NAME}"
REST
curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -X POST \ -d "{ \"display_name\": \"${APPLICATION_DISPLAY_NAME}\", \"endpoint_matchers\": [{hostname: \"${HOST_NAME}\"}] }" \ "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 una policy di accesso per controllare l'accesso a livello di gateway sicuro, il che influisce su tutte le applicazioni associate, o a livello di singola applicazione per un controllo più granulare.
Aggiornare in sicurezza una policy di accesso
Il comando setIamPolicy
sostituisce l'intera policy esistente con quella che
fornisci. Per evitare di rimuovere accidentalmente le autorizzazioni esistenti, ti consigliamo di
seguire un pattern "read-modify-write". In questo modo, aggiungi solo
al criterio esistente, senza sovrascriverlo.
Lettura: innanzitutto, recupera il criterio di accesso corrente.
Modifica: modifica il file di criteri localmente per aggiungere o modificare le autorizzazioni.
Scrittura: applica il file delle norme aggiornato.
Ottieni la norma corrente
Recupera le norme attuali prima di apportare modifiche.
Il campo etag
nelle norme funge da identificatore di versione. Impedisce
aggiornamenti in conflitto se più amministratori apportano modifiche contemporaneamente.
Il seguente comando recupera la policy e la salva in un file denominato
policy.json
.
Recupera il criterio per un gateway sicuro:
curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}:getIamPolicy" > policy.json
Recupera il criterio per una singola applicazione:
curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}/applications/${APPLICATION_ID}:getIamPolicy" > policy.json
Dopo aver eseguito il comando, viene creato un file policy.json
che contiene il criterio attuale.
Modificare il file di criteri
Apri il file policy.json
in un editor di testo. Per concedere a un gruppo l'accesso per utilizzare il
gateway sicuro, aggiungi il gruppo all'elenco members
per il
ruolo roles/beyondcorp.securityGatewayUser
.
Il tuo policy.json
dovrebbe essere simile al seguente esempio:
{
"policy": {
"version": 3,
"bindings": [
{
"role": "roles/beyondcorp.securityGatewayUser",
"members": [
"group:existing-group@example.com"
]
}
],
"etag": "BwXN8_d-bOM="
}
}
Per aggiungere un nuovo gruppo, aggiungi una nuova voce all'array members
. Includi una virgola
dopo la voce precedente.
L'esempio seguente aggiunge new-group@example.com
:
{
"policy": {
"version": 3,
"bindings": [
{
"role": "roles/beyondcorp.securityGatewayUser",
"members": [
"group:existing-group@example.com",
"group:new-group@example.com"
]
}
],
"etag": "BwXN8_d-bOM="
}
}
Puoi anche aggiungere altri tipi di membri, come serviceAccount
, user
, group
,
principal
e principalSet
, nei binding dei criteri. Per saperne di più, consulta la sezione
Entità IAM.
Applica le norme aggiornate
Dopo aver modificato e salvato il file policy.json
, applicalo alla risorsa utilizzando il comando setIamPolicy
. Questo comando utilizza etag
dal file per
assicurarti di aggiornare la versione corretta.
Applica il criterio a un gateway sicuro:
jq '{policy: .}' policy.json | curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @- \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}:setIamPolicy"
Applica il criterio a una singola applicazione:
jq '{policy: .}' policy.json | curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @- \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}/applications/${APPLICATION_ID}:setIamPolicy"
Aggiungere una policy di accesso condizionale
Puoi anche impostare criteri di accesso con condizioni. Le condizioni specificano i requisiti, ad esempio l'indirizzo IP di un utente proveniente da una posizione specifica.
L'esempio seguente mostra un criterio che concede l'accesso solo se l'indirizzo IP di origine si trova all'interno di un livello di accesso specificato:
{
"policy": {
"version": 3,
"bindings": [
{
"role": "roles/beyondcorp.securityGatewayUser",
"members": [
"group:group@example.com"
],
"condition": {
"expression": "request.auth.access_levels.contains('accessPolicies/1234567890/accessLevels/in_us')",
"title": "Source IP must be in US"
}
}
],
"etag": "BwXN8_d-bOM="
}
}
Per applicare queste norme, segui i passaggi descritti in precedenza.
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 forzane 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
.