Accesso sicuro alle applicazioni web private

Questo documento descrive come configurare un gateway sicuro di Chrome Enterprise Premium per proteggere l'accesso alle tue applicazioni web private.

Un gateway sicuro di Chrome Enterprise Premium funziona come un 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

Stabilendo un tunnel sicuro e applicando policy di accesso sensibile 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 attraverso l'endpoint proxy del gateway sicuro. Il gateway sicuro applica quindi la policy di accesso pertinente e, se consentito, instrada la richiesta all'applicazione di destinazione.

Il gateway sicuro può aiutare a proteggere le applicazioni web private ospitate nei seguenti ambienti:

  • ProgettoGoogle Cloud : il gateway sicuro può indirizzare l'accesso alle applicazioni in esecuzione nella tua rete VPC Google Cloud .

  • NonGoogle Cloud (data center on-premise o altri cloud): devi prima stabilire una connessione tra la tua rete VPC privata suGoogle Cloud e la rete nonGoogle Cloud . In genere, questa operazione viene 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 instrada all'ambiente nonGoogle Cloud .

Ruoli obbligatori

Chiedi all'amministratore di concederti i seguenti ruoli:

Scopri di più sui ruoli di Identity and Access Management (IAM).

Policy di Chrome Enterprise obbligatorie

L'autenticazione del proxy del gateway sicuro richiede lo schema di autenticazione HTTP Basic. Se configuri le policy di autenticazione di Chrome Enterprise per la tua organizzazione, verifica le seguenti impostazioni delle policy:

  • AuthSchemes deve includere l'autenticazione basic (attivata per impostazione predefinita se la policy non è configurata). Altri valori di questa policy non influiscono sull'autenticazione del proxy del gateway sicuro.

  • BasicAuthOverHttpEnabled deve essere impostato su 0 (false o disattivato) per impedire alle connessioni HTTP non sicure di utilizzare lo schema di autenticazione Basic.

Prima di iniziare

Prima di configurare il gateway sicuro, verifica di avere:

Configura l'ambiente shell

Per semplificare il processo di configurazione e interagire con le API del gateway sicuro, definisci le seguenti variabili di ambiente nella shell di lavoro.

  • Parametri generali
    PROJECT_ID=PROJECT_ID
          

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto in cui viene creato il gateway sicuro.
  • Parametri del gateway sicuro
    SECURITY_GATEWAY_ID=SECURITY_GATEWAY_ID
    SECURITY_GATEWAY_DISPLAY_NAME="SECURITY_GATEWAY_DISPLAY_NAME"
          

    Sostituisci quanto segue:

    • SECURITY_GATEWAY_ID: l'ID del gateway sicuro che vuoi creare. 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.
    • SECURITY_GATEWAY_DISPLAY_NAME: il nome leggibile del gateway sicuro. Il nome può contenere fino a 63 caratteri e includere caratteri stampabili.

Crea un gateway sicuro

Un gateway sicuro di Chrome Enterprise Premium è un elemento fondamentale per stabilire connessioni sicure alle tue applicazioni.

console

Per creare un gateway sicuro:

  1. Nella console Google Cloud , vai alla pagina gateway sicuro.
    Vai al gateway sicuro
  2. Seleziona il progetto per cui vuoi creare il gateway sicuro.
  3. Per creare un gateway sicuro, fai clic su Crea nuovo gateway e attendi il completamento del processo di creazione del gateway. Puoi monitorare l'avanzamento nella sezione Notifiche della console Google Cloud .

gcloud

Per creare un gateway sicuro utilizzando gcloud, esegui il seguente comando:

gcloud beyondcorp security-gateways create SECURITY_GATEWAY_ID \
    --project=PROJECT_ID \
    --location=global \
    --display-name="SECURITY_GATEWAY_DISPLAY_NAME" \
    --service-discovery={}
      

REST

Per creare un gateway sicuro utilizzando l'API REST, esegui questo comando:

curl \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -X POST \
    -d '{ "display_name": "SECURITY_GATEWAY_DISPLAY_NAME", "service_discovery": {} }' \
    "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways?security_gateway_id=SECURITY_GATEWAY_ID"
      

Configura un'applicazione web privata

Prima di poter definire risorse dell'applicazione specifiche nel gateway sicuro, devi configurare le autorizzazioni e le impostazioni della rete necessarie per abilitare la connettività e il routing corretto.

Concedi le autorizzazioni al service account

Per inviare correttamente il traffico alla tua rete VPC, il gateway sicuro deve disporre di determinate autorizzazioni IAM concesse al service account delegante. In questo modo, il gateway sicuro può raggiungere le tue applicazioni private, indipendentemente dal fatto che siano ospitate all'interno di un VPC Google Cloud o in un ambiente nonGoogle Cloud connesso tramite Cloud VPN o Cloud Interconnect.

Per concedere le autorizzazioni al account di servizio:

  1. Recupera i dettagli del gateway sicuro per identificare l'indirizzo email del service account delegante. L'indirizzo email si trova nel campo delegatingServiceAccount della risposta.

    gcloud

    gcloud 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://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID"
                   
  2. Imposta le variabili di ambiente per il account di servizio e il progetto VPC di destinazione. Per ottenere l'indirizzo email del account di servizio, puoi utilizzare il seguente comando:
    DELEGATING_SERVICE_ACCOUNT=`gcloud beyondcorp security-gateways describe SECURITY_GATEWAY_ID --project=PROJECT_ID --location=global --format="value(delegatingServiceAccount)"`
          
  3. Concedi il ruolo IAM roles/beyondcorp.upstreamAccess al account di servizio delegante 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 è stato eseguito il deployment dell'app web privata o in cui è configurato Cloud VPN/Interconnect.

Dopo aver concesso il ruolo, attendi circa due minuti affinché la policy di Identity and Access Management diventi effettiva.

Configura il routing di rete e le regole firewall

Per consentire al traffico proveniente 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 di 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 . In questo modo, viene consentito il traffico TCP in entrata dall'intervallo IP del gateway sicuro: 136.124.16.0/20.

gcloud

Per creare una regola firewall utilizzando gcloud, esegui questo comando:

gcloud compute firewall-rules create FIREWALL_RULE_NAME \
   --project=PRIVATE_VPC_PROJECT_ID \
   --network=NETWORK_NAME \
   --allow=tcp \
   --source-ranges=136.124.16.0/20
      

Sostituisci quanto segue:

  • FIREWALL_RULE_NAME: un nome per la regola firewall.
  • PRIVATE_VPC_PROJECT_ID: l'ID del progetto in cui è ospitata la tua rete VPC.
  • NETWORK_NAME: il nome della rete VPC in cui è ospitata l'applicazione.

Regole firewall per le applicazioni in ambienti nonGoogle Cloud

Se la tua applicazione web privata si trova in un data center on-premise o sulla rete di un altro cloud provider ed è connessa al tuo VPC Google Cloudutilizzando Cloud VPN o Cloud Interconnect, configura le regole firewall sul tuo firewall on-premise o i controlli di sicurezza di rete equivalenti, come i gruppi di sicurezza e gli ACL di rete, nell'altro ambiente cloud. In questo modo, il traffico TCP in entrata è consentito dall'intervallo IP del gateway sicuro: 136.124.16.0/20.

Configura il routing da ambienti nonGoogle Cloud a un gateway sicuro

Per facilitare la comunicazione bidirezionale per le applicazioni private ospitate in ambienti nonGoogle Cloud , ad esempio on-premise o altri cloud, la tua rete esterna deve creare un percorso di ritorno al seguente intervallo IP del gateway sicuro: 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 il protocollo BGP (Border Gateway Protocol) con router Cloud, imposta la modalità di routing dinamico della rete VPC su Globale in modo che le route apprese tramite BGP vengano annunciate a tutte le regioni all'interno della rete VPC. Poiché un gateway sicuro è un servizio globale, il routing dinamico globale garantisce che il traffico proveniente da qualsiasi regione possa raggiungere la tua applicazione privata.

    Verifica inoltre che il router Cloud in Google Cloud annunci 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 un annuncio esplicito.

    gcloud

    Per verificare se l'intervallo di origine è annunciato, esegui questo comando:

    gcloud compute routers list-bgp-routes ROUTER_NAME \
    --peer=PEER_NAME \
    --region=REGION \
    --project=PROJECT_ID \
    --route-direction=OUTBOUND \
    --address-family=IPV4 \
    --destination-range=136.124.16.0/20
          

    Sostituisci quanto segue:

    • ROUTER_NAME: il nome del tuo router Cloud
    • PEER_NAME: il nome del peer BGP
    • REGION: la regione in cui si trova il router
    • PROJECT_ID: l'ID del progetto contenente il router
  • Routing statico: se utilizzi route statiche, devi aggiungere manualmente le route per ciascuno degli intervalli IP del gateway sicuro sulle 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.

    Se configuri Cloud VPN con route statiche anziché con il routing dinamico (BGP), queste route sono disponibili solo nella regione specifica in cui viene stabilito il tunnel VPN. Poiché un gateway sicuro è un servizio globale, il traffico in entrata proveniente da una regione diversa non riesce a raggiungere la tua applicazione privata perché le route statiche non vengono annunciate a livello globale tra le regioni. Per evitare errori di routing tra regioni quando utilizzi route statiche, esegui una delle seguenti operazioni:

    • Passa al routing dinamico (BGP): imposta la modalità di routing dinamico della rete VPC su Globale in modo che le route apprese tramite BGP siano disponibili in tutte le regioni della rete VPC.

    • Configura una policy in uscita: quando crei la risorsa dell'applicazione, configura una policy in uscita sulla rete upstream per forzare il traffico dal gateway sicuro a uscire nella regione specifica in cui è stabilita 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-east2
    • asia-northeast1
    • asia-northeast2
    • asia-northeast3
    • asia-south1
    • asia-south2
    • asia-southeast1
    • asia-southeast2
    • asia-southeast3
    • australia-southeast2
    • europe-central2
    • europe-north1
    • europe-north2
    • europe-southwest1
    • europe-west1
    • europe-west10
    • europe-west12
    • europe-west2
    • europe-west3
    • europe-west4
    • europe-west6
    • europe-west8
    • europe-west9
    • me-central1
    • me-central2
    • me-west1
    • northamerica-northeast1
    • northamerica-northeast2
    • northamerica-south1
    • southamerica-east1
    • southamerica-west1
    • us-central1
    • us-central2
    • us-east1
    • us-east4
    • us-east5
    • us-east7
    • us-south1
    • us-west1
    • us-west2
    • us-west3
    • us-west4
    • us-west8

Configurazione DNS per la risoluzione dei nomi host privati del gateway sicuro

Affinché il gateway sicuro possa risolvere i nomi host delle tue 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 autoritativo 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 correttamente e accessibili. Il gateway sicuro utilizza le funzionalità di risoluzione DNS di 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 Cloud DNS del tuo VPC, devi configurare Cloud DNS per inoltrare le query per questi domini privati. In genere, questo comporta la creazione di zone di forwarding Cloud DNS all'interno del VPC. Queste zone indirizzeranno le query DNS per i domini privati specificati ai tuoi server DNS privati autoritativi, ad esempio on-premise o altri cloud.

Per istruzioni dettagliate sulla configurazione del DNS, consulta Crea una zona di forwarding.

Crea una risorsa dell'applicazione

Per fornire l'accesso a un'applicazione web privata, devi stabilire l'applicazione all'interno del framework del gateway sicuro creando una risorsa dell'applicazione. Questa risorsa definisce il modo in cui il gateway sicuro identifica il traffico per la tua applicazione (in base al nome host) e dove indirizzarlo.

  1. Imposta le variabili di ambiente richieste eseguendo questo comando:
       APPLICATION_ID=APPLICATION_ID
       APP_DISPLAY_NAME="APP_DISPLAY_NAME"
       HOST_NAME=HOST_NAME
       PRIVATE_NETWORK_RESOURCE_NAME=PRIVATE_NETWORK_RESOURCE_NAME
       
    Sostituisci quanto segue:
    • APPLICATION_ID: un ID univoco per la risorsa dell'applicazione.
    • APP_DISPLAY_NAME: il nome leggibile da visualizzare.
    • HOST_NAME: il nome host principale a cui accedono gli utenti (ad esempio, private.local).
    • PRIVATE_NETWORK_RESOURCE_NAME: il nome completo della risorsa della rete VPC (ad esempio, projects/my-project/global/networks/my-network).
  2. Crea la risorsa dell'applicazione.

    console

    Per creare la risorsa dell'applicazione utilizzando la console Google Cloud , segui questi passaggi:

    1. Nella console Google Cloud , vai alla pagina Gateway sicuro.
      Vai al gateway sicuro
    2. Per aggiungere un'applicazione, fai clic su Add application (Aggiungi applicazione).
    3. Seleziona il tipo di applicazione: Applicazione privata.
    4. Inserisci i dettagli dell'applicazione:
      • Nome applicazione: inserisci un nome, ad esempio GitHub.
      • Matcher di dominio: inserisci un elenco separato da virgole di pattern di dominio da instradare tramite il gateway sicuro. Includi la porta nel formato domain:port. I caratteri jolly (*) sono consentiti. Ad esempio: github.com:443.
    5. Configura la rete VPC:
      • Nel progetto attuale: se la rete VPC si trova nel progetto attuale, scegli la rete VPC dal menu a discesa.
      • In un altro progetto: se la tua rete VPC si trova in un progetto Google Cloud diverso, specifica il nome completo della risorsa della rete VPC, ad esempioprojects/my-project/global/networks/my-network.
    6. (Facoltativo) Definisci la policy in uscita: seleziona una o più regioni Google Cloud dal menu a discesa. Se utilizzi route statiche regionali, seleziona la regione in cui è stabilita la connessione Cloud VPN o Cloud Interconnect.
    7. (Facoltativo) Definisci una policy di accesso: seleziona una policy di accesso di Gestore contesto accesso. Puoi saltare questo passaggio per questa guida.
    8. Per creare la risorsa dell'applicazione, fai clic su Crea.

    gcloud

    Per creare la risorsa dell'applicazione utilizzando gcloud, esegui questo comando:

    gcloud beyondcorp security-gateways applications create APPLICATION_ID \
        --project=PROJECT_ID \
        --security-gateway=SECURITY_GATEWAY_ID \
        --location=global \
        --display-name="APP_DISPLAY_NAME" \
        --endpoint-matchers="hostname=HOST_NAME,ports=[443]" \
        --upstreams=network=name="PRIVATE_NETWORK_RESOURCE_NAME"
            

    Per specificare una regione in uscita (ad esempio, quando utilizzi route statiche), includi egressPolicy nel flag --upstreams:

    gcloud beyondcorp security-gateways applications create APPLICATION_ID \
        --project=PROJECT_ID \
        --security-gateway=SECURITY_GATEWAY_ID \
        --location=global \
        --display-name="APP_DISPLAY_NAME" \
        --endpoint-matchers="hostname=HOST_NAME,ports=[443]" \
        --upstreams=network=name="PRIVATE_NETWORK_RESOURCE_NAME",egressPolicy=regions=us-central1
            

    Sostituisci us-central1 con la regione Google Cloud (ad esempio europe-west1 o asia-northeast1) che corrisponde alla configurazione del routing statico regionale. Se non hai requisiti specifici di routing statico regionale, puoi omettere la policy in uscita dalla configurazione.

    REST

    Per creare una risorsa dell'applicazione con l'API, completa i seguenti passaggi:

    1. Crea un file denominato application.json.

      {
      "display_name": "APP_DISPLAY_NAME",
      "endpoint_matchers": [
         {"hostname": "HOST_NAME", "ports": [443]}
      ],
      "upstreams": [{
         "network": {
            "name": "PRIVATE_NETWORK_RESOURCE_NAME"
         }
      }]
      }
               

      Per specificare una regione in uscita (ad esempio, quando utilizzi route statiche), aggiungi un egress_policy alla configurazione upstream:

      {
      "display_name": "APP_DISPLAY_NAME",
      "endpoint_matchers": [
         {"hostname": "HOST_NAME", "ports": [443]}
      ],
      "upstreams": [{
         "network": {
            "name": "PRIVATE_NETWORK_RESOURCE_NAME"
         },
         "egress_policy": {
            "regions": [
            "us-central1"
            ]
         }
      }]
      }
                

      Sostituisci us-central1 con la regione Google Cloud (ad esempio europe-west1 o asia-northeast1) che corrisponde alla configurazione del routing statico regionale. Se non hai requisiti specifici di routing statico regionale, puoi omettere la policy in uscita dalla configurazione.

    2. Chiama il metodo API Create.

      curl \
          -H "Authorization: Bearer $(gcloud auth print-access-token)" \
          -H "Content-Type: application/json" \
          -X POST \
          -d @application.json \
          "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID/applications?application_id=APPLICATION_ID"
                

Configura una policy di accesso

Puoi applicare una policy di accesso per controllare l'accesso a livello di applicazione. Se non è configurata alcuna policy di accesso, l'accesso all'applicazione viene negato per impostazione predefinita.

console

Crea una policy per più applicazioni

Per configurare una policy di accesso:

  1. Per creare una policy che si applica a più applicazioni collegate al gateway sicuro, vai alla pagina Policy.
    Vai a Policy
  2. Per aggiungere policy di accesso alle applicazioni, fai clic su Crea policy.
  3. Nell'elenco a discesa, seleziona le applicazioni a cui vuoi applicare le policy.
  4. Aggiungi entità alla policy:

    Le entità possono essere utenti, gruppi, domini o service account. A queste entità viene concesso o negato l'accesso in base ai livelli di accesso assegnati.

    1. Per aggiungere un'entità, fai clic su Aggiungi entità.
    2. Nel campo Entità, inserisci l'indirizzo email dell'utente, del gruppo, del account di servizio o del nome di dominio.
    3. Nel menu a discesa Livelli di accesso, seleziona uno o più livelli di Accesso sensibile al contesto predefiniti. L'accesso viene concesso solo se l'entità soddisfa le condizioni dei livelli di accesso selezionati.

    Per aggiungere altre entità, fai di nuovo clic su Aggiungi entità e ripeti i passaggi secondari.

    Puoi creare e gestire i livelli di accesso in Gestore contesto accesso.

  5. Per applicare la policy all'applicazione, fai clic su Crea policy.

Modifica una policy di accesso a livello di applicazione

  1. Per modificare una policy per una singola applicazione, vai alla pagina Applicazioni.
    Vai ad Applicazioni
  2. Per trovare l'applicazione che vuoi modificare:
    1. Nell'elenco Applicazioni, cerca l'applicazione che vuoi modificare.
    2. Per visualizzare i dettagli dell'applicazione, fai clic sul menu Altre azioni () e seleziona Visualizza dettagli.
  3. Per modificare l'applicazione, fai clic su Modifica.
  4. Aggiungi entità alla policy:

    Le entità possono essere utenti, gruppi, domini o service account. A queste entità viene concesso o negato l'accesso in base ai livelli di accesso assegnati.

    1. Per aggiungere un'entità, fai clic su Aggiungi entità.
    2. Nel campo Entità, inserisci l'indirizzo email dell'utente, del gruppo, del account di servizio o del nome di dominio.
    3. Nell'elenco a discesa Livelli di accesso, seleziona uno o più livelli di accesso sensibile al contesto predefiniti. L'accesso viene concesso solo se l'entità soddisfa le condizioni dei livelli di accesso selezionati.

    Per aggiungere altre entità, fai di nuovo clic su Aggiungi entità e ripeti i passaggi secondari.

    Puoi creare e gestire i livelli di accesso in Gestore contesto accesso.

  5. Per applicare la policy all'applicazione, fai clic su Salva.

gcloud

Aggiungi un'associazione a livello di gateway per Service Discovery

Prima di concedere a un utente l'accesso a un'applicazione, assicurati che disponga delle autorizzazioni di Service Discovery a livello di gateway sicuro.

gcloud beyondcorp security-gateways add-iam-policy-binding SECURITY_GATEWAY_ID \
    --project=PROJECT_ID \
    --location=global \
    --role="roles/beyondcorp.serviceDiscoveryUser" \
    --member=MEMBER
  

Sostituisci quanto segue:

  • SECURITY_GATEWAY_ID: l'ID del gateway sicuro
  • PROJECT_ID: l'ID del progetto in cui è configurato il gateway sicuro
  • MEMBER: l'utente, il gruppo o account di servizio a cui vuoi assegnare il ruolo Service Discovery. Per saperne di più, consulta Entità IAM

Aggiungi un'associazione a livello di applicazione

gcloud beyondcorp security-gateways applications add-iam-policy-binding APPLICATION_ID \
    --security-gateway=SECURITY_GATEWAY_ID \
    --project=PROJECT_ID \
    --location=global \
    --role="roles/beyondcorp.sgApplicationUser" \
    --member=MEMBER
  

Sostituisci quanto segue:

  • APPLICATION_ID: l'ID della risorsa dell'applicazione
  • SECURITY_GATEWAY_ID: l'ID del gateway sicuro
  • PROJECT_ID: l'ID del progetto in cui è configurato il gateway sicuro
  • MEMBER: l'utente, il gruppo o account di servizio a cui vuoi assegnare il ruolo Service Discovery. Per saperne di più, consulta Entità IAM

Aggiungi un'associazione condizionale

Puoi anche aggiungere un'associazione con condizioni. Le condizioni specificano i requisiti, ad esempio l'indirizzo IP di un utente proveniente da una località specifica. Il livello di accesso può essere definito in una policy di accesso a livello di organizzazione o in una policy di accesso con ambito.

Il seguente comando di esempio concede l'accesso solo se l'indirizzo IP di origine rientra in un livello di accesso specificato:

gcloud beyondcorp security-gateways applications add-iam-policy-binding APPLICATION_ID \
    --security-gateway=SECURITY_GATEWAY_ID \
    --project=PROJECT_ID \
    --location=global \
    --role="roles/beyondcorp.sgApplicationUser" \
    --member=MEMBER \
    --condition="expression='accessPolicies/1234567890/accessLevels/in_us' in request.auth.access_levels,title=Source IP must be in US"
  

Rimuovi un'associazione a livello di gateway di Service Discovery

Revoca le autorizzazioni di Service Discovery di un utente a livello di gateway sicuro.

gcloud beyondcorp security-gateways remove-iam-policy-binding SECURITY_GATEWAY_ID \
    --project=PROJECT_ID \
    --location=global \
    --role="roles/beyondcorp.serviceDiscoveryUser" \
    --member=MEMBER
  

Sostituisci quanto segue:

  • SECURITY_GATEWAY_ID: l'ID del gateway sicuro
  • PROJECT_ID: l'ID del progetto in cui è configurato il gateway sicuro
  • MEMBER: l'utente, il gruppo o account di servizio da cui vuoi rimuovere il ruolo Service Discovery. Per saperne di più, consulta Entità IAM

Rimuovi un'associazione a livello di applicazione

gcloud beyondcorp security-gateways applications remove-iam-policy-binding APPLICATION_ID \
    --security-gateway=SECURITY_GATEWAY_ID \
    --project=PROJECT_ID \
    --location=global \
    --role="roles/beyondcorp.sgApplicationUser" \
    --member=MEMBER
  

Sostituisci quanto segue:

  • APPLICATION_ID: l'ID della risorsa dell'applicazione
  • SECURITY_GATEWAY_ID: l'ID del gateway sicuro
  • PROJECT_ID: l'ID del progetto in cui è configurato il gateway sicuro
  • MEMBER: l'utente, il gruppo o account di servizio da cui vuoi rimuovere il ruolo Service Discovery. Per saperne di più, consulta Entità IAM

Rimuovi un'associazione condizionale

Puoi anche rimuovere un'associazione con condizioni. Le condizioni specificano i requisiti, ad esempio l'indirizzo IP di un utente proveniente da una località specifica. Il livello di accesso può essere definito in una policy di accesso a livello di organizzazione o in una policy di accesso con ambito.

Il seguente comando di esempio rimuove un'associazione condizionale con un livello di accesso specificato:

gcloud beyondcorp security-gateways applications remove-iam-policy-binding APPLICATION_ID \
    --security-gateway=SECURITY_GATEWAY_ID \
    --project=PROJECT_ID \
    --location=global \
    --role="roles/beyondcorp.sgApplicationUser" \
    --member=MEMBER \
    --condition="expression='accessPolicies/1234567890/accessLevels/in_us' in request.auth.access_levels,title=Source IP must be in US"
  

REST

Aggiorna 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 utilizzare il seguente pattern "read-modify-write". Questo pattern aiuta a evitare la rimozione accidentale delle autorizzazioni esistenti.

  1. Read: salva la policy di accesso corrente in un file.
  2. Modifica: modifica il file della policy localmente per aggiungere o modificare le autorizzazioni.
  3. Scrittura: applica il file della policy aggiornato.

Imposta una policy a livello di gateway per il Service Discovery

Per concedere le autorizzazioni di Service Discovery, devi impostare una policy di accesso sul gateway sicuro anziché su una singola applicazione. Questo segue lo stesso pattern "read-modify-write".

Recupera la policy attuale e salvala in un file denominato gateway_policy.json.

curl \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID:getIamPolicy" > gateway_policy.json
  

Successivamente, apri il file gateway_policy.json in un editor di testo e aggiungi le entità richieste all'elenco members per il ruolo roles/beyondcorp.serviceDiscoveryUser, in modo simile alle modifiche a livello di applicazione.

Il file gateway_policy.json è simile al seguente esempio:

{
  "version": 3,
  "bindings": [
    {
      "role": "roles/beyondcorp.serviceDiscoveryUser",
      "members": [
        "group:existing-group@example.com"
      ]
    }
  ],
  "etag": "BwXN8_d-bOM="
}
  

Puoi anche aggiungere altri tipi di membri, come serviceAccount, user, group, principal e principalSet, nelle associazioni delle policy. Per saperne di più, consulta Entità IAM.

Applica la policy aggiornata:

jq '{policy: .}' gateway_policy.json | curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d @- \
    "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID:setIamPolicy"
  

Imposta una policy di accesso a livello di applicazione

Ottieni la policy attuale

Recupera la policy attuale. Il campo etag 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.

curl \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID/applications/APPLICATION_ID:getIamPolicy" > policy.json
  

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui è configurato il gateway sicuro
  • SECURITY_GATEWAY_ID: l'ID del gateway sicuro
  • APPLICATION_ID: l'ID della risorsa dell'applicazione

Il comando crea un file policy.json che contiene la policy attuale.

Modifica il file della policy

Per concedere a un gruppo l'accesso per utilizzare il gateway sicuro:

  1. Apri il file policy.json in un editor di testo.
  2. Aggiungi il gruppo all'elenco members per il ruolo roles/beyondcorp.securityGatewayUser.

Il file policy.json è simile al seguente esempio:

{
  "version": 3,
  "bindings": [
    {
      "role": "roles/beyondcorp.sgApplicationUser",
      "members": [
        "group:existing-group@example.com"
      ]
    }
  ],
  "etag": "BwXN8_d-bOM="
}
      

Per aggiungere un altro gruppo, aggiungi una nuova voce all'array members. Includi una virgola dopo la voce precedente. L'esempio seguente aggiunge new-group@example.com:

{
  "version": 3,
  "bindings": [
    {
      "role": "roles/beyondcorp.sgApplicationUser",
      "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, nelle associazioni delle policy. Per saperne di più, consulta Entità IAM.

Applica la policy aggiornata

Dopo aver modificato e salvato il file policy.json, applicalo alla risorsa utilizzando il comando setIamPolicy. Questo comando utilizza il valore etag del file per assicurarsi che venga aggiornata la versione corretta.

jq '{policy: .}' policy.json | curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d @- \
    "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID/applications/APPLICATION_ID:setIamPolicy"
  

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui è configurato il gateway sicuro
  • SECURITY_GATEWAY_ID: l'ID del gateway sicuro
  • APPLICATION_ID: l'ID della risorsa dell'applicazione

Aggiungi una policy di accesso condizionale

Puoi anche impostare policy di accesso con condizioni. Le condizioni specificano i requisiti, ad esempio l'indirizzo IP di un utente proveniente da una località specifica. Il livello di accesso può essere definito in una policy di accesso a livello di organizzazione o in una policy di accesso con ambito.

La seguente policy di esempio concede l'accesso solo se l'indirizzo IP di origine rientra in un livello di accesso specificato:

{
  "version": 3,
  "bindings": [
    {
      "role": "roles/beyondcorp.sgApplicationUser",
      "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 questa policy, segui i passaggi descritti in precedenza.

Migliora la sicurezza con l'accesso sensibile al contesto

Per migliorare ulteriormente la sicurezza e garantire che solo le istanze di Google Chrome gestite possano accedere alle tue applicazioni web tramite il gateway sicuro, ti consigliamo di aggiungere una regola di accesso sensibile al contesto (CAA). Questa regola verifica che il profilo Chrome dell'utente sia gestito, impedendo potenziali usi impropri da parte di browser non gestiti o dannosi.

Nota: questa funzionalità richiede l'installazione e la configurazione dell'estensione Endpoint Verification.

Puoi implementare questa funzionalità aggiungendo una condizione ai livelli di accesso personalizzati di Gestore contesto accesso. Ecco un esempio di condizione che puoi adattare:

  device.chrome.management_state == ChromeManagementState.CHROME_MANAGEMENT_STATE_PROFILE_MANAGED
  

Per saperne di più su come configurare, controllare e gestire questo stato, consulta Attributi del browser Chrome.

Installa l'estensione Chrome Enterprise Premium

L'estensione Chrome Enterprise Premium è parte integrante di un gateway sicuro e contribuisce all'autenticazione. Installa l'estensione per tutti gli utenti del gateway sicuro. Per informazioni sul deployment dell'estensione, vedi Visualizza e configura app ed estensioni. Per installare l'estensione Chrome Enterprise Premium, segui questi passaggi:

  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 l'estensione di Chrome, fai clic sul pulsante + e poi seleziona Aggiungi app di Chrome o estensione in base all'ID.
  5. Cerca l'estensione Secure Enterprise Browser utilizzando il seguente ID, quindi imposta la relativa policy di installazione su Forza l'installazione per tutti gli utenti dell'unità organizzativa o del gruppo:

    ekajlcmdfcigmdbphhifahdfjbkciflj
  6. Fai clic sull'estensione installata e, nel campo Criterio per le estensioni, inserisci il seguente valore JSON:

    {
      "securityGateway": {
        "Value": {
          "authentication": {},
          "context": { "resource": "projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID" },
          "serviceDiscovery": { "routes": {} }
        }
      }
    }

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto in cui è configurato il gateway sicuro
    • SECURITY_GATEWAY_ID: l'ID del gateway sicuro

  7. Per salvare la configurazione, fai clic su Salva.

Configurazione del file PAC legacy

Se abilitato, il Service Discovery consente al client del browser Chrome di rilevare e instradare automaticamente il traffico alle applicazioni configurate tramite il gateway sicuro, eliminando la necessità di configurazioni di routing manuali utilizzando un file PAC.

Se il Service Discovery non è abilitato sul tuo gateway sicuro, hai una configurazione precedente. Dovrai configurare un file PAC per controllare il routing sul client del browser Chrome.

Per verificare se hai la configurazione precedente, utilizza i seguenti comandi per controllare se il Service Discovery è abilitato:

gcloud

gcloud beyondcorp security-gateways describe SECURITY_GATEWAY_ID \
    --project=PROJECT_ID \
    --location=global | grep -i "serviceDiscovery"
      

REST

curl --silent \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID" | grep -i "serviceDiscovery"
      

Se il comando non restituisce alcun output, il gateway utilizza la configurazione precedente. Per i gateway che utilizzano la configurazione precedente, il routing viene gestito utilizzando un file PAC ospitato.

Passaggio 1: crea e ospita il file PAC

  1. Crea un file denominato pac_config.js con il seguente codice JavaScript, sostituendo HOST_NAME con il dominio della tua applicazione (ad esempio, myapp.example.com):

    function FindProxyForURL(url, host) {
      const PROXY = "HTTPS via.prod.securegateway.goog:443";
      const sites = ["HOST_NAME"];
    
      for (const site of sites) {
        if (shExpMatch(url, 'https://' + site + '/*') || shExpMatch(url, '*.' + site + '/*')) {
          return PROXY;
        }
      }
      return 'DIRECT';
    }
  2. Carica il file PAC su un servizio di hosting, ad esempio un bucket Cloud Storage.

    • Assicurati che il file sia scaricabile pubblicamente.
    • Imposta l'intestazione HTTP Cache-Control su no-cache in modo che i browser recuperino sempre le regole di instradamento più recenti.
  3. Copia l'URL pubblico del file PAC caricato.

Passaggio 2: applica il file PAC nella Console di amministrazione Google

  1. Vai alla Console di amministrazione Google.
  2. Vai a Dispositivi > Chrome > Impostazioni.
  3. Seleziona l'unità organizzativa o il gruppo, quindi fai clic su Modalità proxy.
  4. In Modalità proxy, seleziona Utilizza sempre la configurazione automatica proxy specificata di seguito.
  5. Inserisci l'URL pubblico del file PAC ospitato nel campo fornito.
  6. Fai clic su Salva.

Passaggio 3: configura l'estensione Chrome Enterprise Premium

L'estensione è necessaria per gestire l'autenticazione. Questa policy di estensione differisce dalla configurazione standard perché esclude il blocco serviceDiscovery.

  1. Nella Console di amministrazione Google, vai a Browser Chrome > App ed estensioni.
  2. Vai alla scheda Utenti e browser e assicurati che l'estensione Secure Enterprise Browser (ekajlcmdfcigmdbphhifahdfjbkciflj) sia aggiunta e applicata.
  3. Fai clic sull'estensione e, nel campo Criterio per le estensioni, inserisci il seguente valore JSON:

    {
      "securityGateway": {
        "Value": {
          "authentication": {},
          "context": {
            "resource": "projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID"
          }
        }
      }
    }
  4. Fai clic su Salva.

Passaggio alla configurazione del Service Discovery

Per eseguire la transizione del gateway sicuro legacy da una configurazione di file PAC alla nuova configurazione di Service Discovery, devi attivare manualmente la funzionalità e aggiornare le configurazioni.

  1. Attiva il Service Discovery sul gateway sicuro: aggiorna il gateway esistente per attivare il Service Discovery.

    gcloud

    gcloud beyondcorp security-gateways update SECURITY_GATEWAY_ID \
    --project=PROJECT_ID \
    --location=global \
    --service-discovery={}
          

    REST

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d '{ "service_discovery": {} }' \
    "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID?updateMask=service_discovery"
          
  2. Imposta la policy di accesso a livello di gateway: concedi agli utenti il ruolo roles/beyondcorp.serviceDiscoveryUser a livello di gateway in modo che possano utilizzare il Service Discovery. Segui le istruzioni riportate nella sezione Aggiungi un'associazione a livello di gateway di Service Discovery.

  3. Aggiorna la configurazione dell'estensione Chrome Enterprise Premium: segui le istruzioni riportate nella sezione Installa l'estensione Chrome Enterprise Premium per aggiornare la policy dell'estensione. La nuova configurazione JSON deve includere il blocco "serviceDiscovery": { "routes": {} }.

  4. Rimuovi il file PAC legacy: una volta attivato il Service Discovery, il file PAC legacy non è più necessario.

    1. Nella Console di amministrazione Google, vai a Dispositivi > Chrome > Impostazioni > Impostazioni utente e browser > Rete.
    2. Individua l'impostazione Modalità proxy.
    3. Rimuovi l'URL di configurazione automatica proxy (PAC) o cambia l'impostazione da Utilizza sempre la configurazione automatica proxy specificata di seguito a una modalità appropriata per la tua rete, ad esempio Consenti all'utente di eseguire la configurazione.
    4. Fai clic su Salva.

Esperienza utente finale

Al termine della configurazione, agli utenti finali che accedono all'applicazione SaaS protetta viene concesso o negato l'accesso in base alla policy di accesso applicata all'applicazione.

Accesso 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 la policy del dominio.

Quando gli utenti accedono all'applicazione SaaS che hai configurato, il loro traffico passa attraverso il gateway sicuro, che verifica se soddisfano la policy di accesso. Se gli utenti superano i controlli delle policy di accesso, viene concesso loro l'accesso all'applicazione.

Quando l'accesso all'applicazione tramite browser viene rifiutato dalla policy di autorizzazione, gli utenti ricevono un messaggio Access denied.

Passaggi successivi