Connettività di rete nei servizi gestiti di Google Cloud

Questa pagina descrive come configurare la connettività privata da Integration Connectors al servizio di backend ad esempio Cloud SQL per MySQL, CloudSQL per PostgreSQL e CloudSQL per SQL Server. Questa pagina presuppone che tu abbia familiarità con i seguenti concetti:

Considerazioni

Quando crei un collegamento a un servizio PSC, considera i seguenti punti chiave:

  • Il collegamento al servizio PSC e il bilanciatore del carico vengono creati in subnet diverse all'interno dello stesso VPC. In particolare, il collegamento al servizio viene sempre creato in una subnet NAT.
  • I server proxy SOCKS5 devono essere associati all'indirizzo IP 0.0.0.0:<port> perché questo è obbligatorio per il traffico in entrata dal bilanciatore del carico e dai probe del controllo di integrità. Per ulteriori informazioni, vedi Controllo di integrità.
  • Il traffico dal bilanciatore del carico e dal probe del controllo di integrità deve essere inviato alla stessa porta.
  • Configura le regole del firewall per facilitare il flusso di traffico.

    Regole in entrata

    • Il traffico proveniente dalla subnet del collegamento del servizio PSC deve raggiungere il servizio di backend.
    • All'interno della subnet del bilanciatore del carico interno, ILB deve essere in grado di inviare traffico ai server proxy SOCKS5.
    • Il probe del controllo di integrità deve essere in grado di accedere ai server proxy SOCKS5. La I probe del controllo di integrità di Google Cloud hanno un intervallo IP fisso (35.191.0.0/16, 130.211.0.0/22). Quindi questi IP possono essere autorizzati a inviare traffico ai server proxy SOCKS.

    Regole in uscita

    Il traffico in uscita è abilitato per impostazione predefinita in un progetto Google Cloud, a meno che non e regole di negazione.

  • Tutti i componenti di Google Cloud, come il collegamento al servizio PSC e il bilanciatore del carico, devono trovarsi nella stessa regione.
  • Assicurati che i server proxy SOCKS5 accettino il traffico nei seguenti scenari:
    • Bilanciatori del carico pass-through (ILB TCP/UDP L4): le richieste provenienti dagli IP NAT del collegamento di servizio PSC devono essere in grado di raggiungere i server proxy SOCKS5. Pertanto, devi consentire l'intero intervallo IP della sottorete NAT per l'attacco del servizio. Per ulteriori informazioni, consulta Subnet Private Service Connect.
    • Bilanciatori del carico basati su proxy/HTTP(s) (L4 proxy ILB, L7 ILB): tutte le nuove richieste dal bilanciatore del carico. Pertanto, i server proxy SOCKS5 devono accettare le richieste provenienti una subnet proxy della rete VPC. Per ulteriori informazioni, consulta Subnet solo proxy per i bilanciatori del carico basati su Envoy.

Configura la connettività privata

Alcuni dei servizi gestiti Google Cloud, come CloudSQL MySQL di esporre un collegamento a un servizio PSC per la connettività privata. In questi casi, puoi saltare questo passaggio per creare un collegamento del servizio PSC e il collegamento del servizio PSC fornito dal servizio gestito fornito può essere utilizzato per creare il collegamento dell'endpoint di Integration Connectors.

Devi creare un nuovo allegato del servizio PSC nei seguenti scenari:

  • Il servizio gestito Google Cloud non espone il collegamento a un servizio, ma espone un indirizzo IP utilizzando l'accesso privato ai servizi.
  • Il servizio gestito Google Cloud espone un collegamento a un servizio, non supporta l'inserimento nella lista consentita del progetto Integration Connectors da utilizzare il collegamento al servizio.

I passaggi per creare l'attacco del servizio per questi due scenari sono descritti in dettaglio nelle sezioni seguenti. Dopo aver creato il collegamento al servizio, devi creare un collegamento endpoint e configurare una connessione per utilizzarlo.

Creare un allegato di servizio per un servizio gestito che limita l'accesso

Il servizio gestito potrebbe non consentire l'inserimento del progetto Integration Connectors nella lista consentita per l'utilizzo dell'allegato del servizio che espone. In questo caso, devi creare un bilanciatore del carico che utilizzi il collegamento al servizio ed espone quest'ultimo a Integration Connectors creando un altro collegamento al servizio nel progetto.

L'immagine seguente mostra un servizio gestito che espone il collegamento di un servizio:

Crea un bilanciatore del carico con NEG PSC come backend

  1. Crea un NEG per connetterti a un servizio pubblicato.
  2. Aggiungi un backend a un bilanciatore del carico di rete proxy interno regionale.

Per saperne di più, consulta Creare un NEG Private Service Connect.

Creare un allegato del servizio

  1. Crea una subnet per PSC NAT.
  2. Crea una regola firewall per consentire la richiesta da PSC NAT al bilanciatore del carico
  3. Crea il collegamento al servizio.

Per saperne di più, consulta Creare un collegamento a un servizio PSC

Consenti la connessione Private Service Connect dal progetto Integration Connectors

Per informazioni su come inserire nella lista consentita la connessione Private Service Connect dal progetto Integration Connectors, consulta Inserire nella lista consentita Integration Connectors.

Crea un collegamento a un servizio per un servizio gestito che espone l'indirizzo IP

Se il servizio gestito non espone il collegamento a un servizio, il traffico proveniente I connettori di integrazione devono essere inviati tramite proxy tramite il progetto.

L'immagine seguente mostra un servizio gestito che non espone un allegato del servizio:

Per configurare la connettività privata, segui questi passaggi:

  1. Crea il collegamento di un servizio PSC.
    1. Crea istanze VM di Compute Engine per l'esecuzione di server proxy SOCKS5.
      1. Crea l'istanza proxy 1.
        gcloud compute instances create PROXY_INSTANCE_1 \
                    --project=PROJECT_ID \
                    --network-interface=network-tier=PREMIUM,subnet=SUBNET_NAME_2,no-address
                  

      In base alle tue esigenze, puoi creare tutte le istanze VM necessarie.

    2. Crea una regola firewall per consentire l'accesso tramite SSH alle tue istanze VM.
      gcloud compute firewall-rules create FIREWALL_RULE_NAME_SSH \
                  --direction=INGRESS --priority=1000 --network=VPC_NETWORK --allow=tcp:22
                  
    3. L'istanza VM verrà utilizzata per eseguire il proxy del traffico da Integration Connectors al servizio gestito. Installa un proxy SOCKS5 nell'istanza VM. Il proxy di autenticazione Cloud SQL supporta concatenamento attraverso un proxy SOCKS5, che ti consente inoltrare il traffico criptato dal proxy di autenticazione Cloud SQL all'istanza Cloud SQL di destinazione. Di conseguenza, sono necessari server proxy SOCKS5 per connettersi a un'istanza Cloud SQL privata.

      La procedura dettagliata per installare e configurare un server proxy SOCKS5 non rientra nell'ambito di questo documento ed è possibile installare qualsiasi proxy SOCKS5 di propria scelta. La i passaggi seguenti mostrano come installare e configurare Dante il server proxy SOCKS5.

      1. Accedi con SSH all'istanza VM.
        gcloud compute ssh \
                    --tunnel-through-iap \
                    PROXY_INSTANCE_1
                
      2. Installa il server proxy Dante SOCKS5.
        sudo apt update
                sudo apt install dante-server
      3. Controlla l'interfaccia del server.
        sudo ip a
      4. Crea il backup della configurazione Dante.
        sudo mv /etc/danted.conf /etc/danted.conf.bak
      5. Crea un nuovo file di configurazione Dante.
        sudo nano /etc/danted.conf
      6. Copia la seguente configurazione nel file di configurazione:
        logoutput: /var/log/socks.log
                # Bind the server to the 0.0.0.0 IP address to allow traffic
                # traffic from the load balancer and the health check probes.
                internal: 0.0.0.0 port = 1080
                external: ens4
                clientmethod: none
                socksmethod: none
                user.privileged: root
                user.notprivileged: nobody
                client pass {
                        from: 0.0.0.0/0 to: 0.0.0.0/0
                        log: error connect disconnect
                }
                client block {
                        from: 0.0.0.0/0 to: 0.0.0.0/0
                        log: connect error
                }
                socks pass {
                        from: 0.0.0.0/0 to: 0.0.0.0/0
                        log: error connect disconnect
                }
                socks block {
                        from: 0.0.0.0/0 to: 0.0.0.0/0
                        log: connect error
                }
      7. Riavvia il server Dante e controlla lo stato.
        sudo systemctl restart danted
                sudo systemctl status danted
      8. Esci dall'istanza VM.
        exit
    4. Crea un bilanciatore del carico con l'istanza VM come backend.
      1. Crea un gruppo di istanze non gestite.
        gcloud compute instance-groups unmanaged create INSTANCE_GROUP_NAME
      2. Aggiungi al gruppo le istanze VM create nel passaggio 3.
        gcloud compute instance-groups unmanaged add-instances INSTANCE_GROUP_NAME \
                    --instances=PROXY_INSTANCE_1
      3. Crea un probe di controllo di integrità e consenti il traffico proveniente dal probe.
        1. Creare il probe di controllo di integrità.
          gcloud compute health-checks create tcp HEALTH_CHECK_NAME \
                      --port BACKEND_SERVER_PORT --region=REGION

          In questo comando, imposta BACKEND_SERVER_PORT su 1080, che è la porta predefinita su cui vengono eseguiti i server proxy SOCKS5.

        2. Creare una regola firewall per consentire il traffico dal probe.
          gcloud compute firewall-rules create FIREWALL_RULE_NAME_HEALTHCHECK \
                      --direction=INGRESS --priority=1000 --network=VPC_NETWORK --allow=tcp:BACKEND_SERVER_PORT \
                      --source-ranges=35.191.0.0/16,130.211.0.0/22
      4. Crea un bilanciatore del carico interno L4 e consenti il traffico dal bilanciatore del carico.
        1. Crea un servizio di backend.
          gcloud compute backend-services create BACKEND_SERVICE \
                      --load-balancing-scheme=internal --protocol=tcp --health-checks=HEALTH_CHECK_NAME \
                      --health-checks-region=REGION 
        2. Aggiungi il gruppo di istanze al servizio di backend.
          gcloud compute backend-services add-backend BACKEND_SERVICE \
                      --instance-group=INSTANCE_GROUP_NAME \
                      --instance-group-zone=ZONE
        3. Crea una regola di inoltro.
          gcloud compute forwarding-rules create FORWARDING_RULE_NAME \
                      --load-balancing-scheme=internal --network=VPC_NETWORK --subnet=SUBNET_NAME_2 \
                      --ip-protocol=TCP --ports=BACKEND_SERVER_PORT --backend-service=BACKEND_SERVICE \
                      --backend-service-region=REGION
        4. Crea una regola firewall per consentire il traffico interno dal bilanciatore del carico al gruppo di istanze.
          gcloud compute firewall-rules create FIREWALL_RULE_NAME_INTERNAL \
                      --direction=INGRESS --priority=1000 --network=VPC_NETWORK \
                      --action=ALLOW --rules=all --source-ranges=SUBNET_RANGE_2

      Crea un collegamento dell'endpoint

      Dopo aver creato un collegamento a un servizio gestito, devi creare un collegamento endpoint e utilizzarlo nella tua connessione.

      Collegamento dell'endpoint come indirizzo IP

      Per istruzioni su come creare un collegamento endpoint come indirizzo IP, consulta Creare un collegamento dell'endpoint come indirizzo IP.

      Collegamento dell'endpoint come nome host

      In alcuni casi, ad esempio con i backend abilitati per TLS, la destinazione richiede l'utilizzo di nomi host anziché di IP privati per eseguire la convalida TLS. Nei casi in cui un utente Il DNS viene utilizzato al posto di un indirizzo IP per la destinazione host, oltre a creare un endpoint come indirizzo IP, devi anche configurare le zone gestite. Per istruzioni su come creare un allegato dell'endpoint come nome host, consulta Creare un allegato dell'endpoint come nome host.

      In un secondo momento, quando configuri la connessione per utilizzare il collegamento endpoint, puoi selezionarlo.

      Configura una connessione per utilizzare il collegamento dell'endpoint

      Ora che hai creato un collegamento dell'endpoint, utilizzalo nella connessione. Quando crei una nuova connessione o aggiorni una esistente, nella sezione Destinazioni, seleziona Collegamento di endpoint come Tipo di destinazione e seleziona il collegamento di endpoint che hai creato dall'elenco Collegamento di endpoint.

      Se hai creato una zona gestita, seleziona Indirizzo host come Tipo di destinazione e utilizza il record A che hai creato durante la creazione della zona gestita.

      Suggerimenti per la risoluzione dei problemi

      Se hai problemi di connettività privata, segui le linee guida elencate in questa sezione per evitare i problemi più comuni.

      • Assicurati che il progetto tenant del connettore sia inserito nella lista consentita nel collegamento al servizio.
      • Assicurati che le regole firewall siano configurate come segue:
        • Il traffico proveniente dalla subnet del collegamento del servizio PSC deve essere consentito a raggiungere il servizio di backend.
        • Il probe del controllo di integrità deve essere in grado di accedere al sistema di backend. Il team di i probe del controllo di integrità hanno un intervallo IP fisso (35.191.0.0/16, 130.211.0.0/22). Quindi... questi indirizzi IP devono poter inviare traffico al server di backend.
      • Test di connettività Google Cloud può essere utilizzato per identificare eventuali lacune nella configurazione di rete. Per ulteriori informazioni, consulta Creare ed eseguire test di connettività.