Accedi alle API di Google mediante Private Service Connect

Private Service Connect ti consente di connetterti ai producer di servizi utilizzando endpoint con indirizzi IP interni nella tua rete VPC.

Questo documento spiega come utilizzare gli endpoint di Private Service Connect per connettersi alle API di Google. Invece di inviare richieste API agli indirizzi IP disponibili pubblicamente per gli endpoint di servizio come storage.googleapis.com, puoi inviare le richieste all'indirizzo IP interno di un endpoint Private Service Connect.

Puoi utilizzare Private Service Connect anche per accedere ai servizi in un'altra rete VPC e per pubblicare servizi.

Ruoli

I seguenti ruoli IAM forniscono le autorizzazioni necessarie per eseguire le attività in questa guida.

Attività Ruoli
Crea un endpoint Private Service Connect Tutti i seguenti ruoli:
Amministratore di rete Compute (roles/compute.networkAdmin),
Editor Service Directory (roles/servicedirectory.editor) e
Amministratore DNS (roles/dns.admin)
Configurare l'accesso privato Google (facoltativo) Amministratore Compute Network (roles/compute.networkAdmin)

Prima di iniziare

  • Private Service Connect non abilita automaticamente alcuna API. Devi attivare le API Google separatamente nella pagina delle API e dei servizi in Google Cloud Console.

  • Devi abilitare l'API Compute Engine nel tuo progetto.

  • Devi abilitare l'API Service Directory nel tuo progetto.

  • Devi attivare l'API Cloud DNS nel tuo progetto.

  • Le regole del firewall in uscita devono consentire il traffico all'endpoint di Private Service Connect. La configurazione del firewall predefinita per una rete VPC consente questo traffico, perché contiene una regola di autorizzazione in uscita implicita. Verifica di non avere creato una regola in uscita con priorità più alta che blocchi il traffico.

  • Le istanze di macchine virtuali (VM) senza indirizzi IP esterni assegnati devono utilizzare una subnet con accesso privato Google abilitato per accedere alle API e ai servizi Google utilizzando un endpoint di Private Service Connect.

    Una VM con un indirizzo IP esterno può accedere alle API e ai servizi Google utilizzando gli endpoint di Private Service Connect anche se l'accesso privato Google è disabilitato per la sua subnet. La connettività all'endpoint di Private Service Connect rimane all'interno della rete di Google.

  • Se la tua rete VPC non contiene endpoint di Private Service Connect, verifica se esiste una zona privata di Cloud DNS per p.googleapis.com. Se la zona esiste, eliminala prima di creare l'endpoint di Private Service Connect. Se non lo elimini, non sarà possibile creare la zona DNS di Service Directory utilizzata per Private Service Connect. Per ulteriori informazioni, consulta la sezione per la risoluzione dei problemi.

  • Gli endpoint Private Service Connect non sono accessibili dalle reti VPC in peering.

Abilitazione dell'accesso privato Google per una subnet

Le VM senza un indirizzo IP esterno assegnato devono essere connesse a una subnet con accesso privato Google abilitato per accedere alle API e ai servizi Google utilizzando un endpoint di Private Service Connect.

Se la VM ha più di un'interfaccia, collega l'interfaccia configurata con una route predefinita (di solito nic0).

L'indirizzo IP di origine dei pacchetti inviati dalla VM deve corrispondere all'indirizzo IPv4 interno principale dell'interfaccia VM o a un indirizzo IPv4 interno da un intervallo IP alias.

Per abilitare l'accesso privato Google su una subnet, segui questi passaggi.

Console

  1. In Google Cloud Console, vai a Reti VPC.
    Vai alle reti VPC
  2. Fai clic sul nome della rete che contiene la subnet per cui vuoi attivare l'accesso privato Google.
  3. Fai clic sul nome della subnet. Viene visualizzata la pagina Dettagli subnet.
  4. Fai clic su Modifica.
  5. Nella sezione Accesso privato Google, seleziona Attivato.
  6. Fai clic su Salva.

gcloud

  1. Determina il nome e l'area geografica della subnet. Per elencare le subnet di una rete specifica, utilizza il comando seguente:

    gcloud compute networks subnets list --filter=NETWORK_NAME
    
  2. Esegui il comando seguente per abilitare l'accesso privato Google:

    gcloud compute networks subnets update SUBNET_NAME \
    --region=REGION \
    --enable-private-ip-google-access
    
  3. Verifica che l'accesso privato Google sia abilitato eseguendo questo comando:

    gcloud compute networks subnets describe SUBNET_NAME \
    --region=REGION \
    --format="get(privateIpGoogleAccess)"
    

In tutti i comandi riportati sopra, sostituisci quanto segue con i valori validi:

  • SUBNET_NAME: il nome della subnet
  • REGION: l'area geografica per la subnet
  • NETWORK_NAME: il nome della rete VPC che contiene la subnet

Terraform

Puoi utilizzare la risorsa Terraform per abilitare l'accesso privato Google su una subnet.

resource "google_compute_network" "network" {
  provider                = google-beta
  project                 = var.project # Replace this with your project ID in quotes
  name                    = "tf-test"
  auto_create_subnetworks = false
}

resource "google_compute_subnetwork" "vpc_subnetwork" {
  provider                 = google-beta
  project                  = google_compute_network.network.project
  name                     = "test-subnetwork"
  ip_cidr_range            = "10.2.0.0/16"
  region                   = "us-central1"
  network                  = google_compute_network.network.id
  private_ip_google_access = true
}

Private Service Connect e Service Directory

Gli endpoint di Private Service Connect sono registrati in Service Directory. Service Directory è una piattaforma per archiviare, gestire e pubblicare servizi. Quando crei un endpoint Private Service Connect per accedere alle API e ai servizi Google, devi selezionare un'area geografica e uno spazio dei nomi di Service Directory.

Area geografica di Service Directory

Service Directory è un servizio a livello di area geografica; l'area geografica selezionata definisce la posizione in cui si trova il piano di controllo di Service Directory. Non esiste una differenza funzionale tra le aree geografiche, ma potresti avere una preferenza per motivi amministrativi.

Quando crei il primo endpoint di Private Service Connect per le API di Google in una rete VPC, l'area geografica selezionata viene utilizzata come area predefinita per tutti gli endpoint creati in quella rete. Se un'area geografica non è già impostata per una rete e non specifichi un'area geografica, viene impostata su us-central1. Tutti gli endpoint in una rete devono utilizzare la stessa area geografica di Service Directory.

Spazio dei nomi Service Directory

Quando crei il primo endpoint di Private Service Connect per le API di Google in una rete VPC, lo spazio dei nomi selezionato viene utilizzato come spazio dei nomi predefinito per tutti gli endpoint successivi creati nella rete. Se lo spazio dei nomi non è già impostato per una rete e non specifichi uno spazio dei nomi, viene utilizzato uno spazio dei nomi generato dal sistema. Tutti gli endpoint in una rete devono utilizzare lo stesso spazio dei nomi di Service Directory. Lo spazio dei nomi che scegli deve essere utilizzato solo per gli endpoint Private Service Connect utilizzati per accedere alle API di Google. Puoi utilizzare lo stesso spazio dei nomi per gli endpoint in più reti.

Quando crei un endpoint Private Service Connect, vengono create le seguenti configurazioni DNS:

  • Viene creata una zona DNS privata di Service Directory per p.googleapis.com

  • I record DNS vengono creati in p.googleapis.com per alcuni servizi e API Google di uso comune disponibili con Private Service Connect e con nomi DNS predefiniti che terminano con googleapis.com.

    Per istruzioni sulla creazione di record DNS per API e servizi senza record DNS in p.googleapis.com, consulta la sezione Creazione di record DNS.

I servizi disponibili variano a seconda che tu selezioni il pacchetto API all-apis o vpc-sc.

Viene creata una zona DNS di Service Directory per ogni rete VPC che contiene un endpoint Private Service Connect.

I nomi DNS di un endpoint Private Service Connect sono accessibili in tutte le aree geografiche della rete VPC.

API supportate

Quando crei un endpoint Private Service Connect per accedere alle API e ai servizi Google, devi scegliere il gruppo di API a cui vuoi accedere: Tutte le API (all-apis) o VPC-SC (vpc-sc).

I bundle di API consentono di accedere alle stesse API disponibili tramite i accesso privati Google VIP.

  • Il bundle all-apis fornisce l'accesso alle stesse API di private.googleapis.com.

  • Il bundle vpc-sc fornisce l'accesso alle stesse API di restricted.googleapis.com.

I pacchetti di API supportano solo protocolli basati su HTTP su TCP (HTTP, HTTPS e HTTP/2). Tutti gli altri protocolli, inclusi MQTT e ICMP, non sono supportati.

Gruppo di API Servizi supportati Esempio di utilizzo
all-apis Abilita l'accesso API alla maggior parte delle API e dei servizi Google, indipendentemente dal fatto che siano supportati dai Controlli di servizio VPC. Include l'accesso API a Maps, Google Ads, Google Cloud e alla maggior parte delle altre API Google, inclusi gli elenchi riportati di seguito. Non supporta le applicazioni web di Google Workspace. Non supporta siti web interattivi.

Nomi di dominio corrispondenti:
  • accounts.google.com (solo i percorsi necessari per l'autenticazione OAuth)
  • appengine.google.com
  • *.appspot.com
  • *.cloudfunctions.net
  • *.cloudproxy.app
  • *.composer.cloud.google.com
  • *.composer.googleusercontent.com
  • *.datafusion.cloud.google.com
  • *.datafusion.googleusercontent.com
  • dl.google.com
  • gcr.io o *.gcr.io
  • *.googleadapis.com
  • *.googleapis.com
  • *.gstatic.com
  • *.ltsapis.goog
  • *.notebooks.cloud.google.com
  • *.notebooks.googleusercontent.com
  • packages.cloud.google.com
  • pkg.dev o *.pkg.dev
  • pki.goog o *.pki.goog
  • *.run.app
  • source.developers.google.com
Scegli all-apis in queste circostanze:
  • Non utilizzi i Controlli di servizio VPC.
  • Utilizzi i Controlli di servizio VPC, ma devi anche accedere alle API e ai servizi Google non supportati dai Controlli di servizio VPC.
vpc-sc Abilita l'accesso API alle API e ai servizi Google supportati dai Controlli di servizio VPC.

Blocca l'accesso alle API e ai servizi di Google che non supportano i controlli di servizio VPC. Non supporta le applicazioni web o le API Google Workspace.

Scegli vpc-sc quando devi accedere solo alle API e ai servizi di Google supportati dai Controlli di servizio VPC. Il bundle vpc-sc non consente l'accesso alle API e ai servizi di Google che non supportano i Controlli di servizio VPC.

Scelta di un indirizzo IP per l'endpoint di Private Service Connect

Quando configuri Private Service Connect su una rete VPC, fornisci un indirizzo IP da utilizzare per l'endpoint Private Service Connect.

L'indirizzo viene conteggiato ai fini della quota del progetto per gli indirizzi IP interni globali.

L'indirizzo IP deve soddisfare le seguenti specifiche:

  • Deve essere un singolo indirizzo IP e non un intervallo di indirizzi.

  • Deve essere un indirizzo IPv4 valido. Può essere un indirizzo RFC 1918 o un indirizzo non RFC 1918. Gli indirizzi IPv6 non sono supportati per Private Service Connect.

  • Non può rientrare nell'intervallo di subnet configurate nella rete VPC.

  • Non può essere compreso in un intervallo di indirizzi IP principali o secondari di qualsiasi subnet della rete VPC o in una rete connessa alla rete VPC tramite peering di rete VPC.

  • Non può sovrapporsi a una route statica personalizzata /32 nella rete VPC locale. Ad esempio, se la rete VPC ha una route statica personalizzata per 10.10.10.10/32, non puoi prenotare l'indirizzo 10.10.10.10 per Private Service Connect.

  • Non può sovrapporsi a una route statica personalizzata di peering /32 se hai configurato la rete in peering per esportare le route personalizzate e hai configurato la tua rete VPC per importare le route personalizzate.

  • Non può essere inclusa in nessuno degli intervalli IP in modalità automatica (in 10.128.0.0/9) se la rete VPC locale è una rete in modalità automatica o se è collegata in peering con una rete in modalità automatica.

  • Non può essere compreso in un intervallo IP allocato nella rete VPC locale. Tuttavia, può trovarsi in un intervallo IP allocato in una rete VPC in peering.

  • Se un endpoint Private Service Connect si sovrappone a una route dinamica personalizzata la cui destinazione è la stessa /32, ha la priorità l'endpoint Private Service Connect.

  • Se l'indirizzo IP di un endpoint di Private Service Connect si trova all'interno dell'intervallo di destinazione di un percorso statico personalizzato, un percorso dinamico personalizzato o un route personalizzato in peering e tale route ha una subnet mask più breve di /32, l'endpoint di Private Service Connect ha una priorità più elevata.

Creazione di un endpoint Private Service Connect

Dopo aver scelto un indirizzo IP che soddisfa i requisiti, puoi creare un endpoint di Private Service Connect.

Un endpoint Private Service Connect si connette alle API e ai servizi Google utilizzando una regola di forwarding globale. Ogni regola di forwarding viene conteggiata ai fini della quota di rete VPC per Private Service Connect.

Console

  1. In Google Cloud Console, vai a Private Service Connect.

    Vai a Private Service Connect

  2. Fai clic sulla scheda Endpoint connessi.

  3. Fai clic su Connetti endpoint.

  4. Per Target, seleziona il bundle API target che vuoi utilizzare:

    • Tutte le API di Google
    • VPC-SC
  5. In Nome endpoint, inserisci un nome per l'endpoint.

  6. Seleziona una rete per l'endpoint.

  7. Seleziona un indirizzo IP per l'endpoint.

    L'indirizzo IP deve soddisfare questi requisiti.

    Se hai bisogno di un nuovo indirizzo IP, puoi crearne uno:

    1. Fai clic su Crea indirizzo IP.
    2. Inserisci un Nome e una Descrizione per l'indirizzo IP.
    3. Inserisci l'indirizzo IP che vuoi utilizzare e fai clic su Salva.
  8. Se per questa rete VPC non è ancora configurata un'area geografica di Service Directory, seleziona l'area geografica che vuoi utilizzare.

    Tutti gli endpoint utilizzati per accedere alle API e ai servizi Google in una determinata rete VPC utilizzano la stessa area geografica Service Directory.

  9. Se uno spazio dei nomi Service Directory non è già configurato per questa rete VPC, configura lo spazio dei nomi che vuoi utilizzare:

    • Per utilizzare uno spazio dei nomi assegnato automaticamente, fai clic sul menu a discesa Spazio dei nomi e seleziona lo spazio dei nomi assegnato automaticamente.

    • Per selezionare uno spazio dei nomi esistente utilizzato in un'altra rete, fai clic sul menu a discesa Spazio dei nomi e seleziona uno spazio dei nomi dall'elenco. L'elenco mostra tutti gli spazi dei nomi del progetto. Devi selezionare uno spazio dei nomi utilizzato solo per gli endpoint di Private Service Connect utilizzati per accedere alle API di Google.

    • Per creare un nuovo spazio dei nomi, fai clic sul menu a discesa Spazio dei nomi e fai clic su Crea spazio dei nomi. Inserisci lo spazio dei nomi e fai clic su Crea.

    Tutti gli endpoint che utilizzi per accedere alle API e ai servizi Google in una determinata rete VPC utilizzano lo stesso spazio dei nomi Service Directory.

  10. Fai clic su Aggiungi endpoint.

gcloud

  1. Prenota un indirizzo IP interno globale da assegnare all'endpoint.

    gcloud compute addresses create ADDRESS_NAME \
      --global \
      --purpose=PRIVATE_SERVICE_CONNECT \
      --addresses=ENDPOINT_IP \
      --network=NETWORK_NAME
    

    Sostituisci quanto segue:

    • ADDRESS_NAME: il nome da assegnare all'indirizzo IP prenotato.

    • ENDPOINT_IP: l'indirizzo IP da prenotare per l'endpoint.

      L'indirizzo IP deve soddisfare questi requisiti.

    • NETWORK_NAME: il nome della rete VPC per l'endpoint.

  2. Crea una regola di forwarding per connettere l'endpoint alle API e ai servizi Google.

    gcloud compute forwarding-rules create ENDPOINT_NAME \
      --global \
      --network=NETWORK_NAME \
      --address=ADDRESS_NAME \
      --target-google-apis-bundle=API_BUNDLE \
      [ --service-directory-registration=REGION_NAMESPACE_URI ]
    

    Sostituisci quanto segue:

    • ENDPOINT_NAME: il nome da assegnare all'endpoint. Il nome deve essere una stringa di 1-20 caratteri, contenente solo lettere minuscole e numeri. Il nome deve iniziare con una lettera.

    • NETWORK_NAME: il nome della rete VPC per l'endpoint.

    • ADDRESS_NAME: nome dell'indirizzo prenotato sulla rete associata.

    • API_BUNDLE: il bundle di API da rendere disponibile utilizzando l'endpoint. Consulta l'elenco delle API supportate.

      • Utilizza all-apis per concedere l'accesso a tutte le API supportate.

      • Utilizza vpc-sc per limitare l'accesso alle API di Google che supportano i Controlli di servizio VPC.

    • REGION_NAMESPACE_URI: l'URI dell'area geografica o dello spazio dei nomi Service Directory che vuoi utilizzare. Questo URI deve fare riferimento allo stesso progetto in cui stai creando l'endpoint di Private Service Connect.

      • Puoi definire un'area geografica solo con projects/PROJECT_NAME/locations/REGION.

      • Puoi definire un'area geografica e uno spazio dei nomi con projects/PROJECT_NAME/locations/REGION/namespaces/NAMESPACE.

      Se ometti --service-directory-registration completamente o imposti un'area geografica senza uno spazio dei nomi, si verifica quanto segue:

      • Se per questa rete VPC è già configurato un'area geografica o uno spazio dei nomi, vengono utilizzati i valori predefiniti.

      • Se non è configurata, l'area geografica è impostata su us-central1. Se uno spazio dei nomi non è configurato, viene assegnato uno spazio dei nomi generato dal sistema.

API

  1. Prenota un indirizzo IP interno globale da assegnare all'endpoint.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses
    
    {
    "name": ADDRESS_NAME,
    "address": ENDPOINT_IP,
    "addressType": "INTERNAL",
    "purpose": PRIVATE_SERVICE_CONNECT,
    "network": NETWORK_URL
    }
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto.

    • ADDRESS_NAME: il nome da assegnare all'indirizzo IP prenotato.

    • ENDPOINT_IP: l'indirizzo IP da prenotare per l'endpoint.

      L'indirizzo IP deve soddisfare questi requisiti.

    • NETWORK_URL: la rete VPC per l'endpoint. Utilizza il metodo network.list o gcloud compute networks list --uri per trovare gli URL delle tue reti.

  2. Crea una regola di forwarding per connettere l'endpoint alle API e ai servizi Google.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/forwardingRules
    {
     "IPAddress": ADDRESS_URL,
     "network": NETWORK_URL,
     "name": ENDPOINT_NAME,
     "target": API_BUNDLE,
     "serviceDirectoryRegistrations : [
       {
         "service_directory_region": REGION,
         "namespace": "NAMESPACE"
    
       }
     ],
    }
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto.

    • ENDPOINT_NAME: il nome da assegnare all'endpoint. Il nome deve essere una stringa di 1-20 caratteri contenente solo lettere minuscole e numeri. Il nome deve iniziare con una lettera.

    • NETWORK_URL: la rete VPC per l'endpoint. Utilizza il metodo network.list o gcloud compute networks list --uri per trovare gli URL delle tue reti.

    • ADDRESS_URL: l'URL dell'indirizzo prenotato sulla rete associata. Utilizza il metodo globalAddresses.list o gcloud compute addresses list --uri per trovare gli URL dei tuoi indirizzi riservati.

    • API_BUNDLE: il pacchetto di API da rendere disponibile utilizzando l'endpoint. Consulta l'elenco delle API supportate.

      • Utilizza all-apis per concedere l'accesso a tutte le API supportate.

      • Utilizza vpc-sc per limitare l'accesso alle API di Google che supportano i Controlli di servizio VPC.

    • REGION: l'area geografica di Service Directory che vuoi utilizzare. Ad esempio: us-central1. Se ometti REGION, e un'area geografica è già configurata per questa rete VPC, viene utilizzata quell'area. Se non è configurata, l'area geografica è impostata su us-central1.

    • NAMESPACE: il nome dello spazio dei nomi Service Directory che vuoi utilizzare. Se ometti NAMESPACE, se lo spazio dei nomi è già configurato per la rete VPC, lo spazio dei nomi viene utilizzato. Se uno spazio dei nomi non è configurato, viene assegnato uno spazio dei nomi generato dal sistema.

Terraform

Per creare un endpoint Private Service Connect puoi utilizzare le seguenti risorse Terraform:

resource "google_compute_global_address" "default" {
  provider     = google-beta
  project      = google_compute_network.network.project
  name         = "global-psconnect-ip"
  address_type = "INTERNAL"
  purpose      = "PRIVATE_SERVICE_CONNECT"
  network      = google_compute_network.network.id
  address      = "10.3.0.5"
}
resource "google_compute_global_forwarding_rule" "default" {
  provider              = google-beta
  project               = google_compute_network.network.project
  name                  = "globalrule"
  target                = "all-apis"
  network               = google_compute_network.network.id
  ip_address            = google_compute_global_address.default.id
  load_balancing_scheme = ""
}

Verifica che l'endpoint funzioni

Creare un'istanza VM nella rete VPC in cui è configurato Private Service Connect ed eseguire questo comando sulla VM per verificare che l'endpoint di Private Service Connect funzioni.

curl -v ENDPOINT_IP/generate_204

Sostituisci quanto segue:

  • ENDPOINT_IP: indirizzo IP dell'endpoint di Private Service Connect.

Se l'endpoint funziona, viene visualizzato un codice di risposta HTTP 204.

Elenco endpoint

Puoi elencare tutti gli endpoint privati di Private Service Connect.

Console

  1. In Google Cloud Console, vai a Private Service Connect.

    Vai a Private Service Connect

  2. Fai clic sulla scheda Endpoint connessi.

    Vengono visualizzati gli endpoint di Private Service Connect.

gcloud

gcloud compute forwarding-rules list  \
--filter target="(all-apis OR vpc-sc)" --global

L'output è simile al seguente:

NAME  REGION  IP_ADDRESS  IP_PROTOCOL  TARGET
RULE          IP          TCP          all-apis

Recupero delle informazioni su un endpoint

Puoi visualizzare tutti i dettagli della configurazione di un endpoint di Private Service Connect.

Console

  1. In Google Cloud Console, vai a Private Service Connect.

    Vai a Private Service Connect

  2. Fai clic sulla scheda Endpoint connessi.

    Vengono visualizzati gli endpoint di Private Service Connect.

  3. Fai clic sull'endpoint di Private Service Connect per per cui vuoi visualizzare i dettagli.

gcloud

gcloud compute forwarding-rules describe \
    ENDPOINT_NAME --global

Etichettatura di un endpoint

Puoi gestire le etichette per gli endpoint di Private Service Connect. Per ulteriori informazioni, consulta la sezione relativa all'etichettatura delle risorse.

Eliminazione di un endpoint

Puoi eliminare un endpoint di Private Service Connect.

Console

  1. In Google Cloud Console, vai a Private Service Connect.

    Vai a Private Service Connect

  2. Fai clic sulla scheda Endpoint connessi.

  3. Seleziona l'endpoint di Private Service Connect che vuoi eliminare, quindi fai clic su Delete (Elimina).

gcloud

    gcloud compute forwarding-rules delete \
        ENDPOINT_NAME --global

Sostituisci quanto segue:

  • ENDPOINT_NAME: il nome dell'endpoint da eliminare.

Utilizzo di un endpoint

Per utilizzare un endpoint Private Service Connect, devi inviare richieste a un nome host DNS che si risolve nell'indirizzo IP dell'endpoint.

  • Puoi utilizzare i nomi DNS p.googleapis.com creati automaticamente se puoi configurare i tuoi client in modo da utilizzare un endpoint personalizzato e se p.googleapis.comvengono creati record DNS per le API e i servizi che vuoi utilizzare. Per ulteriori informazioni, consulta la sezione Utilizzare i nomi DNS di p.googleapis.com.

    Ad esempio, se il nome dell'endpoint è xyz, i record DNS vengono creati per storage-xyz.p.googleapis.com, compute-xyz.p.googleapis.com e altre API di uso comune nel bundle di API.

  • Puoi creare record DNS utilizzando i nomi DNS predefiniti se utilizzi un client che non è stato configurato per utilizzare un endpoint personalizzato o se non esiste un record DNS p.googleapis.com per il servizio che vuoi utilizzare. Per ulteriori informazioni, consulta la sezione Creare record DNS utilizzando nomi DNS predefiniti.

    Ad esempio, crea record DNS per storage.googleapis.com e compute.googleapis.com.

Utilizzo dei nomi DNS di p.googleapis.com

Quando crei un endpoint Private Service Connect, Service Directory crea record DNS per le API e i servizi più comuni disponibili disponibili con l'endpoint. I record DNS vengono creati solo per le API e i servizi con nomi DNS predefiniti che terminano con googleapis.com e solo per un sottoinsieme di tali API e servizi.

I record DNS vengono creati in una zona privata p.googleapis.com. I record rimandano all'indirizzo IP dell'endpoint e utilizzano questo formato: SERVICE-ENDPOINT.p.googleapis.com

Ad esempio, se il nome dell'endpoint è xyz, vengono creati i record DNS per storage-xyz.p.googleapis.com, compute-xyz.p.googleapis.com e altre API supportate.

I client che possono essere configurati per utilizzare un endpoint personalizzato possono usare i nomi DNS di p.googleapis.com per inviare richieste a un endpoint Private Service Connect.

Consulta la documentazione del client o della libreria client per informazioni sulla configurazione dell'utilizzo di endpoint personalizzati. Ad esempio:

  • Python: puoi configurare api_endpoint nella classe Opzioni client nel pacchetto google-api-core.

  • Vai: puoi configurare WithEndpoint nel pacchetto opzioni client nel pacchetto api.

  • gcloud: puoi configurare api_endpoint_overrides utilizzando questo comando.

    gcloud config set api_endpoint_overrides/SERVICE ENDPOINT_URL

    Ad esempio: gcloud config set api_endpoint_overrides/compute https://compute-xyz.p.googleapis.com/compute/v1/

Creazione di record DNS con nomi DNS predefiniti

Devi creare record DNS per indirizzare i nomi DNS predefiniti per API e servizi all'endpoint di Private Service Connect in queste circostanze:

  • Il tuo client o la tua applicazione non può essere configurato per utilizzare un nome DNS p.googleapis.com.

  • Devi accedere a un servizio supportato, ma non esiste un nome DNS p.googleapis.com creato automaticamente per quel servizio.

Per creare record DNS che rimandano all'endpoint di Private Service Connect, segui queste istruzioni:

  1. Crea una zona DNS per il dominio che devi utilizzare (ad esempio googleapis.com o gcr.io). Valuta la possibilità di creare una zona privata di Cloud DNS a questo scopo.

  2. In questa zona DNS:

    1. Crea un record A per il nome di dominio (zona), ad esempio googleapis.com o gcr.io. Punta questo record A all'indirizzo IP dell'endpoint di Private Service Connect. Se utilizzi Cloud DNS, consulta la sezione Aggiungere un record.

    2. Crea un record CNAME per tutti i nomi host possibili del dominio aggiuntivo utilizzando un asterisco e un punto seguito dal nome del dominio (ad esempio, *.googleapis.com o *.gcr.io). Punta questo record CNAME sul record A nella stessa zona. Ad esempio, punta *.googleapis.com a googleapis.com o *.gcr.io a gcr.io.

Utilizzo di Private Service Connect da host on-premise

Se la tua rete on-premise è connessa a una rete VPC, puoi utilizzare Private Service Connect per accedere ad API e servizi Google da host on-premise utilizzando l'indirizzo IP interno dell'endpoint di Private Service Connect.

  • La tua rete on-premise deve essere connessa a una rete VPC tramite tunnel Cloud VPN o collegamenti di Cloud Interconnect (VLAN).

  • L'endpoint di Private Service Connect è nella rete VPC connessa alla tua rete on-premise.

  • La rete on-premise deve avere route appropriate per l'endpoint di Private Service Connect. Configura una pubblicità route personalizzata per router Cloud per annunciare le route per l'endpoint Private Service Connect nella sessione BGP che gestisce le route per il tunnel Cloud VPN o il collegamento Cloud Interconnect (VLAN).

  • Devi configurare sistemi on-premise in modo che possano effettuare query alle zone DNS private.

    Se hai implementato le zone DNS private utilizzando Cloud DNS, completa i seguenti passaggi:

    • Crea un criterio del server in entrata nella rete VPC alla quale si connette la tua rete on-premise.

    • Identifica i punti di ingresso inoltratori in entrata nelle aree geografiche in cui si trovano i tunnel Cloud VPN e i collegamenti di Cloud Interconnect (VLAN) nella rete VPC a cui si connette la tua rete on-premise.

    • Configura i sistemi on-premise e i server dei nomi DNS on-premise per inoltrare i nomi DNS per gli endpoint Private Service Connect a un punto di ingresso inoltratore in entrata nella stessa area geografica del tunnel Cloud VPN o del collegamento Cloud Interconnect (VLAN) che si connette alla rete VPC.

Casi d'uso

Puoi creare più endpoint di Private Service Connect nella stessa rete VPC. Non è previsto alcun limite sulla larghezza di banda totale inviata a un endpoint specifico. Poiché gli endpoint di Private Service Connect utilizzano indirizzi IP interni globali, possono essere utilizzati da qualsiasi risorsa della tua rete VPC o da una rete on-premise connessa tramite tunnel Cloud VPN o collegamenti di Cloud Interconnect.

Con più endpoint, puoi specificare percorsi di rete diversi utilizzando il router Cloud e le regole del firewall.

  • Puoi creare regole firewall per impedire ad alcune VM di accedere alle API di Google tramite un endpoint Private Service Connect, consentendo ad altre VM di accedervi.

  • Puoi avere una regola firewall su un'istanza VM che non consenta tutto il traffico verso Internet; il traffico inviato agli endpoint Private Service Connect raggiunge comunque Google.

  • Se hai host on-premise collegati a un VPC tramite un tunnel Cloud VPN o un collegamento Cloud Interconnect (VLAN), puoi inviare alcune richieste tramite il tunnel o la VLAN durante l'invio di altre richieste sulla rete Internet pubblica. Questa configurazione ti consente di bypassare il tunnel o la VLAN per servizi quali Google Libri non supportati dall'accesso privato Google.

    Per creare questa configurazione, crea un endpoint Private Service Connect, pubblicizza gli indirizzi IP degli endpoint Private Service Connect utilizzando gli annunci di route personalizzati del router Cloud e abilita un criterio di forwarding in entrata Cloud DNS. L'applicazione può inviare alcune richieste tramite il tunnel Cloud VPN o l'allegato Cloud Interconnect (VLAN) utilizzando il nome dell'endpoint di Private Service Connect e altri su Internet mediante il nome DNS predefinito.

  • Se colleghi la tua rete on-premise alla rete VPC utilizzando più collegamenti Cloud Interconnect (VLAN), puoi inviare un traffico da on-premise su una VLAN e il resto su altre, come mostrato nella Figura 3. In questo modo puoi utilizzare il tuo networking ad ampia area anziché Google e controllare lo spostamento dei dati per soddisfare i requisiti geografici.

    Per creare questa configurazione, crea due endpoint di Private Service Connect. Crea una pubblicità di route personalizzata per il primo endpoint nella sessione BGP del router Cloud che gestisce la prima VLAN e crea un annuncio di route personalizzato diverso per il secondo endpoint nella sessione BGP del router Cloud che gestisce la seconda VLAN. Gli host on-premise configurati per utilizzare il nome dell'endpoint di Private Service Connect inviano il traffico sul corrispondente collegamento di Cloud Interconnect (VLAN).

  • Puoi anche utilizzare più collegamenti Cloud Interconnect (VLAN) in una topologia attiva/attiva. Se pubblicizzi lo stesso indirizzo IP dell'endpoint di Private Service Connect utilizzando pubblicità di route personalizzate per le sessioni BGP sui router Cloud che gestiscono le VLAN, i pacchetti inviati dai sistemi on-premise agli endpoint vengono indirizzati attraverso le VLAN tramite ECMP.

    Figura 3. Configurando Private Service Connect, il router Cloud e gli host on-premise, puoi controllare quale collegamento di Cloud Interconnect (VLAN) viene utilizzato per inviare traffico alle API di Google.

Risolvere i problemi

Creazione della zona DNS privata non riuscita

Quando crei un endpoint Private Service Connect, viene creata una zona DNS di Service Directory. La creazione di una zona può non riuscire per questi motivi:

  • Non hai attivato l'API Cloud DNS nel tuo progetto.

  • Non disponi delle autorizzazioni necessarie per creare una zona DNS di Service Directory.

  • In questa rete VPC esiste una zona DNS con lo stesso nome di zona.

  • Esiste già una zona DNS per p.googleapis.com in questa rete VPC.

Potrebbero esistere zone in conflitto perché l'eliminazione precedente non è riuscita.

Per creare la zona DNS di Service Directory, segui questi passaggi:

  1. Verifica che l'API Cloud DNS sia attivata nel tuo progetto.

  2. Verifica di disporre delle autorizzazioni necessarie per creare la zona DNS di Service Directory:

    • dns.managedZones.create
    • servicedirectory.namespaces.associatePrivateZone
  3. Elimina la zona DNS.

  4. Crea una zona DNS di Service Directory supportata dallo spazio dei nomi di Service Directory associato al tuo endpoint Private Service Connect.

    Utilizza i seguenti valori quando crei la zona:

    • Nome zona: utilizza lo stesso nome della zona utilizzato dal sistema durante il tentativo di creazione non riuscito. Il messaggio di errore mostra quale nome di zona è stato utilizzato.

    • Nome DNS: p.googleapis.com. (include il punto finale).

    • Spazio dei nomi Service Directory: trova lo spazio dei nomi Service Service per l'endpoint di Private Service Connect che hai creato e utilizzalo quando crei la zona DNS di Service Directory.

    Lo spazio dei nomi Service Directory ha il formato seguente: goog-psc-NETWORK_NAME-NETWORK_ID.

Eliminazione della zona DNS privata non riuscita

Quando elimini l'ultimo endpoint di Private Service Connect in una rete VPC, viene eliminata la configurazione di Service Directory associata, inclusa la zona DNS.

Questa eliminazione può non riuscire per questi motivi:

  • Non disponi delle autorizzazioni necessarie per eliminare la zona DNS.

  • La zona contiene voci DNS definite dall'utente che non sono state create da Service Directory.

Per risolvere il problema:

  1. Verifica di avere l'autorizzazione dns.managedZones.delete. Per ulteriori informazioni, consulta la sezione Controllo dell'accesso nella documentazione di Cloud DNS.

  2. Elimina la zona DNS.