Accedere alle API di Google regionali tramite endpoint
Questo documento spiega come utilizzare Private Service Connect per la connessione a endpoint regionali dei servizi Google per le API.
Per informazioni su altri servizi Private Service Connect, configurazioni, consulta Private Service Connect.
Ruoli
Per ottenere le autorizzazioni necessarie per creare un endpoint Private Service Connect regionale, chiedi all'amministratore di concederti i seguenti ruoli IAM sulla tua rete VPC:
-
Ruolo Amministratore rete Compute (
roles/compute.networkAdmin
) -
Ruolo Amministratore DNS (
roles/dns.admin
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite la ruoli o altri ruoli predefiniti ruoli.
Prima di iniziare
Install the Google Cloud CLI, then initialize it by running the following command:
$ gcloud init
Enable the Compute Engine, Network Connectivity Center, Cloud DNS, and Service Directory APIs.
Abilita le API di Google a cui vuoi accedere tramite gli endpoint Private Service Connect utilizzando la pagina API e servizi nella console Google Cloud. Private Service Connect non attiva automaticamente alcuna API.
Assicurati che le regole del firewall in uscita consentano il traffico verso l'endpoint. La configurazione predefinita del firewall per una rete VPC consente questo traffico perché contiene una regola di autorizzazione in uscita implicita. Verifica di non aver creato una regola in uscita con priorità più alta che blocca il traffico.
Leggi le limitazioni.
Creare un endpoint Private Service Connect regionale
Puoi creare un endpoint Private Service Connect regionale per inviare richieste a un endpoint regionale per un'API di Google di destinazione.
Per un elenco degli endpoint regionali supportati, consulta Endpoint di servizio a livello di area geografica.
I nomi host degli endpoint a livello di regione hanno due forme:
- Nomi host pubblici:
SERVICE.REGION.rep.DOMAIN
Nomi host privati:
SERVICE.REGION.p.rep.DOMAIN
Il nome host privato aggiunge un sottodominio
p
traREGION
erep
.
Quando configuri l'API di Google target, devi specificare la forma privata del
nome host, ad esempio spanner.me-central2.p.rep.googleapis.com
. Dopo
l'endpoint, crei un record DNS privato per il
utilizzando lo stesso nome host dell'endpoint a livello di regione privato.
Sebbene sia possibile configurare l'endpoint Private Service Connect
a qualsiasi nome, per facilità di manutenzione si consiglia di utilizzare il nome del servizio
l'API di Google target, in modo che il nome DNS corrisponda al nome dell'endpoint. Per
Ad esempio, se l'endpoint ha un target
spanner.me-central2.p.rep.googleapis.com
, usa spanner
come nome dell'endpoint.
gcloud
Utilizza la gcloud network-connectivity regional-endpoints create
un comando kubectl.
gcloud network-connectivity regional-endpoints create ENDPOINT_NAME \ --region=REGION \ --network=NETWORK_URI \ --subnetwork=SUBNET_URI \ --target-google-api=REP_NAME
Se vuoi rendere l'endpoint disponibile per le risorse in altre regioni,
aggiungi il flag --enable-global-access
.
Sostituisci quanto segue:
ENDPOINT_NAME
: un nome per l'endpoint.REGION
: la regione in cui vuoi creare l'endpoint.NETWORK_URI
: l'URI della rete VPC per l'endpoint:projects/PROJECT_ID/global/networks/NETWORK_NAME
.SUBNET_URI
: l'URI della subnet a cui vuoi collegare l'endpoint:projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
.REP_NAME
: il nome dell'endpoint di servizio a livello di regione a cui vuoi connetterti. Ad esempio,spanner.me-central2.p.rep.googleapis.com
.
Elenca endpoint
Puoi elencare tutti gli endpoint configurati.
Console
Nella console Google Cloud, vai alla pagina Private Service Connect.
Fai clic sulla scheda Endpoint connessi.
Sono visualizzati tutti gli endpoint, inclusi quelli con destinazioni degli endpoint a livello di regione.
gcloud
Utilizza il comando gcloud network-connectivity regional-endpoints list
.
gcloud network-connectivity regional-endpoints list \ --region=REGION
Sostituisci REGION
con la regione degli endpoint che vuoi elencare.
Verificare il funzionamento dell'endpoint
Creare un'istanza di una macchina virtuale (VM) nella rete VPC e regione in cui è configurato l'endpoint. Esegui il comando seguente sulla VM e verificare che l'endpoint Private Service Connect funzioni. Gli endpoint non rispondono alle richieste ping (ICMP).
curl --connect-to SERVICE.REGION.p.rep.DOMAIN:443:ENDPOINT_IP:443 \ 'SERVICE.REGION.p.rep.DOMAIN/PATH'
Sostituisci quanto segue:
SERVICE
: il servizio a cui punta l'endpoint. Ad esempio,spanner
ologging
.REGION
: la regione dell'endpoint.DOMAIN
: il dominio del servizio. Ad esempio:googleapis.com
.ENDPOINT_IP
: l'indirizzo IP dell'endpoint.PATH
: il percorso di una risorsa pubblicata da questo servizio. Ad esempio, molti servizi offrono un documento di rilevamento con il percorso$discovery/rest?version=v1
.
La richiesta di esempio seguente verifica che un endpoint con indirizzo IP
192.168.1.100
può richiedere l'API Cloud Spanner
documento di rilevamento dell'endpoint a livello di regione in me-central2
.
curl --connect-to spanner.me-central2.p.rep.googleapis.com:443:192.168.1.100:443 \ 'https://spanner.me-central2.p.rep.googleapis.com/$discovery/rest?version=v1'
Crea una voce DNS privata per l'endpoint
Devi creare voci DNS per gli endpoint in questo formato:
SERVICE.REGION.p.rep.DOMAIN
.
Puoi utilizzare Cloud DNS per creare le voci DNS.
Crea una zona DNS privata che abbia questo formato:
REGION.p.rep.DOMAIN
.Ad esempio, se vuoi utilizzare un endpoint regionale nel dominio
googleapis.com
, nella regioneme-central2
, crea una zona DNS privata con questo nome:me-central2.p.rep.googleapis.com
.Crea un record DNS che rimandi all'IP dall'indirizzo email assegnato all'endpoint. Il nome host deve corrispondere nome del servizio,
SERVICE
. Ad esempio,spanner
ologging
sono nomi di servizi.
Ad esempio, se l'endpoint è configurato con il target
spanner.me-central2.p.rep.googleapis.com
, crea una zona DNS privata denominata
me-central2.p.rep.googleapis.com
e un record A denominato spanner
che punti
all'indirizzo IP dell'endpoint. Il nome di dominio completo dell'endpoint è
spanner.me-central2.p.rep.googleapis.com
.
Configura i client in modo che utilizzino il nome dell'endpoint privato
Devi configurare i client in modo che utilizzino i nomi DNS privati anziché quelli pubblici. Consulta la documentazione della libreria client o client per e informazioni sulla configurazione per l'uso di endpoint personalizzati. Ad esempio:
Python: puoi configurare
api_endpoint
in Client options.Vai: puoi configurare
WithEndpoint
in ClientOptions..NET: puoi configurare
Endpoint
alla classe builder del cliente.gcloud: puoi configurare
api_endpoint_overrides
nell' interfaccia a riga di comando gcloud.
Ottieni informazioni dettagliate su un endpoint
Puoi visualizzare i dettagli di configurazione di un endpoint.
gcloud
Utilizza la gcloud network-connectivity regional-endpoints describe
un comando kubectl.
gcloud network-connectivity regional-endpoints describe \ ENDPOINT_NAME --region=REGION
Sostituisci quanto segue:
ENDPOINT_NAME
: il nome dell'endpoint.REGION
: la regione dell'endpoint.
Eliminazione di un endpoint
Puoi eliminare un endpoint.
gcloud
Utilizza il comando gcloud network-connectivity regional-endpoints delete
.
gcloud network-connectivity regional-endpoints delete \ ENDPOINT_NAME --region=REGION
Sostituisci quanto segue:
ENDPOINT_NAME
: il nome dell'endpoint.REGION
: la regione dell'endpoint.
Accedi agli endpoint da reti ibride
I client nelle reti connesse a Google Cloud con i collegamenti VLAN per i tunnel Cloud Interconnect o Cloud VPN possono raggiungere gli endpoint di Private Service Connect.Il collegamento VLAN o il tunnel Cloud VPN deve terminare nello stesso Rete VPC (o rete VPC condiviso) come endpoint. I client nelle reti VPC in peering non possono raggiungere gli endpoint.
Il traffico client da collegamenti VLAN o tunnel Cloud VPN può raggiungere in un'altra regione se è configurato l'accesso globale.
Sia Dataplane v1 che Dataplane v2 sono supportati per i collegamenti VLAN. Per ulteriori informazioni sulle versioni di Dataplane, consulta Dataplane v2.
Devi configurare i sistemi nell'altra rete in modo che possono eseguire query sulle tue zone DNS private.
Se hai implementato le zone DNS private utilizzando Cloud DNS, completa segui questi passaggi:
Crea un criterio del server in entrata Rete VPC a cui si connette l'altra rete.
Identifica i punti di contatto del forwarder in entrata nella regione in cui si trova il collegamento VLAN o il tunnel Cloud VPN, nella rete VPC a cui si connette la tua altra rete.
Configura i sistemi e i server dei nomi DNS nell'altra rete in modo da inoltrare i nomi DNS per l'endpoint a un punto di contatto del forwarder in entrata nella stessa regione del collegamento VLAN o del tunnel Cloud VPN che si connette alla rete VPC.