Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Accedi ai servizi gestiti utilizzando 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 Private Service Connect per connettersi ai servizi gestiti supportati in un'altra rete VPC. Puoi connetterti ai tuoi servizi o a quelli forniti da altri produttori di servizi. Per ulteriori informazioni, consulta la pagina relativa alla pubblicazione di servizi gestiti.

Ruoli

Il seguente ruolo IAM fornisce le autorizzazioni necessarie per eseguire le attività di questa guida.

Attività Ruoli
Crea un endpoint Private Service Connect Entrambi i ruoli sono:
Amministratore di rete Compute (roles/compute.networkAdmin) e
Editor Service Directory (roles/servicedirectory.editor)
Configura automaticamente o manualmente le voci DNS per un endpoint Private Service Connect Amministratore DNS (roles/dns.admin)

Prima di iniziare

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

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

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

  • Le regole firewall in uscita devono consentire il traffico all'indirizzo IP interno dell'endpoint di Private Service Connect. La regola firewall consentito in uscita consente il traffico in uscita verso qualsiasi indirizzo IP di destinazione.

    Se hai creato regole firewall di negazione del traffico in uscita nella tua rete VPC o se hai creato criteri firewall gerarchici che modificano il comportamento in uscita implicito, l'accesso all'endpoint potrebbe essere interessato. Creare un criterio o una regola di firewall in uscita per consentire il traffico verso la destinazione dell'indirizzo IP interno dell'endpoint di servizio.

  • Devi avere l'URI del collegamento del servizio per il servizio. Ad esempio, projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME

Limitazioni

  • Non puoi creare un endpoint Private Service Connect nella stessa rete VPC del servizio pubblicato a cui accedi.

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

  • Mirroring pacchetto non può eseguire il mirroring dei pacchetti per il traffico dei servizi pubblicati di Private Service Connect.

Configurazione DNS automatica

Se sono presenti le seguenti configurazioni, le voci DNS vengono create automaticamente per gli endpoint Private Service Connect:

  • Il producer di servizi ha configurato un nome di dominio per il servizio.

  • L'endpoint Private Service Connect è registrato con uno spazio dei nomi di Service Directory.

    Tutti i nuovi endpoint vengono registrati automaticamente con Service Directory, ma gli endpoint meno recenti potrebbero non essere registrati.

Se sono presenti entrambe le configurazioni, quando viene creato l'endpoint di Private Service Connect, viene creata una zona DNS di Service Directory con il nome: NAMESPACE--REGION. Questa zona privata archivia le voci DNS per i servizi trovati nello spazio dei nomi Service Directory NAMESPACE, nella regione REGION.

Configurazione DNS automatica per gli endpoint Private Service Connect utilizzando Service Directory (fai clic per ingrandire)

Dopo aver creato l'endpoint Private Service Connect, puoi verificare se viene creata una zona DNS di Service Directory. Se la zona DNS di Service Directory non viene creata, puoi crearne manualmente una configurazione simile. Per ulteriori informazioni, consulta Visualizzare le zone DNS di Service Directory.

Se non vuoi che vengano create queste voci DNS, esegui una delle seguenti operazioni:

  • Se non utilizzi Cloud DNS per un altro scopo, disattiva l'API Cloud DNS o rimuovi le autorizzazioni necessarie per Cloud DNS.

  • Attendi la creazione della zona DNS, quindi Elimina la zona DNS manualmente.

    Se vuoi configurare manualmente il DNS, consulta la pagina Configurare manualmente il DNS.

Crea un endpoint Private Service Connect

Un endpoint Private Service Connect si connette ai servizi in un'altra rete VPC utilizzando una regola di forwarding di Private Service Connect. Ogni regola di forwarding viene conteggiata ai fini della quota per progetto per le regole di forwarding di Private Service Connect per accedere ai servizi in un'altra rete VPC.

Quando utilizzi Private Service Connect per connetterti ai servizi in un'altra rete VPC, devi scegliere un indirizzo IP da una subnet nella rete VPC.

L'indirizzo IP deve trovarsi nella stessa regione dell'allegato del servizio del producer di servizi. L'indirizzo IP viene conteggiato ai fini della quota del progetto per gli indirizzi IP interni.

Quando crei un endpoint di Private Service Connect, viene registrato automaticamente con Service Directory, utilizzando uno spazio dei nomi scelto da te, o lo spazio dei nomi predefinito, goog-psc-default.

Console

  1. Nella console Google Cloud, vai a Private Service Connect.

    Vai a Private Service Connect

  2. Fai clic sulla scheda Endpoint connessi.

  3. Fai clic su Connetti endpoint.

  4. In Destinazione, seleziona Servizio pubblicato.

  5. In Servizio di destinazione, inserisci l'URI del collegamento del servizio a cui vuoi connetterti.

    L'URI dell'allegato del servizio è nel seguente formato: projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME

  6. In Nome endpoint, inserisci un nome da utilizzare per l'endpoint.

  7. Seleziona una rete per l'endpoint.

  8. Seleziona una subnet per l'endpoint.

  9. Seleziona un indirizzo IP per l'endpoint. Se hai bisogno di un nuovo indirizzo IP, puoi crearne uno:

    1. Fai clic sul menu a discesa Indirizzo IP e seleziona Crea indirizzo IP.
    2. Inserisci i valori Nome e Descrizione (facoltativo) dell'indirizzo IP.
    3. In Indirizzo IP statico, seleziona Assegna automaticamente o Fammi scegliere.

      Se hai selezionato Fammi scegliere, inserisci un indirizzo IP personalizzato da utilizzare.

    4. Fai clic su Prenota.

  10. Seleziona uno spazio dei nomi dall'elenco a discesa o crea un nuovo spazio dei nomi.

    L'area geografica viene compilata in base alla subnet selezionata.

  11. Fai clic su Aggiungi endpoint.

gcloud

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

    gcloud compute addresses create ADDRESS_NAME \
        --region=REGION \
        --subnet=SUBNET
    

    Sostituisci quanto segue:

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

    • REGION: la regione relativa all'indirizzo IP dell'endpoint. Deve essere la stessa regione contenente il collegamento al servizio del producer di servizi.

    • SUBNET: il nome della subnet per l'indirizzo IP dell'endpoint.

  2. Trova l'indirizzo IP prenotato.

    gcloud compute addresses list --filter="name=ADDRESS_NAME"
    
  3. Creare una regola di forwarding per connettere l'endpoint al collegamento del servizio del producer di servizi.

    gcloud compute forwarding-rules create ENDPOINT_NAME \
        --region=REGION \
        --network=NETWORK_NAME \
        --address=ADDRESS_NAME \
        --target-service-attachment=SERVICE_ATTACHMENT \
        [ --service-directory-registration=projects/PROJECT_ID/locations/REGION/namespaces/NAMESPACE ]
    

    Sostituisci quanto segue:

    • ENDPOINT_NAME: il nome da assegnare all'endpoint.

    • REGION: la regione dell'endpoint. Deve essere la stessa regione contenente il collegamento al servizio del producer di servizi.

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

    • ADDRESS_NAME: il nome dell'indirizzo prenotato.

    • SERVICE_ATTACHMENT: URI dell'allegato del servizio del producer di servizi. Ad esempio: projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME

    • PROJECT_ID: l'ID del tuo progetto.

    • NAMESPACE: lo spazio dei nomi di Service Directory che vuoi utilizzare. Se specifichi uno spazio dei nomi che non esiste, viene creato uno spazio dei nomi.

      Se ometti il flag --service-directory-registration, viene utilizzato lo spazio dei nomi predefinito di goog-psc-default.

API

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

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/region/REGION/addresses
    
    {
      "name": ADDRESS_NAME,
      "addressType": "INTERNAL",
      "subnetwork": SUBNET_URI
    }
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo progetto.

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

    • SUBNET_URI: la subnet per l'indirizzo IP. Usa il metodo subnetworks.list o gcloud compute networks subnets list --uri per trovare gli URL delle tue reti.

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

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules
    {
      "name": ENDPOINT_NAME,
      "IPAddress": ADDRESS_URI,
      "target": SERVICE_ATTACHMENT,
      "network": NETWORK_URI,
      "serviceDirectoryRegistrations": [
          {
              "namespace": NAMESPACE,
          }
      ],
    }
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo progetto.

    • REGION: la regione dell'endpoint.

    • ENDPOINT_NAME: il nome da assegnare all'endpoint.

    • ADDRESS_URI: URI dell'indirizzo prenotato sulla rete associata. Utilizza il metodo address.list o gcloud compute addresses list --uri per trovare l'URL dell'indirizzo prenotato.

    • SERVICE_ATTACHMENT: URI dell'allegato del servizio del producer di servizi. Ad esempio: projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME

    • NETWORK_URI: la rete VPC per l'endpoint. Utilizza il metodo network.list o gcloud compute networks list --uri per trovare l'URI della tua rete.

    • NAMESPACE: lo spazio dei nomi per l'endpoint. Se specifichi uno spazio dei nomi che non esiste, viene creato questo spazio. Se ometti il campo namespace, viene assegnato lo spazio dei nomi predefinito goog-psc-default.

Visualizza zone DNS di Service Directory

Se i prerequisiti per la configurazione DNS automatica sono soddisfatti, viene creata una zona DNS con un nome nel formato NAMESPACE--REGION.

Console

  1. Nella console Google Cloud, vai alla pagina Zone DNS di Cloud.

    Vai alle zone Cloud DNS

  2. Cerca una zona privata con il nome NAMESPACE--REGION.

gcloud

  • Esegui il comando seguente per elencare tutte le zone DNS private:

    gcloud dns managed-zones list \
        --filter="visibility=private"
    
  • Esegui questo comando per ottenere i dettagli di una zona denominata NAMESPACE--REGION.

    gcloud dns managed-zones describe NAMESPACE--REGION
    

Se la zona non è presente, visualizza i dettagli dell'endpoint Private Service Connect e controlla se la configurazione dell'endpoint include un valore per lo spazio dei nomi.

Elenco endpoint

Puoi elencare tutti gli endpoint Private Service Connect configurati.

Console

  1. Nella console Google Cloud, vai alla pagina Private Service Connect.

    Vai a Private Service Connect

  2. Fai clic sulla scheda Endpoint connessi.

    Vengono visualizzati gli endpoint Private Service Connect.

gcloud

gcloud compute forwarding-rules list  \
    --filter 'target~serviceAttachments'

L'output è simile al seguente:

NAME  REGION  IP_ADDRESS  IP_PROTOCOL  TARGET
RULE          IP          TCP          REGION/serviceAttachments/SERVICE_NAME

API

Questa chiamata API restituisce tutte le regole di forwarding, non solo gli endpoint Private Service Connect utilizzati per accedere ai servizi.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules

Sostituisci quanto segue:

  • PROJECT_ID: il progetto che contiene l'endpoint.
  • REGION: la regione dell'endpoint.

Visualizza dettagli endpoint

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

L'endpoint può avere uno dei seguenti stati:

  • In attesa: l'endpoint è configurato per connettersi a un servizio che richiede approvazione e l'approvazione non è stata ancora assegnata a questo progetto.

  • Accettato: l'endpoint è in un progetto approvato per la connessione al servizio.

  • Rifiutato: l'endpoint è in un progetto la cui connessione al servizio non è consentita.

  • Chiuso: l'endpoint è connesso a un collegamento a un servizio che è stato eliminato.

Console

  1. Nella console Google Cloud, vai alla pagina Private Service Connect.

    Vai a Private Service Connect

  2. Fai clic sulla scheda Endpoint connessi.

  3. Fai clic sull'endpoint da visualizzare.

gcloud

gcloud compute forwarding-rules describe \
    ENDPOINT_NAME --region=REGION

Sostituisci quanto segue:

  • ENDPOINT_NAME: il nome dell'endpoint.
  • REGION: la regione dell'endpoint.

API

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules/ENDPOINT_NAME

Sostituisci quanto segue:

  • PROJECT_ID: il progetto che contiene l'endpoint.
  • REGION: la regione dell'endpoint.
  • ENDPOINT_NAME: il nome dell'endpoint.

Etichettare un endpoint

Puoi gestire le etichette per gli endpoint Private Service Connect. Per ulteriori informazioni, consulta la sezione etichettare le risorse.

Eliminazione di un endpoint

Puoi eliminare un endpoint Private Service Connect.

Tuttavia, le seguenti configurazioni di Service Directory non vengono eliminate quando elimini l'endpoint:

  • Spazio dei nomi Service Directory
  • Zona DNS di Service Directory

Lo spazio dei nomi Service Directory e la zona DNS di Service Directory possono essere utilizzati da altri servizi. Verifica che lo spazio dei nomi sia vuoto prima di eliminare lo spazio dei nomi di Service Directory o di eliminare la zona DNS di Service Directory.

Console

  1. Nella console Google Cloud, vai a Private Service Connect.

    Vai a Private Service Connect

  2. Fai clic sulla scheda Endpoint connessi.

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

gcloud

    gcloud compute forwarding-rules delete \
        ENDPOINT_NAME --region=REGION

Sostituisci quanto segue:

  • ENDPOINT_NAME: il nome dell'endpoint.
  • REGION: la regione dell'endpoint.

API

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules/ENDPOINT_NAME

Sostituisci quanto segue:

  • PROJECT_ID: il progetto che contiene l'endpoint.
  • REGION: la regione dell'endpoint.
  • ENDPOINT_NAME: il nome dell'endpoint.

Altri modi per configurare il DNS

Se i prerequisiti per la configurazione DNS automatica non sono soddisfatti, puoi creare voci DNS in altri modi:

Configura una zona DNS di Service Directory

Se un endpoint Private Service Connect è registrato con Service Directory, ma il servizio pubblicato a cui si connette non ha un nome di dominio configurato, non vengono apportate modifiche DNS.

Se vuoi replicare la configurazione DNS automatica, puoi configurare manualmente una zona DNS di Service Directory supportata dallo spazio dei nomi Service Directory. Dopo la creazione della zona, vengono create automaticamente le voci DNS per l'endpoint Private Service Connect.

Crea una zona DNS di Service Directory con la seguente configurazione:

  • Nome zona: specifica NAMESPACE--REGION, dove NAMESPACE è lo spazio dei nomi in cui è registrato l'endpoint Private Service Connect e REGION è la regione in cui viene creato l'endpoint.

  • Nome DNS: il dominio DNS utilizzato dal producer di servizi per i servizi pubblicati. Per informazioni su questo aspetto, rivolgiti al produttore.

    Il nome DNS potrebbe avere il formato REGION.p.DOMAIN. Ad esempio, se il dominio pubblico del producer di servizi è example.com e il servizio pubblicato è in us-west1, consigliamo di renderlo disponibile utilizzando i nomi di dominio di us-west1.p.example.com. Includi un punto finale, ad esempio us-west1.p.example.com..

  • Spazio dei nomi Service Directory: lo spazio dei nomi che hai configurato per questo endpoint.

Visualizza i dettagli dell'endpoint di Private Service Connect per trovare lo spazio dei nomi e la regione di Service Directory.

Con questa configurazione, se hai configurato una zona DNS di Service Directory con il nome DNS us-west1.p.example.com e crei un endpoint Private Service Connect con il nome analytics, viene creato automaticamente un record DNS per analytics.us-west1.p.example.com.

Registra un endpoint Private Service Connect con Service Directory

I nuovi endpoint Private Service Connect vengono registrati automaticamente con Service Directory. Tuttavia, se è stato creato un endpoint Private Service Connect prima dell'abilitazione della registrazione automatica con Service Directory, questa configurazione potrebbe non essere disponibile.

Puoi eliminare l'endpoint di Private Service Connect e crearne uno nuovo, che viene registrato automaticamente con Service Directory.

In alternativa, puoi seguire questi passaggi per registrare un endpoint di Private Service Connect esistente con uno spazio dei nomi di Service Directory.

  1. Crea uno spazio dei nomi di Service Directory per l'endpoint Private Service Connect NAMESPACE.

  2. Crea un servizio Service Directory per l'endpoint Private Service Connect SERVICE_NAME.

    Per il servizio, utilizza lo stesso nome di quello della regola di forwarding utilizzata per l'endpoint di Private Service Connect, ENDPOINT_NAME.

  3. Crea un endpoint di Service Directory, utilizzando il nome default e utilizza l'indirizzo IP e la porta (443) dell'endpoint di Private Service Connect.

Dopo aver registrato l'endpoint Private Service Connect con Service Directory, segui le istruzioni per configurare una zona DNS di Service Directory.

Configura DNS manualmente

Se hai impedito la configurazione DNS automatica o se non è abilitata nella tua configurazione, puoi utilizzare Cloud DNS per creare manualmente i record DNS

Per maggiori informazioni, consulta le seguenti pagine:

  • Controllo dell'accesso: il ruolo Amministratore DNS (roles/dns.admin) fornisce le autorizzazioni necessarie per creare record e zone DNS.

  • Crea una zona privata.

    • Quando configuri una zona privata, devi fornire un nome DNS. Utilizza il dominio DNS utilizzato dal producer di servizi per i servizi pubblicati. Per informazioni, chiedi al producer di servizi.

      Potrebbe avere il seguente formato: REGION.p.DOMAIN. Ad esempio, se il dominio pubblico del producer di servizi è example.com e il servizio pubblicato è in us-west1, consigliamo di renderlo disponibile utilizzando i nomi di dominio di us-west1.p.example.com.

  • Aggiungi un record.

Logging

  • Puoi abilitare i log di flusso VPC sulle subnet contenenti VM che accedono ai servizi in un'altra rete VPC utilizzando gli endpoint Private Service Connect. I log mostrano i flussi tra le VM e l'endpoint Private Service Connect.

  • Puoi visualizzare le modifiche apportate allo stato della connessione per gli endpoint Private Service Connect utilizzando i log di controllo. Le modifiche allo stato della connessione per l'endpoint vengono acquisite nei metadati degli eventi di sistema per la regola di forwarding GCE del tipo di risorsa. Puoi filtrare pscConnectionStatus per visualizzare queste voci.

    Ad esempio, quando un producer di servizi consente le connessioni dal tuo progetto, lo stato della connessione dell'endpoint passa da PENDING a ACCEPTED e questa modifica si riflette negli audit log.

Accedi all'endpoint dagli host on-premise

I client in reti connesse a Google Cloud con collegamenti VLAN per i tunnel Cloud Interconnect (anteprima) o Cloud VPN possono raggiungere gli endpoint Private Service Connect.

  • Il collegamento VLAN o il tunnel Cloud VPN deve terminare nella stessa rete VPC e nella stessa regione dell'endpoint Private Service Connect.

  • Il traffico client dalle reti connesse agli endpoint Private Service Connect non è supportato sulle reti VPC in peering o oltre i confini regionali.

    Il collegamento VLAN o il tunnel Cloud VPN e l'endpoint Private Service Connect possono trovarsi in progetti diversi se utilizzano un VPC condiviso.

  • I collegamenti VLAN devono avere dataplaneVersion: 2. Controlla il collegamento VLAN per controllare in quale versione è installata.

Se vuoi accedere all'endpoint di Private Service Connect utilizzando il suo nome DNS, devi configurare i sistemi on-premise in modo che possano eseguire query nelle zone DNS private.

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

Controlli di servizio VPC

Controlli di servizio VPC e Private Service Connect sono compatibili tra loro. Se la rete VPC in cui viene eseguito il deployment dell'endpoint Private Service Connect si trova in un perimetro Controlli di servizio VPC, l'endpoint Private Service Connect fa parte dello stesso perimetro. Tutti i servizi VPC di Controlli di servizio a cui si accede tramite l'endpoint Private Service Connect sono soggetti ai criteri del perimetro di Controlli di servizio VPC.

Quando crei un endpoint Private Service Connect, vengono effettuate chiamate API del piano di controllo tra i progetti consumer e produttore per stabilire una connessione Private Service Connect. Stabilendo una connessione Private Service Connect tra progetti consumer e producer che non si trovano nello stesso perimetro dei Controlli di servizio VPC non è necessaria un'autorizzazione esplicita con i criteri in uscita. La comunicazione con i servizi di Controlli di servizio VPC tramite l'endpoint Private Service Connect è protetta dal perimetro dei Controlli di servizio VPC.

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 della zona può non riuscire per i seguenti motivi:

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

  • Non hai le 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 con lo stesso nome di dominio in questa rete VPC.

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

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

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

    • dns.managedZones.create
    • dns.networks.bindPrivateDNSZone
    • servicedirectory.namespaces.associatePrivateZone
  3. Se esiste una zona in conflitto, ma non è più necessaria, elimina la zona DNS.

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