Accesso sicuro alle applicazioni SaaS

Questa pagina ti guida nella procedura di protezione delle tue applicazioni SaaS tramite il gateway sicuro di Chrome Enterprise Premium.

Un gateway sicuro 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:

  1. Le impostazioni del browser lato client indirizzano il traffico dell'applicazione tramite un proxy gateway sicuro.
  2. Il gateway sicuro controlla i criteri di accesso sensibile al contesto per autorizzare l'accesso del client (utente e dispositivo).
  3. Se consentito, il gateway inoltra il traffico all'applicazione utilizzando indirizzi IP di origine univoci assegnati a quel gateway e alla regione Google Cloud . Puoi utilizzare questi indirizzi IP di origine dedicati per implementare regole di inclusione nella lista consentita degli IP.

Prima di iniziare

Prima di configurare il gateway sicuro, verifica di disporre di quanto segue:

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 esempio, github. Il nome può contenere al massimo 63 caratteri e può contenere 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 mostrare.
    • 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 al massimo 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.

  1. Crea un file denominato securityGateway.json utilizzando il seguente esempio.

    {
       "display_name": "MY_SECURITY_GATEWAY_DISPLAY_NAME",
       "hubs": { "us-central1": {} }
    }
    

    Nell'esempio, hubs rappresenta le risorse regionali necessarie per attivare la connettività in uscita all'applicazione di destinazione. Puoi avere un hub per una 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
  2. 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 SaaS

Dopo aver creato un gateway sicuro, puoi configurare le tue applicazioni SaaS in modo che utilizzino il gateway sicuro per un accesso sicuro.

  1. Ottieni gli indirizzi IP allocati dal gateway sicuro per ogni hub. Per una regione vengono allocati due indirizzi IP.

    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 con hub. Nell'esempio, gli hub vengono creati nelle regioni us-central1 e us-east1 e tutti gli indirizzi IP restituiti nella risposta devono essere consentiti nell'applicazione SaaS.

    {
     "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",
                 "IP_ADDRESS_3",
                 "IP_ADDRESS_4",
                 "IP_ADDRESS_5"
               ]
             }
           },
           "us-east1": {
             "internetGateway": {
               "assignedIps": [
                 "IP_ADDRESS_1",
                 "IP_ADDRESS_2",
                 "IP_ADDRESS_3",
                 "IP_ADDRESS_4",
                 "IP_ADDRESS_5"
               ]
             }
           }
         }
       }
     ]
    }
    
  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 informazioni riportate di seguito ti guidano nella procedura di configurazione di una risorsa applicativa gateway sicuro.

Crea una risorsa dell'applicazione gateway sicuro in Google Cloud

La risorsa Google Cloud dell'applicazione è una risorsa secondaria della risorsa gateway sicuro. Crea una risorsa applicazione chiamando l'API Create.

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 indirizzare il traffico per la risorsa dell'applicazione tramite il gateway sicuro, configura Chrome applicando un file PAC nelle impostazioni di Chrome nella Console di amministrazione Google.

  1. 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.

  2. 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.

  3. 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 su no-cache. Questa impostazione impedisce ai browser e ai server intermedi di memorizzare una copia del file, in modo che Chrome scarichi sempre la versione più recente.

    Per ulteriori informazioni su Cache-Control e sul suo impatto sulla memorizzazione nella cache del browser, consulta Intestazione Cache-Control.

  4. Copia l'URL pubblico del file caricato.

Aggiornare le impostazioni della modalità proxy

  1. Vai alla Console di amministrazione Google.
  2. Fai clic su Dispositivi -> Chrome -> Impostazioni.
  3. Seleziona un'unità organizzativa o un gruppo, quindi fai clic su Modalità proxy.
  4. 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.
  1. 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 valore etag nel criterio attivo, che puoi ottenere chiamando il metodo getIamPolicy.

  2. 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 e principalSet, nei binding delle policy, consulta Entità IAM.

  3. 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.

  1. Vai alla Console di amministrazione Google.
  2. Fai clic su Browser Chrome -> App ed estensioni.
  3. Fai clic sulla scheda Utenti e browser.
  4. Per aggiungere un'estensione di Chrome, fai clic sul pulsante +.
  5. Cerca ekajlcmdfcigmdbphhifahdfjbkciflj, quindi forza l'installazione per tutti gli utenti dell'unità organizzativa o del gruppo.
  6. 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.

Passaggi successivi