Accedi ai servizi pubblicati utilizzando Private Service Connect con i controlli di servizio HTTP(S) consumer
Questa guida mostra come configurare un bilanciatore del carico HTTP(S) esterno globale per accedere a un servizio gestito che viene pubblicato utilizzando Private Service Connect.

Figura 1. L'utilizzo di un bilanciatore del carico HTTP(S) esterno globale consente ai consumer di servizi con accesso a Internet di inviare il traffico ai servizi nella rete VPC del producer di servizi (fai clic per ingrandire).
Per ulteriori informazioni, consulta la pagina relativa all'utilizzo di Private Service Connect per pubblicare e utilizzare servizi gestiti.
Ruoli
Il ruolo di amministratore del bilanciatore del carico Compute (roles/compute.loadBalancerAdmin
) contiene l'autorizzazione necessaria per eseguire le attività descritte in questa guida.
Prima di iniziare
Se vuoi pubblicare il tuo servizio, consulta Pubblicare servizi gestiti utilizzando Private Service Connect.
Se colleghi un servizio pubblicato da una terza parte, chiedi al producer di servizi le seguenti informazioni:
L'URI del collegamento del servizio a cui vuoi connetterti. L'allegato del servizio ha questo formato:
projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
Eventuali requisiti per i nomi DNS che utilizzi per inviare richieste. Potrebbe essere necessario utilizzare nomi DNS specifici nella configurazione della mappa URL o nella configurazione DNS.
Crea gruppo di endpoint di rete
Creare un NEG di Private Service Connect che rimandi all'allegato del servizio pubblicato per il servizio a cui vuoi accedere. Se il deployment del servizio gestito viene eseguito in più aree geografiche, crea un NEG per collegamento di servizio.
Ogni NEG di Private Service Connect consuma un indirizzo IP /32
in modo che
il bilanciatore del carico possa comunicare con questo.
Console
Nella console Google Cloud, vai alla pagina Gruppi di endpoint di rete.
Fai clic su Crea gruppo di endpoint di rete.
Inserisci un nome per il gruppo di endpoint di rete.
In Tipo di gruppo di endpoint di rete, seleziona Gruppo di endpoint di rete (Private Service Connect).
Seleziona il tipo di destinazione Servizio pubblicato.
In Servizio di destinazione, inserisci l'URI del collegamento del servizio.
Seleziona Rete e Subnet in cui creare il gruppo di endpoint di rete.
La subnet deve trovarsi nella stessa regione del servizio pubblicato.
Fai clic su Crea.
gcloud
gcloud compute network-endpoint-groups create NEG_NAME \ --network-endpoint-type=private-service-connect \ --psc-target-service=TARGET_SERVICE \ --region=REGION \ --network=NETWORK \ --subnet=SUBNET
Sostituisci quanto segue:
NEG_NAME
: un nome per il gruppo di endpoint di rete.TARGET_SERVICE
: il collegamento del servizio a cui vuoi connetterti.REGION
: la regione in cui creare il gruppo di endpoint di rete. La regione deve essere la stessa del servizio di destinazione.NETWORK
: la rete in cui creare il gruppo di endpoint di rete. Se omessa, verrà utilizzata la rete predefinita.SUBNET
: la subnet in cui creare il gruppo di endpoint di rete. La subnet deve trovarsi nella stessa regione del servizio di destinazione. Se fornisci la rete, dovrai fornire una subnet. Se vengono omesse sia la rete che la subnet, viene utilizzata la rete predefinita e viene utilizzata la subnet predefinita inREGION
specificata.
Prenota un indirizzo IP esterno per il bilanciatore del carico
Per prenotare un indirizzo IP esterno per il bilanciatore del carico, segui questi passaggi.
Console
Nella console Google Cloud, vai alla pagina Indirizzi IP.
Per prenotare un indirizzo IPv4, fai clic su Prenota indirizzo statico.
Assegna un nome alla risorsa indirizzo IP.
Imposta il livello di rete su Premium.
Imposta la versione IP su IPv4.
Imposta il Tipo su Globale.
Fai clic su Prenota.
gcloud
Prenotare un indirizzo IPv4 esterno globale per il bilanciatore del carico.
gcloud compute addresses create ADDRESS_NAME \ --ip-version=IPV4 --global
Sostituisci
ADDRESS_NAME
con un nome per la risorsa indirizzo IP.Esegui questo comando per visualizzare l'indirizzo IP prenotato:
gcloud compute addresses describe ADDRESS_NAME \ --format="get(address)" --global
Creazione di una risorsa del certificato SSL
Per creare un bilanciatore del carico HTTPS, devi aggiungere una risorsa del certificato SSL al front-end del bilanciatore del carico. Crea una risorsa del certificato SSL utilizzando un certificato SSL gestito da Google o un certificato SSL autogestito.
Certificati gestiti da Google. Ti consigliamo di utilizzare i certificati gestiti da Google perché Google Cloud li ottiene, li gestisce e rinnova automaticamente questi certificati. Per creare un certificato gestito da Google, devi avere un dominio e i record DNS per tale dominio per eseguire il provisioning del certificato. Se non hai ancora un dominio, puoi riceverne uno da Google Domains. Per ulteriori informazioni, consulta la guida introduttiva a Google Domains. Inoltre, devi aggiornare il record DNS A del dominio in modo che punti all'indirizzo IP del bilanciatore del carico creato al passaggio precedente; per istruzioni dettagliate, consulta la pagina Utilizzare i certificati gestiti da Google.
Certificati autogestiti. I certificati SSL autogestiti sono certificati che ottieni, esegui il provisioning e il rinnovo. I certificati autogestiti possono essere firmati da un'autorità di certificazione oppure possono essere autofirmati. Se sono firmati da un'autorità di certificazione, devi avere un dominio. Se non hai ancora un dominio, puoi ottenerne uno da Google Domains. Per ulteriori informazioni, consulta la guida introduttiva a Google Domains. Inoltre, devi aggiornare il record A DNS del dominio in modo che punti all'indirizzo IP del bilanciatore del carico creato nel passaggio precedente. Per istruzioni dettagliate, consulta la pagina Utilizzare i certificati SSL autogestiti.
Se al momento non vuoi configurare un dominio, puoi utilizzare un certificato SSL autofirmato per il test.
Queste istruzioni presuppongono che tu abbia già creato una risorsa del certificato SSL.
Configura il bilanciatore del carico
Configura un bilanciatore del carico HTTP(S) esterno globale con funzionalità avanzate di gestione del traffico (schema di bilanciamento del carico impostato su EXTERNAL_MANAGED
) per connetterti a un servizio gestito.
Se ti connetti a un servizio gestito di cui è stato eseguito il deployment in più aree geografiche e hai creato più NEG di Private Service Connect per la connessione a ogni collegamento di servizio, puoi aggiungere tutti i NEG al servizio di backend.
Anche se il NEG di Private Service Connect è a livello di regione, tutti gli altri componenti di bilanciamento del carico in questa configurazione sono globali.
Console
Avvia la configurazione
Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
In Bilanciamento del carico HTTP(S), fai clic su Avvia configurazione.
Seleziona Da Internet alle mie VM o ai miei servizi serverless.
Seleziona Bilanciatore del carico HTTP(S) globale.
Fai clic su Continua.
Inserisci un nome per il bilanciatore del carico.
Per continuare, tieni la finestra aperta.
Configurazione frontend
- Fai clic su Configurazione frontend.
- Fai clic su Aggiungi IP e porta frontend.
- Inserisci un nome per il bilanciatore del carico.
- Nel campo Protocollo, seleziona HTTPS (include HTTP/2).
- Assicurati che la porta sia impostata su
443
per consentire il traffico HTTPS. In Indirizzo IP, seleziona l'indirizzo IP che hai prenotato.
Fai clic sull'elenco Certificato e seleziona il certificato che hai creato.
Fai clic su OK.
Fai clic su Fine.
Configurazione backend
Il gruppo di endpoint di rete Private Service Connect è un tipo di backend del bilanciatore del carico. Aggiungi tutti i NEG privati per Private Service Connect per lo stesso servizio gestito al servizio di backend.
- Fai clic su Configurazione backend.
- Fai clic sull'elenco Servizi e bucket di backend, quindi fai clic su Crea un servizio di backend.
- Inserisci un nome per il servizio di backend.
- Imposta il Tipo di backend su Gruppo di endpoint di rete Private Service Connect.
- Nella sezione Backend, fai clic sull'elenco Gruppo di endpoint di rete Private Service Connect e seleziona il NEG privato che hai creato. Fai clic su Fine.
Se hai creato più di un NEG per Private Service Connect, fai clic su Aggiungi backend per selezionarne un altro.
Ripeti questo passaggio finché tutti i NEG per questo servizio gestito non vengono aggiunti al servizio di backend.
Fai clic su Crea.
Regole di routing
Poiché questa configurazione contiene un solo servizio di backend, la regola di routing predefinita è sufficiente e non è necessario apportare modifiche in questa sezione.
Esamina e finalizza
- Per esaminare la configurazione, fai clic su Rivedi e finalizza.
- Fai clic su Crea.
gcloud
Creare un servizio di backend per il servizio gestito a cui vuoi connetterti.
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTPS \ --global
Sostituisci
BACKEND_SERVICE_NAME
con il nome del servizio di backend.Aggiungi il NEG Private Service Connect che indirizzi al servizio di destinazione.
Se hai creato più NEG in aree geografiche diverse per lo stesso servizio, ripeti questo passaggio per aggiungere tutti i NEG al servizio di backend.
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=NEG_NAME \ --network-endpoint-group-region=REGION \ --global
Sostituisci quanto segue:
BACKEND_SERVICE_NAME
: il nome del servizio di backend.NEG_NAME
: il nome del gruppo di endpoint di rete.REGION
: la regione del gruppo di endpoint di rete.
Crea una mappa URL per il bilanciatore del carico.
Una mappa URL deve fare riferimento a un servizio di backend predefinito. Configura il servizio di backend che hai creato come servizio di backend predefinito.
gcloud compute url-maps create URL_MAP_NAME \ --default-service=BACKEND_SERVICE_NAME \ --global
Sostituisci quanto segue:
URL_MAP_NAME
: un nome per la mappa URL.BACKEND_SERVICE_NAME
: il nome del servizio di backend predefinito del bilanciatore del carico. L'impostazione predefinita viene utilizzata quando nessuna regola host corrisponde al nome host richiesto.
Crea il proxy HTTPS di destinazione.
Utilizza la risorsa del certificato SSL che hai creato per creare un proxy HTTPS di destinazione.
gcloud compute target-https-proxies create PROXY_NAME \ --url-map=URL_MAP_NAME \ --ssl-certificates=CERTIFICATE
Sostituisci quanto segue:
PROXY_NAME
: un nome per il proxy HTTPS di destinazione.URL_MAP_NAME
: il nome della mappa URL.CERTIFICATE
: il nome della risorsa del certificato.
Crea la regola di forwarding.
gcloud compute forwarding-rules create FWD_RULE \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=PREMIUM \ --address=ADDRESS_NAME \ --target-https-proxy=PROXY_NAME \ --ports=443 \ --global
Sostituisci quanto segue:
FWD_RULE
: un nome per la regola di forwarding.ADDRESS_NAME
: la risorsa dell'indirizzo IP che hai prenotato per l'utilizzo della regola di forwarding.PROXY_NAME
: il nome del proxy HTTPS di destinazione.
Configura record DNS
Se vuoi accedere all'endpoint di Private Service Connect utilizzando un nome DNS, crea nomi DNS per ogni regola di forwarding esterno. Il record DNS deve corrispondere a un nome nella mappa URL. A meno che la mappa URL non riscrivi i nomi, il record DNS deve corrispondere anche ai nomi previsti dal servizio producer.
Se utilizzi Cloud DNS per gestire il DNS, consulta l'articolo su come aggiungere un record DNS.
Verificare la configurazione
Creare l'istanza VM.
gcloud compute instances create VM_NAME \ --network=NETWORK \ --image-project=debian-cloud --image-family=debian-11 \ --zone=ZONE
Sostituisci quanto segue:
VM_NAME
: un nome per la macchina virtuale.NETWORK
: la rete della VM.ZONE
: la zona per la VM.
Connettiti alla VM.
gcloud compute ssh VM_NAME --zone=ZONE
Utilizza
curl
per verificare la configurazione. Questo comando imposta l'intestazioneHost
e ignora la risoluzione DNS specificando un indirizzo IP definito dall'utente. Puoi omettere la porta se utilizzi la porta predefinita per il protocollo, ad esempio utilizzando la porta 443 per HTTPS.Puoi saltare la convalida dei certificati utilizzando il flag
-k
. Potresti dover saltare la convalida se hai utilizzato un certificato autofirmato per configurare il proxy HTTPS di destinazione o se la VM non ha il certificato dell'autorità di certificazione che ha firmato il certificato.curl [-k] -s 'https://HOST:443/RESOURCE_URI' \ -H 'Host: HOST' \ --connect-to HOST:443:FWD_RULE_IP_ADDRESS:443
Sostituisci quanto segue:
HOST
: il nome host configurato nella mappa URL.RESOURCE_URI
: l'URI rimanente della risorsa che vuoi utilizzare per la verifica.FWD_RULE_IP_ADDRESS
: l'indirizzo IP assegnato alla regola di forwarding.
Risolvere i problemi
Se viene visualizzato un errore 404
quando cerchi di accedere alla regola di forwarding del bilanciatore del carico HTTP(S) esterno globale, l'errore potrebbe avere una delle seguenti cause:
La mappa URL non si è ancora propagata.
Se hai appena creato il bilanciatore del carico HTTP(S) esterno globale, prova ad attendere qualche minuto.
L'URL che utilizzi nella richiesta non corrisponde a un URL definito nella mappa URL.
Verifica che l'URL che stai cercando corrisponda alla configurazione della mappa URL nel bilanciatore del carico HTTP(S) esterno globale.
Il backend del producer di servizi non supporta l'URL a cui vuoi accedere
Chiedi al producer di servizi di verificare quale URL devi utilizzare per accedere al suo servizio.