Pubblicare servizi utilizzando Private Service Connect

In qualità di producer di servizi, puoi utilizzare Private Service Connect per pubblicare servizi utilizzando indirizzi IP interni nella tua rete VPC. I servizi pubblicati sono accessibili ai consumer di servizi tramite indirizzi IP interni nelle reti VPC consumer.

Questa guida descrive come utilizzare Private Service Connect per pubblicare un servizio. Per pubblicare un servizio:

Private Service Connect offre due metodi per connettersi ai servizi pubblicati:

Questi tipi di endpoint richiedono configurazioni del producer leggermente diverse. Per maggiori informazioni, consulta Funzionalità e compatibilità.

Ruoli

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

Prima di iniziare

  • Leggi Informazioni sui servizi pubblicati per informazioni sui servizi di pubblicazione, incluse le relative limitazioni.

  • Decidi se il servizio deve essere accessibile da tutti i progetti o se vuoi controllare quali progetti possono accedere al tuo servizio.

  • Decidi se vuoi che questo servizio supporti endpoint, backend o entrambi. Per ulteriori informazioni su endpoint e backend, consulta Tipi di Private Service Connect.

    Per ulteriori informazioni sui requisiti di configurazione del servizio, vedi Funzionalità e compatibilità.

  • Decidi se vuoi configurare un nome di dominio per il servizio, che automatizza la configurazione del DNS per gli endpoint del consumer dei servizi. Se configuri un nome di dominio, la stessa entità IAM che pubblica il servizio deve verificare di disporre delle autorizzazioni di proprietario per il dominio in Google Search Console. Se configuri un nome di dominio, ma non ne sei il proprietario, la pubblicazione del servizio non riesce. Per verificare la proprietà, vai in Google Search Console.

    Il nome di dominio specificato nell'allegato al servizio può essere un sottodominio del dominio che verifichi. Ad esempio, puoi verificare example.com e quindi creare un collegamento a un servizio con il nome di dominio us-west1.p.example.com.

Crea un bilanciatore del carico supportato

Per ospitare il servizio, crea uno dei seguenti bilanciatori del carico in una rete VPC del producer di servizi:

Per informazioni sulle configurazioni supportate per ogni tipo di bilanciatore del carico, consulta Funzionalità e compatibilità.

Puoi associare ogni collegamento al servizio alla regola di forwarding di un singolo bilanciatore del carico. Non puoi associare più collegamenti ai servizi alla stessa regola di forwarding.

La versione IP della regola di forwarding del bilanciatore del carico (IPv4 o IPv6) influisce sui consumer che possono connettersi al servizio pubblicato. Le regole di forwarding IPv6 sono disponibili in Anteprima. Per maggiori informazioni, consulta la pagina Traduzione della versione IP.

Per i bilanciatori del carico di rete proxy interni regionali, i backend possono trovarsi in Google Cloud, in altri cloud, in un ambiente on-premise o in qualsiasi combinazione di queste località.

Puoi anche pubblicare su Google Kubernetes Engine un servizio ospitato su un bilanciatore del carico di rete passthrough interno. Questa configurazione, inclusa la configurazione del bilanciatore del carico e del collegamento al servizio, è descritta in Creare un bilanciatore del carico di rete passthrough interno con Private Service Connect nella documentazione di GKE.

Crea una subnet per Private Service Connect

Crea una o più subnet dedicate da utilizzare con Private Service Connect. Se utilizzi la console Google Cloud per pubblicare un servizio, puoi creare le subnet durante la procedura.

Se devi rendere disponibili più indirizzi IP per un servizio esistente, consulta Aggiungere o rimuovere subnet da un servizio pubblicato.

Puoi anche creare una subnet Private Service Connect in un progetto host VPC condiviso.

Crea la subnet nella stessa regione del bilanciatore del carico del servizio.

Non puoi convertire una subnet normale in una subnet Private Service Connect.

Se vuoi pubblicare un servizio che gestisce il traffico IPv6 (anteprima), devi utilizzare subnet a doppio stack.

Console

  1. Nella console Google Cloud, vai alla pagina Reti VPC.

    Vai a Reti VPC

  2. Fai clic sul nome di una rete VPC per visualizzare la pagina Dettagli della rete VPC.

  3. Fai clic su Subnet.

  4. Fai clic su Aggiungi subnet. Nel riquadro visualizzato, procedi nel seguente modo:

    1. Specifica un nome.
    2. Seleziona una Regione.
    3. Nella sezione Finalità, seleziona Private Service Connect.
    4. Seleziona un tipo di stack IP.
    5. Inserisci un intervallo IPv4. Ad esempio, 10.10.10.0/24.
    6. Fai clic su Aggiungi.

gcloud

gcloud compute networks subnets create SUBNET_NAME \
    --network=NETWORK_NAME \
    --region=REGION \
    --stack-type=STACK_TYPE \
    --range=SUBNET_RANGE \
    --purpose=PRIVATE_SERVICE_CONNECT

Sostituisci quanto segue:

  • SUBNET_NAME: il nome da assegnare alla subnet.

  • NETWORK_NAME: il nome del VPC per la nuova subnet.

  • REGION: la regione per la nuova subnet. Deve essere la stessa regione del servizio che pubblichi.

  • STACK_TYPE: il tipo di stack della subnet, che può essere IPV4_ONLY o IPV4_IPV6. Il valore predefinito è IPV4_ONLY.

  • SUBNET_RANGE: l'intervallo di indirizzi IPv4 da utilizzare per la subnet, ad esempio 10.10.10.0/24.

API

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks

{
  "ipCidrRange": "SUBNET_RANGE",
  "name": "SUBNET_NAME",
  "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
  "purpose": "PRIVATE_SERVICE_CONNECT",
  "stackType": "STACK_TYPE"
}

Sostituisci quanto segue:

  • PROJECT_ID: il progetto per la subnet.

  • REGION: la regione per la nuova subnet. Deve essere la stessa regione del servizio che pubblichi.

  • SUBNET_RANGE: l'intervallo di indirizzi IPv4 da utilizzare per la subnet. Ad esempio, 10.10.10.0/24.

  • SUBNET_NAME: il nome da assegnare alla subnet.

  • NETWORK_NAME: il nome della rete VPC per la nuova subnet.

  • STACK_TYPE: il tipo di stack della subnet, che può essere IPV4_ONLY o IPV4_IPV6.

Configura le regole firewall

e configurare regole firewall per consentire il traffico tra gli endpoint o i backend e il collegamento al servizio. Le richieste dei client provengono da località diverse a seconda del tipo di Private Service Connect.

Tipo Private Service Connect Intervalli di indirizzi IP per il traffico client Dettagli
Endpoint (basato su una regola di forwarding) Gli intervalli di indirizzi IP delle subnet Private Service Connect associate al servizio. Se utilizzi la rete predefinita, la regola default-allow-internal precompilata consente questo traffico, a meno che non esista una regola di priorità più elevata che lo blocca.
Backend (basato su un bilanciatore del carico delle applicazioni esterno globale)
  • 130.211.0.0/22
  • 35.191.0.0/16
I bilanciatori del carico delle applicazioni esterni globali sono implementati sui Google Front End (GFE), che utilizzano questi intervalli di indirizzi IP.

Se la configurazione del firewall non consente già il traffico dal tipo di endpoint appropriato, configura le regole del firewall per consentirlo.

La configurazione di esempio che segue consente di creare regole firewall VPC per consentire il traffico dagli intervalli di indirizzi IP dei client alle VM di backend nel bilanciatore del carico del servizio del producer. Questa configurazione presuppone che le VM di backend siano state configurate con un tag di rete.

Esempio di regola in entrata:

gcloud compute firewall-rules create NAME \
    --network=NETWORK_NAME \
    --direction=ingress \
    --action=allow \
    --target-tags=TAG \
    --source-ranges=CLIENT_IP_RANGES_LIST \
    --rules=RULES_LIST

Sostituisci quanto segue:

  • NAME: il nome della regola firewall.

  • NETWORK_NAME: la rete che contiene il servizio e la subnet Private Service Connect.

  • TAG: il tag di destinazione applicato alle VM di backend nel bilanciatore del carico del servizio producer.

  • CLIENT_IP_RANGES_LIST: intervalli di indirizzi IP da cui proviene il traffico client. Per ulteriori informazioni, consulta la tabella precedente.

  • RULES_LIST: un elenco separato da virgole di protocolli e porte di destinazione a cui si applica la regola. Ad esempio: tcp,udp.

Esempio di regola in uscita:

gcloud compute firewall-rules create NAME \
    --network=NETWORK_NAME \
    --direction=egress \
    --action=allow \
    --target-tags=TAG \
    --destination-ranges=CLIENT_IP_RANGES_LIST \
    --rules=RULES_LIST

Sostituisci quanto segue:

  • NAME: il nome della regola firewall.

  • NETWORK_NAME: la rete che contiene il servizio e la subnet Private Service Connect.

  • TAG: il tag di destinazione applicato alle VM di backend nel bilanciatore del carico del servizio producer.

  • CLIENT_IP_RANGES_LIST: intervalli di indirizzi IP da cui proviene il traffico client. Per ulteriori informazioni, consulta la tabella precedente.

  • RULES_LIST: un elenco separato da virgole di protocolli e porte di destinazione a cui si applica la regola. Ad esempio: tcp,udp.

Per ulteriori informazioni sulla configurazione delle regole firewall VPC, consulta Regole firewall VPC. Per configurare regole firewall gerarchiche per consentire questo traffico, consulta Criteri firewall gerarchici.

Pubblica un servizio

Per pubblicare un servizio, devi creare il collegamento a un servizio. Puoi rendere disponibile il servizio in due modi:

Crea il collegamento al servizio nella stessa regione del bilanciatore del carico del servizio.

Ogni collegamento al servizio può puntare a una o più subnet Private Service Connect, ma una subnet Private Service Connect non può essere utilizzata in più di un collegamento al servizio.

Pubblicare un servizio con approvazione automatica

Utilizza queste istruzioni per pubblicare un servizio e consentire automaticamente a qualsiasi consumer di connettersi al servizio. Se vuoi approvare le connessioni dei consumatori in modo esplicito, consulta la pagina relativa alla pubblicazione di un servizio con approvazione esplicita.

Quando pubblichi un servizio, ne crei il collegamento. I consumer del servizio utilizzano i dettagli del collegamento al servizio per connettersi al servizio.

Se desideri visualizzare le informazioni sulla connessione dei consumatori, puoi abilitare il protocollo PROXY sui servizi supportati. Per informazioni sui servizi supportati, vedi Funzionalità e compatibilità. Per ulteriori informazioni sul protocollo PROXY, consulta Informazioni sulla connessione consumer.

Puoi associare subnet a stack singolo o doppio allo stesso collegamento ai servizi. Se il bilanciatore del carico è configurato per il traffico IPv6 (anteprima), devi utilizzare subnet a doppio stack.

Quando pubblichi un servizio con approvazione automatica, il limite di connessioni propagate si applica a ogni progetto consumer che si connette al collegamento al servizio.

Console

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

    Vai a Private Service Connect

  2. Fai clic sulla scheda Servizi pubblicati.

  3. Fai clic su Pubblica servizio.

  4. Seleziona il tipo di bilanciatore del carico per il servizio che vuoi pubblicare:

    • Bilanciatore del carico di rete passthrough interno
    • Bilanciatore del carico di rete proxy interno regionale
    • Bilanciatore del carico delle applicazioni interno regionale
  5. Seleziona il bilanciatore del carico interno che ospita il servizio che vuoi pubblicare. I campi relativi a rete e regione vengono compilati con i dettagli del bilanciatore del carico interno selezionato.

    Gli amministratori dei progetti di servizio possono selezionare un bilanciatore del carico interno con un indirizzo IP di una rete VPC condivisa. Per maggiori informazioni, vedi VPC condiviso.

  6. Se richiesto, seleziona la Regola di forwarding associata al servizio che vuoi pubblicare.

  7. In Nome servizio, inserisci un nome per il collegamento al servizio.

  8. Seleziona una o più subnet di Private Service Connect per il servizio. L'elenco viene compilato con le subnet della rete VPC del bilanciatore del carico interno selezionato, incluse quelle condivise con un progetto di servizio tramite VPC condiviso.

    Se il collegamento al servizio utilizza un bilanciatore del carico interno con un indirizzo IP di una rete VPC condiviso, devi selezionare una subnet condivisa dalla stessa rete VPC condiviso.

    Se vuoi aggiungere una nuova subnet, puoi crearne una:

    1. Fai clic su Prenota nuova subnet
    2. Inserisci un Nome e una Descrizione facoltativa per la subnet.
    3. Seleziona una regione per la subnet.
    4. Seleziona un tipo di stack IP.
    5. Inserisci l'intervallo IPv4 da utilizzare per la subnet e fai clic su Aggiungi.
  9. Se vuoi visualizzare le informazioni sulla connessione del consumer, seleziona Utilizza protocollo proxy.

  10. Seleziona Accetta automaticamente tutte le connessioni.

  11. Se vuoi disabilitare la riconciliazione delle connessioni, deseleziona la casella di controllo Abilita riconciliazione delle connessioni.

  12. (Facoltativo) Fai clic su Configurazione avanzata, quindi:

    1. Se vuoi configurare un nome di dominio, inserisci un Nome di dominio, includendo un punto finale.

      Il formato consigliato per il nome di dominio è REGION.p.DOMAIN.

      Il nome del dominio deve essere di tua proprietà. Per ulteriori informazioni, consulta la sezione Configurazione DNS.

    2. Inserisci un limite di connessioni NCC propagate. Se non specificato, il valore predefinito è 250.

  13. Fai clic su Aggiungi servizio.

gcloud

gcloud compute service-attachments create ATTACHMENT_NAME \
    --region=REGION \
    --producer-forwarding-rule=RULE_NAME \
    --connection-preference=ACCEPT_AUTOMATIC \
    --nat-subnets=PSC_SUBNET_LIST \
    [ --propagated-connection-limit=PROPAGATED_CONNECTION_LIMIT ] \
    [ --enable-proxy-protocol ] \
    [ --domain-names=DOMAIN_NAME ]

Sostituisci quanto segue:

  • ATTACHMENT_NAME: il nome da assegnare al collegamento del servizio.

  • REGION: la regione per il collegamento del nuovo servizio. Deve essere la stessa regione del servizio che pubblichi.

  • RULE_NAME: il nome della regola di forwarding associata al servizio che stai pubblicando.

    Gli amministratori dei progetti di servizio possono specificare la regola di forwarding di un bilanciatore del carico interno che ha un indirizzo IP da una rete VPC condivisa. Per maggiori informazioni, vedi VPC condiviso.

  • PSC_SUBNET_LIST: un elenco separato da virgole di uno o più nomi di subnet da utilizzare con il collegamento al servizio.

    Se stai creando un collegamento a un servizio con una regola di forwarding che ha un indirizzo IP da una rete VPC condiviso, utilizza le subnet condivise dalla stessa rete VPC condiviso. Per ogni subnet condivisa, specifica l'URI completo della risorsa, ad esempio --nat-subnets=projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET.

  • PROPAGATED_CONNECTION_LIMIT: il limite di connessioni propagate per progetto. Il valore predefinito è 250.

  • DOMAIN_NAME: un nome di dominio DNS per il servizio, incluso un punto finale. Formato consigliato: REGION.p.DOMAIN.

    Per ulteriori informazioni, consulta la sezione Configurazione DNS.

API

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments
{
  "name": "ATTACHMENT_NAME",
  "connectionPreference": "ACCEPT_AUTOMATIC",
  "targetService": "RULE_URI",
  "enableProxyProtocol": false,
  "natSubnets": [
    "PSC_SUBNET_1_URI",
    "PSC_SUBNET_2_URI"
  ],
  "propagatedConnectionLimit": "PROPAGATED_CONNECTION_LIMIT",
  "domainNames": [
    "DOMAIN_NAME"
  ]
}

Sostituisci quanto segue:

  • PROJECT_ID: il progetto per il collegamento al servizio.

  • REGION: la regione per il collegamento del nuovo servizio. Deve essere la stessa regione del servizio che pubblichi.

  • ATTACHMENT_NAME: il nome da assegnare al collegamento del servizio.

  • RULE_URI: l'URI della regola di forwarding associata al servizio che stai pubblicando.

    Gli amministratori dei progetti di servizio possono specificare la regola di forwarding di un bilanciatore del carico interno che ha un indirizzo IP da una rete VPC condivisa. Per maggiori informazioni, vedi VPC condiviso.

  • PSC_SUBNET_1_URI e PSC_SUBNET_2_URI: gli URI della subnet da utilizzare per il collegamento al servizio. Puoi specificare una o più subnet per URI.

    Se stai creando un collegamento a un servizio con una regola di forwarding che ha un indirizzo IP da una rete VPC condiviso, utilizza le subnet condivise dalla stessa rete VPC condiviso.

  • DOMAIN_NAME: un nome di dominio DNS per il servizio, incluso un punto finale. Formato consigliato: REGION.p.DOMAIN.

    Per ulteriori informazioni, consulta la sezione Configurazione DNS.

  • PROPAGATED_CONNECTION_LIMIT: il limite di connessioni propagate per progetto. Il valore predefinito è 250.

Pubblicare un servizio con approvazione esplicita

Segui queste istruzioni per pubblicare un servizio se vuoi approvare esplicitamente i consumer prima che possano connettersi al servizio. Se vuoi approvare automaticamente le connessioni ai consumatori, consulta la sezione sulla pubblicazione di un servizio con approvazione automatica.

Quando pubblichi un servizio, ne crei il collegamento. I consumer del servizio utilizzano i dettagli del collegamento al servizio per connettersi al servizio.

Ogni collegamento al servizio ha una lista di accettazione dei consumer e una lista rifiutata dei consumer, utilizzate per determinare quali endpoint possono connettersi al servizio. Un collegamento a un servizio dato può utilizzare progetti o reti in questi elenchi, ma non entrambi. La specifica dei consumer per cartella non è supportata.

Se passi dall'accettazione dei consumatori in base al progetto all'accettazione dei consumatori in base alla rete o viceversa, procedi nel seguente modo:

  • Sostituire tutte le reti o tutti i progetti approvati in un'unica operazione.
  • Se devi fornire lo stesso accesso di prima, assicurati che i nuovi elenchi di accettazione e rifiuto siano equivalenti ai precedenti.

Se aggiungi un progetto o una rete sia all'elenco di accettazione che a quello di rifiuto, le richieste di connessione dal progetto o dalla rete vengono rifiutate.

Se gli elenchi di accettazione e rifiuto del consumer fanno riferimento a progetti, il limite di connessioni propagate si applica ai progetti di consumer. Se gli elenchi di accettazione e rifiuto dei consumer fanno riferimento a reti VPC, il limite di connessioni propagate si applica alle reti VPC consumer.

Console

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

    Vai a Private Service Connect

  2. Fai clic sulla scheda Servizi pubblicati.

  3. Fai clic su Pubblica servizio.

  4. Seleziona il tipo di bilanciatore del carico per il servizio che vuoi pubblicare:

    • Bilanciatore del carico di rete passthrough interno
    • Bilanciatore del carico di rete proxy interno regionale
    • Bilanciatore del carico delle applicazioni interno regionale
  5. Seleziona il bilanciatore del carico interno che ospita il servizio che vuoi pubblicare. I campi relativi a rete e regione vengono compilati con i dettagli del bilanciatore del carico interno selezionato.

    Gli amministratori dei progetti di servizio possono selezionare un bilanciatore del carico interno con un indirizzo IP di una rete VPC condivisa. Per maggiori informazioni, vedi VPC condiviso.

  6. Se richiesto, seleziona la regola di forwarding associata al servizio che vuoi pubblicare.

  7. In Nome servizio, inserisci un nome per il collegamento al servizio.

  8. Seleziona una o più subnet di Private Service Connect per il servizio. L'elenco viene compilato con le subnet della rete VPC del bilanciatore del carico interno selezionato, incluse quelle condivise con un progetto di servizio tramite VPC condiviso.

    Se il collegamento al servizio utilizza un bilanciatore del carico interno con un indirizzo IP di una rete VPC condiviso, devi selezionare una subnet condivisa dalla stessa rete VPC condiviso.

    Se vuoi aggiungere una nuova subnet, puoi crearne una:

    1. Fai clic su Prenota nuova subnet
    2. Inserisci un Nome e una Descrizione facoltativa per la subnet.
    3. Seleziona una regione per la subnet.
    4. Seleziona un tipo di stack IP.
    5. Inserisci l'intervallo IPv4 da utilizzare per la subnet e fai clic su Aggiungi.
  9. Se vuoi visualizzare le informazioni sulla connessione del consumer, seleziona Utilizza protocollo proxy.

  10. Se vuoi accettare connessioni per i progetti selezionati, seleziona Accetta le connessioni per i progetti selezionati.

    1. Per ogni progetto da cui vuoi accettare connessioni, segui questi passaggi:
      1. Fai clic su Aggiungi progetto accettato, quindi inserisci quanto segue:
        • L'ID o il numero del progetto da cui vuoi accettare connessioni.
        • Un limite di connessione per specificare il numero massimo di endpoint che possono connettersi dal progetto specificato.
    2. (Facoltativo) Per ogni progetto da cui vuoi rifiutare esplicitamente le connessioni, fai clic su Aggiungi progetto rifiutato e inserisci l'ID o il numero di progetto.
  11. Se vuoi accettare connessioni per le reti selezionate, seleziona Accetta connessioni per le reti selezionate.

    1. Per ogni rete da cui vuoi accettare connessioni, segui questi passaggi:
      1. Fai clic su Aggiungi rete accettata, quindi inserisci quanto segue:
        • L'ID o il numero del progetto padre della rete da cui vuoi accettare le connessioni.
        • Il nome della rete da cui vuoi accettare connessioni.
        • Un limite di connessione per specificare il numero massimo di endpoint che possono connettersi dalla rete specificata.
    2. (Facoltativo) Per ogni rete da cui vuoi rifiutare esplicitamente le connessioni, fai clic su Aggiungi rete rifiutata e inserisci l'ID o il numero di progetto principale della rete e il nome della rete.
  12. Se vuoi disabilitare la riconciliazione delle connessioni, deseleziona la casella di controllo Abilita riconciliazione delle connessioni.

  13. (Facoltativo) Fai clic su Configurazione avanzata, quindi:

    1. Se vuoi configurare un nome di dominio, inserisci un Nome di dominio, includendo un punto finale.

      Il formato consigliato per il nome di dominio è REGION.p.DOMAIN.

      Il nome del dominio deve essere di tua proprietà. Per ulteriori informazioni, consulta la sezione Configurazione DNS.

    2. Inserisci un limite di connessioni NCC propagate. Se non specificato, il valore predefinito è 250.

  14. Fai clic su Aggiungi servizio.

gcloud

gcloud compute service-attachments create ATTACHMENT_NAME \
    --region=REGION \
    --producer-forwarding-rule=RULE_NAME \
    --connection-preference=ACCEPT_MANUAL \
    --consumer-accept-list=ACCEPTED_PROJECT_OR_NETWORK_1=LIMIT_1,ACCEPTED_PROJECT_OR_NETWORK_2=LIMIT_2 \
    --consumer-reject-list=REJECTED_PROJECT_OR_NETWORK_1,REJECTED_PROJECT_OR_NETWORK_2 \
    --nat-subnets=PSC_SUBNET_LIST \
    [ --propagated-connection-limit=PROPAGATED_CONNECTION_LIMIT ] \
    [ --enable-proxy-protocol ] \
    [ --domain-names=DOMAIN_NAME ] \
    [ --reconcile-connections ]

Sostituisci quanto segue:

  • ATTACHMENT_NAME: il nome da assegnare al collegamento del servizio.

  • REGION: la regione per il collegamento del nuovo servizio. Deve essere la stessa regione del servizio che pubblichi.

  • RULE_NAME: il nome della regola di forwarding associata al servizio che stai pubblicando.

    Gli amministratori dei progetti di servizio possono specificare la regola di forwarding di un bilanciatore del carico interno che ha un indirizzo IP da una rete VPC condivisa. Per maggiori informazioni, vedi VPC condiviso.

  • ACCEPTED_PROJECT_OR_NETWORK_1 e ACCEPTED_PROJECT_OR_NETWORK_2: gli ID progetto, i nomi dei progetti o gli URI di rete da accettare. --consumer-accept-list è facoltativo e può contenere uno o più progetti o reti, ma non una combinazione di entrambi i tipi.

  • LIMIT_1 e LIMIT_2: i limiti di connessione per i progetti o le reti. Il limite di connessioni è il numero di endpoint consumer o backend che possono connettersi a questo servizio. Per ogni progetto o rete accettato deve essere configurato un limite di connessioni.

  • REJECTED_PROJECT_OR_NETWORK_1 e REJECTED_PROJECT_OR_NETWORK_2: gli ID progetto, i nomi dei progetti o gli URI di rete da rifiutare. --consumer-reject-list è facoltativo e può contenere uno o più progetti o reti, ma non una combinazione di entrambi i tipi.

  • PSC_SUBNET_LIST: un elenco separato da virgole di uno o più nomi di subnet da utilizzare con il collegamento al servizio.

    Se stai creando un collegamento a un servizio con una regola di forwarding che ha un indirizzo IP da una rete VPC condiviso, utilizza le subnet condivise dalla stessa rete VPC condiviso. Per ogni subnet condivisa, specifica l'URI completo della risorsa, ad esempio --nat-subnets=projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET.

  • PROPAGATED_CONNECTION_LIMIT: il limite di connessioni propagate. Il valore predefinito è 250.

  • DOMAIN_NAME: un nome di dominio DNS per il servizio, incluso un punto finale. Formato consigliato: REGION.p.DOMAIN.

    Per ulteriori informazioni, consulta la sezione Configurazione DNS.

API

  • Per pubblicare un servizio e approvare esplicitamente i consumer in base al progetto, invia la richiesta seguente:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments
    {
      "name": "ATTACHMENT_NAME",
      "region": "REGION",
      "connectionPreference": "ACCEPT_MANUAL",
      "targetService": "RULE_URI",
      "enableProxyProtocol": false,
      "natSubnets": [
        "PSC_SUBNET_1_URI",
        "PSC_SUBNET_2_URI"
      ],
      "consumerRejectLists": [
        "REJECTED_PROJECT_1",
        "REJECTED_PROJECT_2"
      ],
      "consumerAcceptLists": [
        {
          "projectIdOrNum": "ACCEPTED_PROJECT_1",
          "connectionLimit": "LIMIT_1"
        },
        {
          "projectIdOrNum": "ACCEPTED_PROJECT_2",
          "connectionLimit": "LIMIT_2"
        }
      ],
      "propagatedConnectionLimit": "PROPAGATED_CONNECTION_LIMIT",
      "domainNames": [
        "DOMAIN_NAME"
      ]
    }
    

    Sostituisci quanto segue:

    • PROJECT_ID: il progetto per il collegamento al servizio.

    • REGION: la regione per il collegamento al servizio.

    • ATTACHMENT_NAME: il nome da assegnare al collegamento del servizio.

    • RULE_URI: l'URI della regola di forwarding associata al servizio che stai pubblicando.

      Gli amministratori dei progetti di servizio possono specificare la regola di forwarding di un bilanciatore del carico interno che ha un indirizzo IP da una rete VPC condivisa. Per maggiori informazioni, vedi VPC condiviso.

    • PSC_SUBNET_1_URI e PSC_SUBNET_2_URI: gli URI della subnet da utilizzare per il collegamento al servizio. Puoi specificare una o più subnet per URI.

      Se stai creando un collegamento a un servizio con una regola di forwarding che ha un indirizzo IP da una rete VPC condiviso, utilizza le subnet condivise dalla stessa rete VPC condiviso.

    • REJECTED_PROJECT_1 e REJECTED_PROJECT_2: gli ID progetto o il numero dei progetti da rifiutare. consumerRejectLists è facoltativo e può contenere uno o più progetti.

    • ACCEPTED_PROJECT_1 e ACCEPTED_PROJECT_2: gli ID o i numeri dei progetti da accettare. consumerAcceptLists è facoltativo e può contenere uno o più progetti.

    • LIMIT_1 e LIMIT_2: i limiti di connessione per i progetti. Il limite di connessioni è il numero di endpoint o backend consumer che possono connettersi a questo servizio. Per ogni progetto accettato deve essere configurato un limite di connessioni.

    • DOMAIN_NAME: un nome di dominio DNS per il servizio, incluso un punto finale. Formato consigliato: REGION.p.DOMAIN. Per maggiori informazioni, consulta Configurazione DNS.
  • Per pubblicare un servizio e approvare esplicitamente i consumer in base alla rete VPC, invia la richiesta seguente:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments
    {
      "name": "ATTACHMENT_NAME",
      "region": "REGION",
      "connectionPreference": "ACCEPT_MANUAL",
      "targetService": "RULE_URI",
      "enableProxyProtocol": false,
      "natSubnets": [
        "PSC_SUBNET_1_URI",
        "PSC_SUBNET_2_URI"
      ],
      "consumerRejectLists": [
        "projects/REJECTED_PROJECT_ID_1/global/networks/REJECTED_NETWORK_1",
        "projects/REJECTED_PROJECT_ID_2/global/networks/REJECTED_NETWORK_2"
      ],
      "consumerAcceptLists": [
        {
          "networkUrl": "projects/ACCEPTED_PROJECT_ID_1/global/networks/ACCEPTED_NETWORK_1",
          "connectionLimit": "LIMIT_1"
        },
        {
          "networkUrl": "projects/ACCEPTED_PROJECT_ID_2/global/networks/ACCEPTED_NETWORK_2",
          "connectionLimit": "LIMIT_2"
        }
      ],
      "propagatedConnectionLimit": PROPAGATED_CONNECTION_LIMIT,
      "domainNames": [
        "DOMAIN_NAME"
      ]
    }
    

    Sostituisci quanto segue:

    • REJECTED_PROJECT_ID_1 e REJECTED_PROJECT_ID_2: gli ID dei progetti padre delle reti da rifiutare. consumerRejectLists è facoltativo e può contenere una o più reti.
    • REJECTED_NETWORK_1 e REJECTED_NETWORK_2: i nomi delle reti da rifiutare.
    • ACCEPTED_PROJECT_ID_1 e ACCEPTED_PROJECT_ID_2: gli ID dei progetti padre delle reti che vuoi accettare. consumerAcceptLists è facoltativo e può contenere una o più reti.
    • ACCEPTED_NETWORK_1 e ACCEPTED_NETWORK_2: i nomi delle reti che vuoi accettare.
    • LIMIT_1 e LIMIT_2: i limiti di connessione per le reti. Il limite di connessioni è il numero di endpoint o backend consumer che possono connettersi a questo servizio. Per ogni progetto accettato deve essere configurato un limite di connessioni.
    • DOMAIN_NAME: un nome di dominio DNS per il servizio, incluso un punto finale. Formato consigliato: REGION.p.DOMAIN. Per maggiori informazioni, consulta Configurazione DNS.
  • Per pubblicare un servizio con la riconciliazione delle connessioni abilitata, invia una richiesta simile alle richieste precedenti, ma includi il seguente campo:

    {
      ...
      "reconcileConnections": true
      ...
    }
    

Visualizzare le informazioni di connessione del consumer

Per informazioni sulla visualizzazione delle informazioni sulla connessione dei consumer tramite il protocollo PROXY, consulta Visualizzazione delle informazioni sulla connessione dei consumatori.

Gestire le richieste di accesso a un servizio pubblicato

Se hai pubblicato un servizio con approvazione esplicita, puoi accettare o rifiutare le richieste di connessione da reti o progetti consumer. Per maggiori informazioni, consulta Gestire le richieste di accesso a un servizio pubblicato.

Puoi anche passare dall'accettazione automatica a quella esplicita del progetto per un servizio pubblicato. Per maggiori informazioni, vedi Modificare la preferenza di connessione per un servizio pubblicato

Aggiungi o rimuovi subnet da un servizio pubblicato

Puoi aggiungere o rimuovere subnet da un servizio pubblicato. Per maggiori informazioni, consulta Aggiungere o rimuovere subnet da un servizio pubblicato.

Elenca i servizi pubblicati

Puoi elencare tutti i servizi.

Console

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

    Vai a Private Service Connect

  2. Fai clic sulla scheda Servizi pubblicati.

    Vengono visualizzati i collegamenti al servizio Private Service Connect.

gcloud

  1. Elenca i collegamenti ai servizi.

    gcloud compute service-attachments list [--regions=REGION_LIST]
    

    Sostituisci quanto segue:

    • REGION_LIST: un elenco separato da virgole di una o più regioni per cui vuoi visualizzare i collegamenti ai servizi. Ad esempio, us-central1 o us-west1,us-central1.

API

Puoi visualizzare tutti i collegamenti ai servizi in una determinata regione o in tutte le regioni.

  • Visualizza tutti i collegamenti ai servizi in una regione:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments
    
  • Visualizza tutti i collegamenti ai servizi in tutte le regioni:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/serviceAttachments
    

    Sostituisci quanto segue:

    • PROJECT_ID: il progetto per il collegamento al servizio.

    • REGION: la regione per il collegamento al servizio.

    • ATTACHMENT_NAME: il nome del collegamento al servizio.

Visualizzare i dettagli di un servizio pubblicato

Puoi visualizzare i dettagli di configurazione di un servizio pubblicato. Puoi visualizzare alcuni dettagli della configurazione nella console Google Cloud, ad esempio l'URI del collegamento del servizio che i consumer del servizio devono connettere al tuo servizio. Per visualizzare tutti i dettagli, inclusi i valori pscConnectionId per i consumer del collegamento al servizio, utilizza Google Cloud CLI o l'API.

Console

Puoi visualizzare i dettagli di un servizio pubblicato. Il campo Collegamento del servizio contiene l'URI del collegamento al servizio.

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

    Vai a Private Service Connect

  2. Fai clic sulla scheda Servizi pubblicati.

  3. Fai clic sul servizio che vuoi visualizzare.

gcloud

Puoi visualizzare i dettagli di un servizio pubblicato. Il campo selfLink contiene l'URI del collegamento al servizio.

gcloud compute service-attachments describe \
    ATTACHMENT_NAME --region=REGION

API

Puoi visualizzare i dettagli di un servizio pubblicato. Il campo selfLink contiene l'URI del collegamento al servizio.

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

Sostituisci quanto segue:

  • PROJECT_ID: il progetto per il collegamento al servizio.

  • REGION: la regione per il collegamento al servizio.

  • ATTACHMENT_NAME: il nome del collegamento al servizio.

Elimina un servizio pubblicato

Puoi eliminare un servizio pubblicato, anche se sono presenti connessioni consumer al collegamento del servizio. L'eliminazione del servizio pubblicato rimuove solo il collegamento al servizio. Il bilanciatore del carico associato non viene eliminato. Quando elimini un servizio pubblicato, si applica quanto segue:

Console

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

    Vai a Private Service Connect

  2. Fai clic sulla scheda Servizi pubblicati.

  3. Fai clic sul servizio che vuoi eliminare.

  4. Fai clic su Elimina.

gcloud

gcloud compute service-attachments delete \
    ATTACHMENT_NAME --region=REGION

API

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME

Sostituisci quanto segue:

  • PROJECT_ID: il progetto per il collegamento al servizio.

  • REGION: la regione per il collegamento al servizio.

  • ATTACHMENT_NAME: il nome del collegamento al servizio.

Problemi noti

Disconnessioni dopo l'upgrade del provider Google per Terraform

Se hai utilizzato il provider Google per Terraform con versioni precedenti alla 4.76.0 per creare collegamenti ai servizi, non eseguire l'upgrade alle versioni dalla 4.76.0 alla 4.81.x. Quando esegui terraform apply dopo l'upgrade alle versioni da 4.76.0 a 4.81.x, Terraform potrebbe eliminare e ricreare involontariamente i collegamenti dei servizi e chiudere le connessioni Private Service Connect esistenti. I collegamenti ai servizi ricreati non ristabiliscono automaticamente le connessioni di Private Service Connect.

Se esegui l'upgrade alla versione 4.82.0 e poi esegui terraform apply, gli allegati dei servizi non vengono eliminati, ma l'impostazione riconcili connection (Connessioni di riconciliazione) è impostata su true. Se l'impostazione era precedentemente impostata su false, alcune connessioni Private Service Connect potrebbero chiudersi.

  • Upgrade al provider Google dalle versioni dalla 4.76.0 alla 4.81.x. In questo scenario, l'output di terraform plan include quanto segue:

    -/+ resource "google_compute_service_attachment" "SERVICE_NAME" {
      ...
            ~ reconcile_connections = false -> true # forces replacement
      ...
    

    Utilizza la soluzione alternativa per evitare questo problema.

  • Upgrade al provider Google versione 4.82.0. In questo scenario, l'output di terraform plan include quanto segue:

    ~ reconcile_connections = false -> true
    

    Se ignori questo avviso e applichi le modifiche, Terraform aggiorna il collegamento al servizio per attivare la riconciliazione delle connessioni. A seconda dello stato della connessione, la modifica da false a true potrebbe chiudere alcune connessioni esistenti. Per maggiori informazioni, consulta la sezione Riconciliazione della connessione.

    Utilizza la soluzione alternativa per evitare questo problema.

Soluzione alternativa

Ti consigliamo di eseguire l'upgrade del provider Google per Terraform alla versione 4.82.0 o successiva. Questa versione impedisce l'eliminazione e la ricreazione involontarie di collegamenti ai servizi.

Se non puoi eseguire l'upgrade immediatamente o se puoi eseguire l'upgrade, ma vuoi anche impedire a Terraform di modificare l'impostazione di riconciliazione della connessione, aggiorna la tua configurazione Terraform in modo da impostare esplicitamente l'impostazione di riconciliazione della connessione.

  1. Visualizza la configurazione dettagliata del collegamento al servizio e prendi nota dell'impostazione reconcileConnections.

    $ gcloud compute service-attachments describe SERVICE_NAME --region=REGION
    

    L'output include il campo reconcileConnections, che può essere true o false.

    reconcileConnections: false
    
  2. Aggiorna il file di configurazione Terraform per usare esplicitamente la stessa impostazione utilizzata nel collegamento al servizio.

    resource "google_compute_service_attachment" "SERVICE_NAME" {
      ...
      reconcile_connections    = false
    }
    

    Per una configurazione di esempio, consulta la pagina relativa alle Connessioni di riconciliazione dei collegamenti dei servizi su GitHub.

Aggiornamenti delle patch per i collegamenti ai servizi

Quando aggiorni il collegamento di un servizio utilizzando l'API PATCH, devi compilare tutti i campi per il collegamento al servizio nel corpo della richiesta, non solo i campi che stai aggiornando. Utilizza serviceAttachments.get per recuperare tutti i campi.

Risoluzione dei problemi

Errore durante l'aggiornamento del collegamento a un servizio

Se viene visualizzato il seguente messaggio di errore quando aggiorni il collegamento di un servizio, l'elenco di accettazione o di rifiuto potrebbe includere progetti eliminati: The resource PROJECT was not found.

Per risolvere il problema, rimuovi i progetti eliminati dalla configurazione del collegamento al servizio.

  1. Utilizza il comando gcloud compute service-attachments describe per visualizzare la configurazione del collegamento al servizio che vuoi modificare.

    • Per generare l'elenco di accettazione in un formato da utilizzare in un secondo momento per aggiornare il collegamento al servizio, segui questi passaggi:

      gcloud compute service-attachments describe ATTACHMENT_NAME \
        --region=REGION --flatten="consumerAcceptLists[]" \
        --format="csv[no-heading,separator='='](consumerAcceptLists.projectIdOrNum,consumerAcceptLists.connectionLimit)" \
        | xargs | sed -e 's/ /,/g'
      

      L'output della lista di accettazione è simile al seguente:

      PROJECT_1=LIMIT_1,PROJECT_2=LIMIT_2,PROJECT_3=LIMIT_3
      
    • Per visualizzare l'elenco dei messaggi rifiutati in un formato da utilizzare in un secondo momento per aggiornare il collegamento al servizio, segui questi passaggi:

      gcloud compute service-attachments describe ATTACHMENT_NAME \
        --region=REGION \
        --format="value[delimiter=','](consumerRejectLists[])"
      

      L'output dell'elenco di elementi rifiutati è simile al seguente:

      PROJECT_1,PROJECT_2,PROJECT_3
      
  2. Modifica l'output comando per rimuovere i progetti eliminati dalle liste di accettazione e da quelle di rifiuto.

  3. Aggiorna il collegamento al servizio per rimuovere i progetti eliminati.

    • Per aggiornare l'elenco di accettazione, procedi nel seguente modo:

      gcloud compute service-attachments update ATTACHMENT_NAME \
        --region=REGION \
        --consumer-accept-list=UPDATED_ACCEPT_LIST
      
    • Per aggiornare l'elenco di elementi rifiutati, procedi nel seguente modo:

      gcloud compute service-attachments update ATTACHMENT_NAME \
        --region=REGION \
        --consumer-reject-list=UPDATED_REJECT_LIST
      

La connettività non è stabilita

Se un consumer ha creato un endpoint o un backend che fa riferimento al collegamento del servizio, ma la connettività non è stata stabilita, controlla lo stato della connessione del collegamento al servizio. Lo stato della connessione potrebbe indicare i passaggi che puoi seguire per risolvere il problema.

Timeout delle connessioni con i consumatori

Se le connessioni dei consumatori scadono, controlla se il servizio richiede connessioni a lunga esecuzione. Il timeout per inattività della connessione stabilita TCP per Private Service Connect NAT è 20 minuti. Se il servizio ha bisogno di un timeout più lungo, potrebbe essere necessario apportare alcune modifiche alla configurazione per garantire che le connessioni non scadano. Per ulteriori informazioni, consulta le specifiche NAT.

Le connessioni propagate non vengono stabilite

Per informazioni sulla risoluzione dei problemi delle connessioni propagate, consulta Risolvere i problemi di Network Connectivity Center.