Proteggere le applicazioni non Google Cloud utilizzando il connettore di app

Questa pagina descrive come configurare e utilizzare il connettore di app BeyondCorp Enterprise per proteggere le applicazioni non Google Cloud.

Panoramica

Puoi utilizzare il connettore di app BeyondCorp Enterprise per fornire l'accesso sensibile al contesto e all'identità per le applicazioni HTTPS in esecuzione in ambienti non Google Cloud. Il connettore di app BeyondCorp Enterprise è un'interfaccia sicura e autenticata tra il piano di applicazione BeyondCorp Enterprise e le applicazioni in esecuzione in altri ambienti cloud e on-premise.

Un vantaggio dell'utilizzo del connettore di app BeyondCorp Enterprise è che non è necessario aprire firewall o configurare connessioni Cloud VPN site-to-site.

Architettura

Di seguito è riportato un diagramma di architettura ad alto livello che mostra i componenti principali del connettore di app BeyondCorp Enterprise.

Componenti del connettore di app BeyondCorp Enterprise

I componenti del connettore di app BeyondCorp Enterprise sono regolati utilizzando due risorse, connettori e connessioni API principali:

  • Connettori: una risorsa connettore definisce un agente remoto di connettore di app univoco. Il deployment degli agenti remoti per connettori di app viene eseguito in ambienti aziendali remoti, ad esempio in altri ambienti cloud e on-premise. Gli agenti remoti avviano e gestiscono le sessioni del tunnel verso Google Cloud, ricevono il traffico da Google Cloud e inoltrano il traffico agli endpoint delle applicazioni remote nello stesso ambiente di quello degli agenti.
  • Connessioni: una risorsa di connessione definisce una connessione logica da Google Cloud a uno specifico endpoint dell'applicazione identificato tramite indirizzo IP:Porta o FQDN:Porta. Una risorsa di connessione orchestra un insieme di gateway di connettori di app gestiti allocati per un determinato endpoint dell'applicazione. I gateway vengono gestiti in Google Cloud e terminano le sessioni del tunnel dagli agenti remoti quando non sono più necessari.

Sia il connettore che le risorse di connessione sono a livello di regione e possono essere utilizzati solo in un contesto a livello di regione. Ad esempio, un connettore associato alla regione A non può essere assegnato a una connessione creata per la regione B.

Prima di iniziare

Al momento puoi utilizzare il connettore di app BeyondCorp Enterprise solo con applicazioni HTTPS. Inoltre, i bilanciatori del carico HTTPS non utilizzano l'estensione SNI (Server Name Indication) per le connessioni al backend. Per maggiori dettagli, consulta Crittografia dal bilanciatore del carico ai backend.

Per utilizzare il connettore di app BeyondCorp Enterprise, devi avere quanto segue:

Ogni agente connettore di app BeyondCorp Enterprise richiede una VM Linux che esegue Docker. Consigliamo le seguenti distribuzioni Linux:

  • Debian 10.7 (buster)
  • Red Hat Enterprise Linux Server 7.8 (Maipo) x86_64
  • Ubuntu 16.04 o versioni successive

Per l'hardware delle VM Linux, consigliamo un minimo di 2 CPU con 2 GB di RAM.

Puoi configurare e abilitare il connettore di app utilizzando gcloud e l'API oppure utilizzando la console Google Cloud. Per utilizzare gcloud e API, completa i seguenti passaggi. Per utilizzare la console Google Cloud, vai a Configurare il connettore di app utilizzando Google Cloud Console.

Configurazione del progetto Google Cloud

Per configurare un progetto Google Cloud da utilizzare con il connettore di app BeyondCorp Enterprise, devi abilitare l'API BeyondCorp Enterprise. Abilita l'API completando i seguenti passaggi:

gcloud

Prima di completare i seguenti passaggi, assicurati di aver installato l'SDK dell'interfaccia a riga di comando gcloud.

  1. Imposta la variabile di ambiente richiesta eseguendo questo comando:

    PROJECT_ID=my-project
    

    Sostituisci my-project con l'ID progetto Google Cloud.

  2. Abilita l'API eseguendo il comando seguente:

    gcloud config set project $PROJECT_ID
    gcloud services enable beyondcorp.googleapis.com
    

API

  1. Ottenere un token di accesso e impostare le variabili di ambiente e gli alias richiesti eseguendo i seguenti comandi:

    PROJECT_NUMBER=my-project-number
    ACCESS_TOKEN=my-access-token
    

    Sostituisci my-project con l'ID progetto Google Cloud.

  2. Configura un pratico alias per l'utilizzo del token di accesso:

    alias gcurl="curl -H 'Authorization: Bearer ${ACCESS_TOKEN}' -H 'Content-Type: application/json'"
    

  3. Abilita l'API eseguendo il comando seguente:

    gcurl https://serviceusage.googleapis.com/v1/projects/${PROJECT_NUMBER}/services/beyondcorp.googleapis.com:enable -d "{}"
    

Installazione di un agente remoto del connettore di app

Devi eseguire il deployment di una VM dell'agente remoto del connettore di app per ogni ambiente di rete che ospita un'applicazione che vuoi proteggere con BeyondCorp Enterprise. Devi avere una VM dedicata o qualsiasi server Bare Metal con Docker installato per ogni agente remoto che crei.

Per creare un agente remoto, completa i seguenti passaggi:

  1. Creare un'istanza VM nel tuo ambiente di applicazione.
    1. Assicurati che il firewall della rete VM dell'agente remoto consenta tutto il traffico in uscita avviato sulla porta 443 per l'intervallo IP IAP-TCP 35.235.240.0/20.
  2. Installa l'agente remoto:

    1. Verifica che il tuo DNS sia configurato correttamente e di poter accedere all'applicazione utilizzando curl.
    2. Installa Docker Engine.
    3. Esegui questo comando sulla VM dell'agente remoto:
      curl https://raw.githubusercontent.com/GoogleCloudPlatform/beyondcorp-applink/main/bash-scripts/install-beyondcorp-runtime -o ./install-beyondcorp-runtime && chmod +x ./install-beyondcorp-runtime && ./install-beyondcorp-runtime
      
    4. Per aggiungere l'alias bce-connctl alla tua shell, esegui questo comando:
       source ~/.bce_alias
       
    5. Imposta le variabili di ambiente richieste eseguendo i comandi seguenti:

      PROJECT_ID=my-project
      REGION=us-central1
      CONNECTOR_NAME=my-connector
      
      Sostituisci quanto segue:

      • my-project: l'ID del progetto Google Cloud.
      • us-central1: la regione in cui eseguire il deployment della connessione e dei gateway.
      • my-connector: il nome del connettore.
    6. Registra il connettore eseguendo il comando seguente nell'interfaccia a riga di comando bce-connctl:

      bce-connctl init --project=$PROJECT_ID --region=$REGION --connector=$CONNECTOR_NAME
      

      Segui le istruzioni sullo schermo per copiare e incollare lo script di registrazione e completa la registrazione del connettore. Per eseguire lo script di registrazione, devi disporre delle autorizzazioni OWNER per il progetto.

      Una volta completato lo script di registrazione, il runtime sincronizza automaticamente la configurazione del connettore.

  3. Verifica l'installazione dell'agente remoto:

    1. Esegui questo comando per assicurarti che il servizio sia in esecuzione:
      sudo systemctl status beyondcorp
      
    2. L'agente remoto è composto da tre container Docker: bce-control- runtime, bce-logagent e bce-connector. Verifica che tutti e tre i container siano in esecuzione con il comando seguente:
      docker ps --filter name=bce
      
    3. (Facoltativo) Puoi controllare i file di log dei container Docker eseguendo questo comando:
      docker logs -f CONTAINER_NAME
      
      Sostituisci CONTAINER_NAME con il nome del container Docker.

Connessione di un'applicazione remota a un VPC

gcloud

Prima di completare i seguenti passaggi, assicurati di aver installato l'SDK dell'interfaccia a riga di comando gcloud e di aver eseguito l'accesso con un account con il ruolo beyondcorp.admin.

  1. Imposta le variabili di ambiente richieste eseguendo i comandi seguenti:

    CONNECTOR_NAME=my-connector
    CONNECTION_NAME=my-connection
    PROJECT_ID=my-project
    REGION=us-central1
    APP_ENDPOINT=APP_HOST:APP_PORT
    

    Sostituisci quanto segue:

    • my-connector: il nome del connettore, definito in un passaggio precedente.
    • my-connection: un nome univoco per la connessione.
    • my-project: l'ID del progetto Google Cloud.
    • us-central1: la regione in cui eseguire il deployment della connessione e dei gateway.
    • APP_HOST: l'indirizzo IP on-premise o un nome di dominio completo che ospita l'applicazione.
    • APP_PORT: il numero di porta da connettere alla tua applicazione.
  2. Per creare una connessione tra l'applicazione e il VPC, esegui questo comando:

    gcloud alpha beyondcorp app connections create $CONNECTION_NAME \
    --project=$PROJECT_ID \
    --location=$REGION \
    --application-endpoint=$APP_ENDPOINT \
    --type=tcp \
    --connectors=$CONNECTOR_NAME \
    --display-name=$CONNECTION_NAME
    

    Tieni presente che il completamento di questo passaggio potrebbe richiedere diversi minuti.

  3. Dopo aver creato la connessione, esegui questi comandi per recuperare gli URI del gateway:

    GATEWAY_URI="$(gcloud alpha beyondcorp app connections describe $CONNECTION_NAME --project=$PROJECT_ID --location=$REGION --format='get(gateway.uri)')"
    GATEWAY_URI_L7="${GATEWAY_URI/bce-psc/bce-ps7}"
    

    Il campo GATEWAY_URI_L7 viene utilizzato per creare una regola di forwarding. Il connettore di app BeyondCorp Enterprise utilizza Private Service Connect per collegare il progetto consumer alle risorse gestite nei progetti gestiti da Google.

API

  1. Imposta le variabili di ambiente richieste eseguendo i comandi seguenti:

    CONNECTOR_NAME=my-connector
    CONNECTION_NAME=my-connection
    PROJECT_ID=my-project
    REGION=us-central1
    APP_HOST=my-app-host
    APP_PORT=my-app-port
    

    Sostituisci quanto segue:

    • my-connector: il nome del connettore, definito in un passaggio precedente.
    • my-connection: un nome univoco per la connessione.
    • my-project: l'ID del progetto Google Cloud.
    • us-central1: la regione in cui eseguire il deployment della connessione e dei gateway.
    • my-app-host: l'indirizzo IP on-premise o un nome di dominio completo che ospita l'applicazione.
    • my-app-port: il numero di porta da connettere alla tua applicazione.
  2. Per creare una connessione tra l'applicazione e il VPC, esegui questo comando:

    gcurl https://beyondcorp.googleapis.com/v1/projects/${PROJECT_NUMBER}/locations/${REGION}/appConnections?app_connection_id=${CONNECTION_NAME} \
    -d "{ \
        'application_endpoint': \
        { \
            'host': '${APP_HOST}', \
            'port': '${APP_PORT}' \
        }, \
        'type': 'TCP_PROXY', \
        'display_name': '${CONNECTION_NAME}' \
    }"
    

    Tieni presente che il completamento di questo passaggio potrebbe richiedere diversi minuti.

  3. Dopo aver creato la connessione, esegui questi comandi per recuperare gli URI del gateway:

    GATEWAY_URI=$(gcurl https://beyondcorp.googleapis.com/v1/projects/${PROJECT_NUMBER}/locations/${REGION}/appConnections/${CONNECTION_NAME} | jq -r '.gateway.uri')
    GATEWAY_URI_L7="${GATEWAY_URI/bce-psc/'bce-ps7'}"
    

    Il campo GATEWAY_URI_L7 viene utilizzato per creare una regola di forwarding. Il connettore di app BeyondCorp Enterprise utilizza Private Service Connect per collegare il progetto consumer alle risorse gestite nei progetti gestiti da Google.

Configurazione di un bilanciatore del carico HTTP(S) esterno

Puoi connettere solo applicazioni HTTPS a un bilanciatore del carico HTTP(S) esterno. Le applicazioni HTTP non sono supportate.

gcloud

Prima di completare i seguenti passaggi, assicurati di aver installato l'SDK dell'interfaccia a riga di comando gcloud e di aver eseguito l'accesso con un account con il ruolo beyondcorp.admin.

  1. Imposta le variabili di ambiente richieste eseguendo i comandi seguenti:

    LB_PREFIX=web-app
    PROJECT_ID=my-project
    REGION=us-central1
    DOMAIN_NAME=app.example.com
    
    Sostituisci quanto segue:

    • web-app: il prefisso aggiunto ai nomi di tutte le risorse del bilanciatore del carico.
    • my-project: l'ID del progetto Google Cloud.
    • us-central1: la regione in cui verrà eseguito il deployment della connessione e dei gateway.
    • app.example.com: il nome di dominio della tua applicazione.
  2. Crea un gruppo di endpoint di rete (NEG) utilizzando il seguente comando:

    gcloud beta compute network-endpoint-groups create $LB_PREFIX-neg \
        --region=$REGION \
        --network-endpoint-type=private-service-connect \
        --psc-target-service=$GATEWAY_URI_L7
    

    Contrassegni facoltativi:

    • Imposta il flag --network per specificare il nome della rete per gli endpoint di rete nel NEG. Se non specificata, viene utilizzata la rete del progetto predefinita.
    • Imposta il flag --subnet per specificare il nome della subnet per gli endpoint di rete nel NEG. Se non specificato, l'endpoint di rete può appartenere a qualsiasi subnet nella regione in cui viene creato il gruppo di endpoint di rete.
  3. Crea un servizio di backend basato su NEG e collegalo a un collegamento di servizio Private Service Connect eseguendo i comandi seguenti:

    gcloud beta compute backend-services create $LB_PREFIX-backend-service \
        --global \
        --protocol=HTTPS \
        --load-balancing-scheme=EXTERNAL_MANAGED
    
    gcloud beta compute backend-services add-backend $LB_PREFIX-backend-service \
        --global \
        --network-endpoint-group=$LB_PREFIX-neg \
        --network-endpoint-group-region=$REGION
    
  4. Crea un certificato gestito da Google per il tuo dominio eseguendo questi comandi:

    gcloud compute addresses create $LB_PREFIX-static-ip \
        --ip-version=IPV4 \
        --global
    gcloud compute ssl-certificates create $LB_PREFIX-ssl-cert \
        --domains=$DOMAIN_NAME \
        --global
    
    LB_IP="$(gcloud compute addresses describe $LB_PREFIX-static-ip --global --format='value(address)')"
    
  5. Crea un bilanciatore del carico HTTP(S) esterno in base al backend del passaggio precedente eseguendo i comandi seguenti:

    gcloud compute url-maps create $LB_PREFIX-map-https \
        --default-service=$LB_PREFIX-backend-service
    
    gcloud compute target-https-proxies create $LB_PREFIX-https-lb-proxy \
        --url-map=$LB_PREFIX-map-https \
        --ssl-certificates=$LB_PREFIX-ssl-cert
    
    gcloud beta compute forwarding-rules create "$LB_PREFIX-https-lb-forwarding-rule" \
        --global \
        --target-https-proxy=$LB_PREFIX-https-lb-proxy \
        --address=$LB_IP \
        --ports=443 \
        --load-balancing-scheme=EXTERNAL_MANAGED
    

    Dopo aver creato il bilanciatore del carico HTTP(S) esterno, l'applicazione è accessibile su Internet dall'indirizzo IP.

  6. Dopo aver creato il bilanciatore del carico HTTP(S) esterno, devi associare il suo indirizzo IP al nome di dominio in modo che Google Cloud possa eseguire il provisioning di un certificato SSL. Utilizza le istruzioni del provider DNS per istruzioni su come associare l'indirizzo IP al nome DNS. Esegui questo comando per controllare lo stato del provisioning:

    1. Mostra l'indirizzo IP da configurare nel provider DNS:
      echo "Load Balancer ip address - $LB_IP"
      
    2. Dopo aver impostato il DNS, controlla se il nome del dominio viene risolto o meno nell'indirizzo IP eseguendo il comando seguente:
      dig $DOMAIN_NAME
      
    3. Per ottenere lo stato del provisioning, esegui questo comando:
    gcloud compute ssl-certificates describe $LB_PREFIX-ssl-cert \
        --global \
        --format="get(name,managed.status, managed.domainStatus)"
    

    Dopo aver eseguito il provisioning del certificato SSL, dovresti poter accedere all'applicazione utilizzando il nome DNS.

API

  1. Imposta le variabili di ambiente richieste eseguendo i comandi seguenti:

    LB_PREFIX=web-app
    PROJECT_ID=my-project
    REGION=us-central1
    DOMAIN_NAME=app.example.com
    
    Sostituisci quanto segue:

    • web-app: il prefisso aggiunto ai nomi di tutte le risorse del bilanciatore del carico.
    • my-project: l'ID del progetto Google Cloud.
    • us-central1: la regione in cui verrà eseguito il deployment della connessione e dei gateway.
    • app.example.com: il nome di dominio della tua applicazione.
  2. Crea un gruppo di endpoint di rete (NEG) utilizzando il seguente comando:

    gcurl https://www.googleapis.com/compute/v1/projects/${PROJECT_NUMBER}/regions/${REGION}/networkEndpointGroups \
    -d "{ \
        'name': '${LB_PREFIX}-neg', \
        'network_endpoint_type': 'private-service-connect', \
        'psc_target_service': '${GATEWAY_URI_L7}' \
    }"
    

    Campi facoltativi:

    • Imposta il campo network per specificare l'URL della rete per gli endpoint di rete nel NEG. Se non specificata, viene utilizzata la rete del progetto predefinita.
    • Imposta il campo subnetwork per specificare l'URL della subnet per gli endpoint di rete nel NEG. Se non specificato, l'endpoint di rete può appartenere a qualsiasi subnet della regione in cui viene creato il gruppo di endpoint di rete.
  3. Crea un servizio di backend basato su NEG e collegalo a un collegamento di servizio Private Service Connect eseguendo i comandi seguenti:

    gcurl https://www.googleapis.com/compute/v1/projects/${PROJECT_NUMBER}/global/backendServices \
    -d "{ \
        'name': '${LB_PREFIX}-backend-service', \
        'service_protocol': 'HTTPS', \
        'port_name': 'https', \
        'load_balancing_scheme': 'EXTERNAL_MANAGED' \
    }"
    
    gcurl -X PATCH https://www.googleapis.com/compute/v1/projects/${PROJECT_NUMBER}/global/backendServices/${LB_PREFIX}-backend-service \
    -d "{ \
        'backends': \
        [{ \
            'group': 'https://www.googleapis.com/compute/v1/projects/${PROJECT_NUMBER}/regions/${REGION}/networkEndpointGroups/${LB_PREFIX}-neg' \
        }] \
    }"
    
  4. Crea un certificato gestito da Google per il tuo dominio eseguendo questi comandi:

    gcurl https://www.googleapis.com/compute/v1/projects/${PROJECT_NUMBER}/global/addresses \
    -d "{ \
        'name': '${LB_PREFIX}-static-ip', \
        'ip_version': 'IPV4' \
    }"
    
    gcurl https://www.googleapis.com/compute/v1/projects/${PROJECT_NUMBER}/global/sslCertificates \
    -d "{ \
        'name': '${LB_PREFIX}-ssl-cert', \
        'managed': \
        { \
            'domains': '${DOMAIN_NAME}' \
        }, \
        'type': 'MANAGED' \
    }"
    
    LB_IP=$(gcurl https://www.googleapis.com/compute/v1/projects/${PROJECT_NUMBER}/global/addresses/${LB_PREFIX}-static-ip | jq -r '.address')
    
  5. Crea un bilanciatore del carico HTTP(S) esterno in base al backend del passaggio precedente eseguendo i comandi seguenti:

    gcurl https://www.googleapis.com/compute/v1/projects/${PROJECT_NUMBER}/global/urlMaps \
    -d "{ \
        'name': '${LB_PREFIX}-map-https', \
        'default_service': 'https://www.googleapis.com/compute/v1/projects/${PROJECT_NUMBER}/global/backendServices/${LB_PREFIX}-backend-service' \
    }"
    
    gcurl https://www.googleapis.com/compute/v1/projects/${PROJECT_NUMBER}/global/targetHttpsProxies \
    -d "{ \
        'name': '${LB_PREFIX}-https-lb-proxy', \
        'url_map': 'https://www.googleapis.com/compute/v1/projects/${PROJECT_NUMBER}/global/urlMaps/${LB_PREFIX}-map-https', \
        'ssl_certificate': 'https://www.googleapis.com/compute/v1/projects/${PROJECT_NUMBER}/global/sslCertificates/${LB_PREFIX}-ssl-cert' \
    }"
    
    gcurl https://www.googleapis.com/compute/v1/projects/${PROJECT_NUMBER}/global/forwardingRules \
    -d "{ \
        'name': '${LB_PREFIX}-https-lb-forwarding-rule', \
        target: 'https://www.googleapis.com/compute/v1/projects/${PROJECT_NUMBER}/global/targetHttpsProxies/${LB_PREFIX}-https-lb-proxy', \
        'ip_address': '${LB_IP}', \
        'port_range': '443-443', \
        'load_balancing_scheme': 'EXTERNAL_MANAGED' \
    }"
    

    Dopo aver creato il bilanciatore del carico HTTP(S) esterno, l'applicazione è accessibile su Internet dall'indirizzo IP.

  6. Dopo aver creato il bilanciatore del carico HTTP(S) esterno, devi associare il suo indirizzo IP al nome di dominio in modo che Google Cloud possa eseguire il provisioning di un certificato SSL. Utilizza le istruzioni del provider DNS per istruzioni su come associare l'indirizzo IP al nome DNS. Esegui questo comando per controllare lo stato del provisioning:

    1. Mostra l'indirizzo IP da configurare nel provider DNS:
      echo "Load Balancer ip address - $LB_IP"
      
    2. Dopo aver impostato il DNS, controlla se il nome del dominio viene risolto o meno nell'indirizzo IP eseguendo il comando seguente:
      dig $DOMAIN_NAME
      
    3. Per ottenere lo stato del provisioning, esegui questo comando:
    echo $(gcurl https://www.googleapis.com/compute/v1/projects/${PROJECT_NUMBER}/global/sslCertificates/${LB_PREFIX}-ssl-cert \
    | jq -r '.name + " " + .managed.status + " " + (.managed.domainStatus | keys[]) + "=" + .managed.domainStatus[]')
    

    Dopo aver eseguito il provisioning del certificato SSL, dovresti poter accedere all'applicazione utilizzando il nome DNS.

Abilitazione di Identity-Aware Proxy

Segui la documentazione di Identity-Aware Proxy (IAP) per configurare Identity-Aware Proxy. Dopo aver configurato IAP, abilita IAP per il servizio di backend completando i seguenti passaggi:

  1. Vai alla pagina IAP:
    IAP

  2. In RISORSE HTTPS, trova $LB_PREFIX-backend-service. Per abilitare IAP per questa risorsa, fai clic sul pulsante di attivazione/disattivazione nella colonna IAP. Nella finestra Attiva IAP che viene visualizzata, seleziona la casella di controllo per confermare i requisiti di configurazione di questa risorsa e fai clic su ATTIVA per confermare che vuoi che IAP protegge la risorsa.

  3. Per consentire agli utenti di accedere alla tua applicazione, devi concedere loro il ruolo Utente applicazione web con protezione IAP per il progetto completando i seguenti passaggi:

    1. Seleziona la casella di controllo $LB_PREFIX-backend-service.
    2. Nel riquadro Informazioni, seleziona AGGIUNGI ENTITÀ, quindi inserisci gli indirizzi email dei gruppi o delle persone che dovrebbero avere accesso alla tua applicazione.
    3. Nell'elenco a discesa Seleziona un ruolo, seleziona Cloud IAP > Utente applicazione web con protezione IAP, quindi fai clic su Salva.

Ora la tua applicazione on-premise deve essere pubblicata su Internet e protetta da BeyondCorp Enterprise.

Configurare il connettore di app utilizzando la console Google Cloud

Completa le procedure in questa sezione per eseguire il deployment del connettore di app BeyondCorp Enterprise utilizzando la console Google Cloud.

Inserisci i dettagli della tua richiesta

Completa i seguenti passaggi per aggiungere i dettagli della tua applicazione:

  1. Nella console Google Cloud, vai alla pagina IAP.
    Vai a IAP

  2. Fai clic sul pulsante CONNECT NEW APPLICATION, quindi seleziona Connect via App Connector.

  3. In Nome applicazione, inserisci il nome dell'applicazione da proteggere.

  4. In URL applicazione rivolta all'esterno, inserisci un URL accessibile pubblicamente per consentire agli utenti di accedere all'applicazione.

  5. Tocca Next (Avanti).

Configura la connessione a Google Cloud

Completa i seguenti passaggi per stabilire la connettività tra Google Cloud e il tuo ambiente non Google Cloud.

  1. Fai clic sul pulsante CREA APP CONNECTOR e inserisci le informazioni seguenti:

    • Nome connettore di app: il nome del connettore.
    • Regione: la regione in cui eseguire il deployment di gateway e connettore di connessione.
  2. Fai clic sul pulsante CREA.

  3. Segui le istruzioni nel riquadro Provisioning di una macchina virtuale per eseguire il deployment dell'agente remoto sulla tua VM.

  4. Fai clic sul pulsante TESTA CONNESSIONE STATO per testare la connessione.

  5. Configura il connettore creato nel passaggio precedente inserendo le informazioni seguenti in Dove può trovare l'applicazione Google Cloud?:

    • Nome host interno: l'indirizzo IP on-premise o il nome di dominio completo che ospita l'applicazione.
    • Port (Porta): il numero di porta da connettere alla tua applicazione.

(Facoltativo) Concedi l'accesso alla tua applicazione

  1. In Nuove entità, inserisci una o più delle seguenti informazioni:

    • Email di un account Google: user@gmail.com
    • Gruppo Google: admins@googlegroups.com
    • Account di servizio: server@example.gserviceaccount.com
    • Dominio Google Workspace: example.com
    • chiunque: inserisci allUsers per concedere a tutti gli utenti l'accesso
    • Tutti gli Account Google: allAuthenticatedUsers per concedere l'accesso a qualsiasi utente che abbia eseguito l'accesso a un Account Google.
  2. Seleziona uno o più livelli di accesso, poi fai clic su AVANTI.

Pubblica l'applicazione

  1. Per pubblicare la tua applicazione, fai clic sul pulsante PUBBLICA SOLO L'APPLICAZIONE.

  2. Dopo aver pubblicato l'applicazione e aver ricevuto la conferma Applicazione pubblicata in modo sicuro, devi creare un record DNS per indirizzare l'URL dell'applicazione rivolta all'esterno verso l'indirizzo IP del proxy. Completa i seguenti passaggi:

    • Nella sezione PASSAGGIO 2 - Aggiorna DNS, copia l'indirizzo IP dal campo Indirizzo IP. Per creare un record DNS, segui le istruzioni del provider DNS su come associare l'indirizzo IP al nome DNS.
  3. Dopo aver creato il record DNS, testalo facendo clic sul pulsante TEST. Dovresti ricevere una conferma di verifica DNS superata.

  4. Fai clic su FINE.

Abilita IAP

  1. Vai alla pagina IAP.
    Vai a IAP

  2. Dall'elenco delle risorse, individua l'applicazione, quindi seleziona il pulsante nella colonna IAP.

  3. Nella finestra di dialogo Attiva IAP che viene visualizzata, seleziona la casella di controllo Ho letto i requisiti di configurazione e ho configurato il mio servizio di backend in base alla documentazione e fai clic su ATTIVA.

Ora la tua applicazione on-premise deve essere pubblicata su Internet e protetta da BeyondCorp Enterprise.

Passaggi successivi

Risolvere i problemi

Impossibile trovare risorse create in precedenza

Quando utilizzi gcloud CLI versione 392.0.0 o successive, utilizza le nuove risorse predefinite del connettore di app AppConnector e AppConnection. Ad esempio, gcloud alpha beyondcorp app connectors e gcloud alpha beyondcorp app connections si riferiscono entrambe alle nuove risorse.

Per accedere alle risorse legacy create utilizzando una versione dell'interfaccia a riga di comando gcloud prima della versione 392.0.0, utilizza la parola chiave legacy. Ad esempio, gcloud alpha beyondcorp app legacy connectors e gcloud alpha beyondcorp app legacy connections fanno entrambi riferimento alle risorse legacy.

Le configurazioni che utilizzano risorse legacy continueranno a funzionare, ma verranno ritirate in futuro.

  • Segui le procedure indicate in questa guida per configurare nuove risorse.
  • Se la tua configurazione utilizza risorse legacy, utilizza la parola chiave legacy per individuarle e rimuoverle. Ricrea le risorse seguendo le procedure riportate in questo documento.
  • Se hai una configurazione incompleta che utilizza risorse legacy, utilizza la parola chiave legacy per individuarle e rimuoverle. Ricrea le risorse seguendo le procedure riportate in questo documento.

Errori TLS/SSL

ERR_SSL_VERSION_OR_CIPHER_MISMATCH

Il browser mostra l'errore ERR_SSL_VERSION_OR_CIPHER_MISMATCH o errori TLS/SSL simili e non reindirizza alla pagina di accesso.

  • Verifica lo stato dei certificati nella pagina dei dettagli del bilanciatore del carico Google Cloud.

    NOTA: il provisioning di un certificato gestito da Google può richiedere fino a 60 minuti.

TLS error

Il browser mostra l'errore upstream connect error or disconnect/reset before headers. retried and the latest reset reason: connection failure, transport failure reason: TLS error o errori TLS/SSL simili in seguito al reindirizzamento alla pagina di accesso.

  • Verifica che l'endpoint dell'applicazione utilizzato nella connessione sia HTTPS.
  • Verifica che l'endpoint dell'app sia accessibile dalla VM dell'agente remoto utilizzando curl:

    curl https://$APP_ENDPOINT
    

    Potresti dover utilizzare il flag -k se il certificato dell'applicazione è autofirmato.

Strumenti di diagnostica

controlli-post-installazione

run-post-install-checks è uno script installato in /var/beyondcorp/scripts/ che verifica se il tuo agente remoto è installato correttamente, registrato e integro. Dopo aver creato correttamente l'oggetto app connection e averlo assegnato a un agente remoto (connettore), vai alla VM dell'agente remoto ed esegui run-post-install-checks con questo comando:

sudo /var/beyondcorp/scripts/run-post-install-checks

Lo script stampa un messaggio di operazione riuscita se tutto è in ordine.

run-diagnostics

run-diagnostics è uno script installato in /var/beyondcorp/scripts/ che diagnostica i problemi comuni sulla VM dell'agente remoto e stampa un report che puoi condividere con il team di assistenza BeyondCorp. Per eseguire questo script di diagnostica, esegui il comando seguente:

sudo /var/beyondcorp/scripts/run-diagnostics

Il report di diagnostica viene scritto nella console e in ./diagnostics-report.txt

Interfaccia a riga di comando dell'agente remoto

bce-connctl è l'interfaccia a riga di comando di amministrazione dell'agente remoto (CLI) per l'interazione locale con l'agente remoto. Questo CLI supporta vari comandi, ad esempio per la registrazione dell'agente remoto, il controllo dello stato e l'impostazione dei valori di configurazione.

Comando init

Puoi utilizzare il comando Init per inizializzare l'agente remoto e generare uno script per registrarlo.

Esempio:

bce-connctl init --project=$PROJECT_ID --region=$REGION --connector=$CONNECTOR_NAME

Comandi di stato

Puoi utilizzare i comandi di stato per gestire lo stato dell'agente remoto.

  • List (Elenco): utilizza questo comando per elencare lo stato generale dell'agente remoto e lo stato di eventuali connessioni supportate da questo agente. Esempio: bce-connctl status list

Comandi di configurazione

Puoi utilizzare i comandi Config per gestire i valori di configurazione per il tuo agente remoto.

  • Elenco: utilizza questo comando per elencare i valori di configurazione dell'agente remoto. Esempio: bce-connctl config list
  • Set: utilizza questo comando per impostare un valore di configurazione dell'agente remoto. Esempio: bce-connctl config set <key> <value>

Comandi di registrazione

Puoi utilizzare i comandi di registrazione per gestire la registrazione dell'agente remoto.

  • Describe: utilizza questo comando per conoscere lo stato di registrazione dell'agente remoto. Esempio: bce-connctl enrollment describe

    Quando lo script di registrazione di bce-connctl init viene completato correttamente e la chiave pubblica viene caricata correttamente, lo stato è ENROLLED.

Guida

Puoi aggiungere il flag -h o --help a qualsiasi comando bce-connctl per stampare le informazioni sull'utilizzo.

bce-connctl init -h