Pubblica i 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 utilizzando 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 ulteriori informazioni, consulta la sezione Funzionalità e compatibilità.

Ruoli

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

Prima di iniziare

Tipi di bilanciatori del carico supportati

Puoi ospitare il servizio utilizzando i seguenti bilanciatori del carico:

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

Puoi anche pubblicare un servizio ospitato su un bilanciatore del carico di rete passthrough interno su Google Kubernetes Engine. Questa configurazione, che include il bilanciatore del carico e la configurazione 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 hai bisogno di rendere disponibili altri 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.

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 rete VPC.

  3. Fai clic su Aggiungi subnet. Nel riquadro visualizzato:

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

gcloud

gcloud compute networks subnets create SUBNET_NAME \
    --network=NETWORK_NAME --region=REGION \
    --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 della nuova subnet. Deve trovarsi nella stessa regione del servizio che stai pubblicando.

  • SUBNET_RANGE: l'intervallo di indirizzi IP 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",
}

Sostituisci quanto segue:

  • PROJECT_ID: progetto per la subnet.

  • REGION: la regione della nuova subnet. Deve trovarsi nella stessa regione del servizio che stai pubblicando.

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

  • SUBNET_NAME: il nome da assegnare alla subnet.

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

Configura le regole firewall

Configura le regole del firewall per consentire il traffico tra gli endpoint o i backend e il collegamento al servizio. Le richieste 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 a questo servizio. Se utilizzi la rete predefinita, la regola default-allow-internal precompilata consente questo traffico, a meno che non sia presente una regola con priorità più elevata che lo blocca.
Backend (basato su un Application Load Balancer esterno globale)
  • 130.211.0.0/22
  • 35.191.0.0/16
I bilanciatori del carico delle applicazioni esterni globali sono implementati nei 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 consentirne l'accesso.

La configurazione di esempio seguente consente di creare regole firewall VPC per consentire il traffico dagli intervalli di indirizzi IP 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: gli intervalli di indirizzi IP da cui proviene il traffico client. Per saperne di più, 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: gli intervalli di indirizzi IP da cui proviene il traffico client. Per saperne di più, 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.

Pubblicare un servizio

Per pubblicare un servizio, devi creare il collegamento a un servizio. Puoi rendere il servizio disponibile 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 di Private Service Connect, ma una subnet di 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 a questo servizio. Se vuoi approvare esplicitamente le connessioni dei consumatori, vedi Pubblicazione di un servizio con approvazione esplicita.

Quando pubblichi un servizio, crei un collegamento a un servizio. I consumer dei servizi utilizzano i dettagli del collegamento al servizio per connettersi al servizio.

Se vuoi visualizzare le informazioni sulla connessione consumer, puoi abilitare il protocollo PROXY sui servizi supportati. Per informazioni sui servizi supportati, consulta Funzionalità e compatibilità. Per saperne di più sul protocollo PROXY, consulta Visualizzare le informazioni sulla connessione dei 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.

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

    I campi relativi a rete e regione vengono compilati con i dettagli del bilanciatore del carico interno selezionato.

  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 le subnet condivise con un progetto di servizio tramite il 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.

  9. Se vuoi visualizzare le informazioni sulla connessione consumer, seleziona Utilizza il protocollo proxy.

  10. Se vuoi configurare un nome di dominio, inserisci un Nome di dominio, incluso un punto finale.

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

    Devi essere il proprietario del nome di dominio. Per ulteriori informazioni, consulta la sezione Configurazione DNS.

  11. Seleziona Accetta automaticamente le connessioni.

  12. 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 \
    [ --enable-proxy-protocol ] \
    [ --domain-names=DOMAIN_NAME ]

Sostituisci quanto segue:

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

  • REGION: la regione per il nuovo collegamento al servizio. Deve trovarsi nella stessa regione del servizio che stai pubblicando.

  • 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 ulteriori informazioni, consulta VPC condiviso.

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

    Se stai creando un collegamento a un servizio con una regola di forwarding che ha un indirizzo IP di una rete VPC condiviso, utilizza le subnet condivise della 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.

  • 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",
  ],
  "domainNames": [
    "DOMAIN_NAME",
  ]
}

Sostituisci quanto segue:

  • PROJECT_ID: progetto per il collegamento al servizio.

  • REGION: la regione per il nuovo collegamento al servizio. Deve trovarsi nella stessa regione del servizio che stai pubblicando.

  • ATTACHMENT_NAME: il nome da assegnare al collegamento al 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 ulteriori informazioni, consulta 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 di una rete VPC condiviso, utilizza le subnet condivise della 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.

Pubblicare un servizio con approvazione esplicita

Segui queste istruzioni per pubblicare un servizio se vuoi approvare esplicitamente i consumatori prima che possano connettersi a questo servizio. Se vuoi approvare automaticamente le connessioni consumer, consulta la pagina relativa alla pubblicazione di un servizio con approvazione automatica.

Quando pubblichi un servizio, crei un collegamento a un servizio. I consumer dei servizi utilizzano i dettagli del collegamento al servizio per connettersi al servizio.

Ogni collegamento al servizio ha un elenco di accettazione dei consumatori e un elenco di rifiuti dei consumatori, che vengono utilizzati per determinare quali endpoint possono connettersi al servizio. Un determinato collegamento a un servizio 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:

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

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

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: Bilanciatore del carico TCP/UDP interno o Bilanciatore del carico HTTP(S) interno.

  5. Seleziona il Bilanciatore del carico interno che ospita il servizio che vuoi pubblicare.

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

    I campi relativi a rete e regione vengono compilati con i dettagli del bilanciatore del carico interno selezionato.

  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 le subnet condivise con un progetto di servizio tramite il 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.

  9. Se vuoi visualizzare le informazioni sulla connessione consumer, seleziona la casella di controllo Protocolli.

  10. Se vuoi configurare un nome di dominio, inserisci un Nome di dominio, incluso un punto finale.

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

    Devi essere il proprietario del nome di dominio. Per ulteriori informazioni, consulta la sezione Configurazione DNS.

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

    1. Per ogni progetto da cui vuoi accettare connessioni, procedi nel seguente modo:
      1. Fai clic su Aggiungi progetto accettato, quindi inserisci quanto segue:
        • L'ID o il numero del progetto da cui vuoi accettare le connessioni.
        • Un Limite di connessioni per specificare il numero massimo di endpoint del progetto specificato che possono connettersi.
    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.
  12. Se vuoi accettare connessioni per le reti selezionate, seleziona Accetta connessioni per le reti selezionate.

    1. Per ogni rete da cui vuoi accettare connessioni, procedi nel seguente modo:
      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 connessioni per specificare il numero massimo di endpoint della rete specificata che possono connettersi.
    2. (Facoltativo) Per ogni rete da cui vuoi rifiutare esplicitamente le connessioni, fai clic su Aggiungi rete rifiutata, quindi inserisci l'ID o il numero del progetto principale della rete e il nome della rete.
  13. Se vuoi disabilitare la riconciliazione delle connessioni, deseleziona la casella di controllo Abilita riconciliazione delle connessioni.

  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 \
    [--enable-proxy-protocol ] \
    [--domain-names=DOMAIN_NAME] \
    [--reconcile-connections]

Sostituisci quanto segue:

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

  • REGION: la regione per il nuovo collegamento al servizio. Deve trovarsi nella stessa regione del servizio che stai pubblicando.

  • 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 ulteriori informazioni, consulta 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 o backend consumer 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 di questo servizio.

    Se stai creando un collegamento a un servizio con una regola di forwarding che ha un indirizzo IP di una rete VPC condiviso, utilizza le subnet condivise della 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.

  • 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 seguente richiesta:

    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"
        }
      ],
      "domainNames": [
        "DOMAIN_NAME"
      ]
    }
    

    Sostituisci quanto segue:

    • PROJECT_ID: progetto per il collegamento al servizio.

    • REGION: la regione per il collegamento al servizio.

    • ATTACHMENT_NAME: il nome da assegnare al collegamento al 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 ulteriori informazioni, consulta 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 di una rete VPC condiviso, utilizza le subnet condivise della stessa rete VPC condiviso.

    • REJECTED_PROJECT_1 e REJECTED_PROJECT_2: gli ID o il numero di 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 ulteriori informazioni, consulta la sezione Configurazione DNS.

  • Per pubblicare un servizio e approvare esplicitamente i consumer in base alla rete VPC, invia la seguente richiesta:

    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"
        }
      ],
      "domainNames": [
        "DOMAIN_NAME"
      ]
    }
    

    Sostituisci quanto segue:

    • REJECTED_PROJECT_ID_1 e REJECTED_PROJECT_ID_2: gli ID dei progetti principali delle reti che vuoi rifiutare. consumerRejectLists è facoltativo e può contenere una o più reti.
    • REJECTED_NETWORK_1 e REJECTED_NETWORK_2: i nomi delle reti che vuoi rifiutare.
    • ACCEPTED_PROJECT_ID_1 e ACCEPTED_PROJECT_ID_2: gli ID dei progetti principali 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.
  • 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 dei consumatori

Per impostazione predefinita, Private Service Connect converte l'indirizzo IP di origine del consumer in un indirizzo in una delle subnet di Private Service Connect nella rete VPC del producer di servizi. Se vuoi visualizzare l'indirizzo IP di origine del consumer, puoi abilitare il protocollo PROXY.

Non tutti i servizi supportano il protocollo PROXY. Per ulteriori informazioni, consulta Funzionalità e compatibilità.

Se il protocollo PROXY è abilitato, puoi ottenere l'indirizzo IP di origine del consumer e l'ID connessione PSC (pscConnectionId) dall'intestazione del protocollo PROXY.

Quando abiliti il protocollo PROXY per il collegamento a un servizio, la modifica si applica solo alle nuove connessioni. Le connessioni esistenti non includono l'intestazione del protocollo PROXY.

Se abiliti il protocollo PROXY, consulta la documentazione del software del server web di backend per informazioni sull'analisi e sull'elaborazione delle intestazioni del protocollo PROXY in entrata nei payload TCP della connessione client. Se il protocollo PROXY è abilitato sul collegamento al servizio, ma il server web di backend non è configurato per elaborare le intestazioni del protocollo PROXY, le richieste web potrebbero non essere corrette. Se le richieste non sono formattate correttamente, il server non può interpretarla.

pscConnectionId è codificato nell'intestazione del protocollo PROXY in formato Type-Length-Value (TLV).

Campo Lunghezza campo Valore campo
Tipo 1 byte 0xE0 (PP2_TYPE_GCP)
Lunghezza 2 byte 0x8 (8 byte)
Valore 8 byte pscConnectionId a 8 byte nell'ordine di rete

Puoi visualizzare pscConnectionId a 8 byte dalla regola di forwarding consumer o dalla allegato del servizio producer.

pscConnectionId è univoco a livello globale per tutte le connessioni attive in un determinato momento. Tuttavia, nel tempo, un pscConnectionId potrebbe essere riutilizzato in questi scenari:

  • All'interno di una determinata rete VPC, se elimini un endpoint (regola di forwarding) e crei un nuovo endpoint utilizzando lo stesso indirizzo IP, potrebbe essere utilizzato lo stesso pscConnectionId.

  • Se elimini una rete VPC che conteneva endpoint (regole di forwarding), dopo un periodo di attesa di sette giorni, il pscConnectionId utilizzato per questi endpoint potrebbe essere utilizzato per un endpoint diverso in un'altra rete VPC.

Puoi utilizzare pscConnectionId per il debug e tracciare l'origine dei pacchetti.

Inoltre, dal allegato del servizio producer è disponibile un ID collegamento PSC a 16 byte. L'ID collegamento PSC è un ID univoco globale che identifica un collegamento al servizio Private Service Connect. Puoi utilizzare l'ID allegato PSC per visibilità e debug. L'ID collegamento PSC non è incluso nell'intestazione del protocollo PROXY.

Gestire le richieste di accesso a un servizio pubblicato

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

Puoi anche passare dall'accettazione automatica a quella esplicita di un progetto per un servizio pubblicato. Per maggiori informazioni, consulta 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 saperne di più, consulta Aggiungere o rimuovere subnet da un servizio pubblicato.

Elenca 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 dei servizi.

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

    Sostituisci quanto segue:

    • REGION_LIST: un elenco separato da virgole di una o più aree geografiche 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: 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 per un servizio pubblicato

Puoi visualizzare i dettagli di configurazione di un servizio pubblicato. Puoi visualizzare alcuni dettagli di configurazione nella console Google Cloud, ad esempio l'URI di collegamento del servizio che i consumer di servizi devono connettersi al 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 al 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: progetto per il collegamento al servizio.

  • REGION: la regione per il collegamento al servizio.

  • ATTACHMENT_NAME: il nome del collegamento al servizio.

Eliminare un servizio pubblicato

Puoi eliminare un servizio pubblicato anche se esistono connessioni consumer al collegamento al 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: 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 aver eseguito l'upgrade alle versioni dalla 4.76.0 alla 4.81.x, Terraform potrebbe eliminare e ricreare involontariamente gli allegati 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, i collegamenti ai servizi non vengono eliminati, ma l'impostazione di conciliazione dei collegamenti viene impostata su true. Se in precedenza l'impostazione era impostata su false, alcune connessioni di Private Service Connect potrebbero chiudersi.

  • Upgrade alle versioni del provider Google dalla versione 4.76.0 alla versione 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 alle versioni del provider Google 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 ulteriori informazioni, consulta Riconciliazione delle connessioni.

    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 involontaria dei collegamenti ai servizi.

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

  1. Visualizza la configurazione dettagliata per il 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 utilizzare in modo esplicito 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 Reconcile Connections (Collegamento del servizio) 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 del 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 rifiuto potrebbe includere progetti eliminati: The resource PROJECT was not found.

Rimuovi i progetti eliminati dalla configurazione del collegamento al servizio per risolvere il problema.

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

    • Per generare l'elenco delle accettate in un formato che puoi utilizzare in seguito 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 dell'elenco di accettazione è simile al seguente:

      PROJECT_1=LIMIT_1,PROJECT_2=LIMIT_2,PROJECT_3=LIMIT_3
      
    • Per generare l'elenco di rifiuti in un formato che potrai utilizzare in seguito 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 rifiuti è simile al seguente:

      PROJECT_1,PROJECT_2,PROJECT_3
      
  2. Modifica l'output comando per rimuovere i progetti eliminati dall'elenco di accettazione e da quelli rifiutati.

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

    • Per aggiornare l'elenco delle persone che accettano, procedi nel seguente modo:

      gcloud compute service-attachments update ATTACHMENT_NAME \
        --region=REGION \
        --consumer-accept-list=UPDATED_ACCEPT_LIST
      
    • Per aggiornare l'elenco di rifiuti, 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 al servizio, ma la connettività non è 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 consumer scadono, controlla se il servizio richiede connessioni a lunga esecuzione. Il timeout di inattività della connessione stabilita tramite TCP per Private Service Connect NAT è di 20 minuti. Se il servizio richiede 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.