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 dei consumer.

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

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

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

Ruoli

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

Prima di iniziare

  • Leggi Informazioni sui servizi pubblicati per informazioni sulla pubblicazione dei servizi, incluse le limitazioni.

  • Decidi se il servizio deve essere accessibile da tutti i progetti o se vuoi controllare quali progetti possono accedere al 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, consulta Funzionalità e compatibilità.

  • Decidi se vuoi configurare un nome di dominio per il servizio, in modo da automatizzare la configurazione DNS per gli endpoint dei consumer di servizi. Se configuri un nome di dominio, lo stesso principale 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 va a buon fine. Per verificare la proprietà, vai a Google Search Console.

    Il nome di dominio specificato nell'allegato del servizio può essere un sottodominio del dominio verificato. Ad esempio, puoi verificare example.com e poi creare un allegato del servizio con un nome di dominio di 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 ciascun tipo di bilanciatore del carico, consulta Funzionalità e compatibilità.

Puoi associare ogni allegato del servizio alla regola di forwarding di un singolo bilanciatore del carico. Non puoi associare più allegati di servizio alla stessa regola di forwarding.

La versione IP della regola di forwarding del bilanciatore del carico (IPv4 o IPv6) influisce sui consumatori che possono connettersi al servizio pubblicato. Per ulteriori informazioni, consulta Traduzione della versione IP.

Per i bilanciatori del carico di rete proxy interni a livello di regione, 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 un servizio ospitato su un bilanciatore del carico della rete passthrough interno su Google Kubernetes Engine. Questa configurazione, inclusa la configurazione del bilanciatore del carico e del collegamento di servizio, è descritta in Creare un bilanciatore del carico di rete passthrough interno con Private Service Connect nella documentazione di GKE.

Creare una subnet per Private Service Connect

Crea una o più subnet dedicate da utilizzare con Private Service Connect. Devi creare la subnet nella stessa regione del bilanciatore del carico del servizio.

Se utilizzi la console Google Cloud per pubblicare un servizio, puoi creare le sottoreti durante la procedura.

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

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

Se vuoi pubblicare un servizio che gestisce il traffico IPv6, devi utilizzare una subnet a doppio stack con un intervallo di indirizzi IPv6 interno.

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

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 Subnet.

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

    1. Fornisci 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. Se stai creando una subnet a doppio stack, imposta il tipo di accesso IPv6 su Interno.
    7. Fai clic su Aggiungi.

gcloud

  • Per creare una subnet Private Service Connect solo IPv4, segui questi passaggi:

    gcloud compute networks subnets create SUBNET_NAME \
        --network=NETWORK_NAME \
        --region=REGION \
        --range=SUBNET_RANGE \
        --purpose=PRIVATE_SERVICE_CONNECT
    
  • Per creare una subnet Private Service Connect dual-stack, segui questi passaggi:

    gcloud compute networks subnets create SUBNET_NAME \
        --network=NETWORK_NAME \
        --region=REGION \
        --stack-type=IPV4_IPV6 \
        --ipv6-access-type=INTERNAL \
        --range=SUBNET_RANGE \
        --purpose=PRIVATE_SERVICE_CONNECT
    

Sostituisci quanto segue:

  • SUBNET_NAME: il nome da assegnare alla sottorete.

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

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

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

API

  • Per creare una subnet Private Service Connect solo IPv4, segui questi passaggi:

    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",
    }
    
  • Per creare una subnet Private Service Connect dual-stack, segui questi passaggi:

    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": "IPV4_IPV6",
      "ipv6AccessType": "INTERNAL"
    }
    

Sostituisci quanto segue:

  • PROJECT_ID: il progetto per la subnet.

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

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

  • SUBNET_NAME: il nome da assegnare alla sottorete.

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

Configurazione delle regole del firewall

Configura le regole del firewall per consentire il traffico tra gli endpoint o i backend e l'attacco del servizio. Le richieste dei client provengono da posizioni diverse a seconda del tipo di Private Service Connect.

Tipo di Private Service Connect Intervalli di indirizzi IP per il traffico client Dettagli
Endpoint (in base a una regola di forwarding) Gli intervalli di indirizzi IP delle subnet Private Service Connect associati a questo servizio. Se utilizzi la rete predefinita, la regola precompilatadefault-allow-internal consente questo traffico, a meno che non sia presente una regola di priorità superiore che lo blocchi.
Backend (in base a 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 vengono implementati su Google Front End (GFEs), 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 seguente configurazione di esempio consente di creare regole del firewall VPC per consentire il traffico dagli intervalli di indirizzi IP dei client alle VM di backend nel bilanciatore del carico del servizio 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 contenente il servizio e la subnet Private Service Connect.

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

  • CLIENT_IP_RANGES_LIST: gli intervalli di indirizzi IP da cui ha origine il traffico dei 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 contenente il servizio e la subnet Private Service Connect.

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

  • CLIENT_IP_RANGES_LIST: gli intervalli di indirizzi IP da cui ha origine il traffico dei 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 le regole del firewall gerarchico in modo da consentire questo traffico, consulta Criteri firewall gerarchici.

Pubblicare un servizio

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

Crea l'attacco del 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

Segui queste istruzioni per pubblicare un servizio e consentire automaticamente a qualsiasi consumatore di connettersi a questo servizio. Se vuoi approvare esplicitamente le connessioni dei consumatori, consulta la sezione Pubblicare un servizio con approvazione esplicita.

Quando pubblichi un servizio, crei un collegamento a un servizio. I consumatori di servizi utilizzano i dettagli del collegamento del servizio per connettersi al tuo servizio.

Se vuoi visualizzare le informazioni di connessione dei consumer, puoi attivare il protocollo PROXY sui servizi supportati. Per informazioni sui servizi supportati, consulta Funzionalità e compatibilità. Per ulteriori informazioni sul protocollo PROXY, consulta la sezione Informazioni sulla connessione consumer.

Puoi associare subnet single-stack e dual-stack allo stesso collegamento al servizio. Se il bilanciatore del carico è configurato per il traffico IPv6, 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 tuo 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 della rete e della 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 ulteriori informazioni, consulta VPC condiviso.

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

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

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

    Se il collegamento di 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 sottorete.
    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 di connessione dei consumatori, seleziona Utilizza protocollo proxy.

  10. Seleziona Accetta automaticamente tutte le connessioni.

  11. Se vuoi disattivare la riconciliazione delle connessioni, deseleziona la casella di controllo Attiva riconciliazione delle connessioni.

  12. (Facoltativo) Fai clic su Configurazione avanzata, quindi svolgi i seguenti passaggi:

    1. 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 possedere il nome di dominio. Per ulteriori informazioni, consulta la sezione Configurazione DNS.

    2. Inserisci un limite per le 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 all'allegato del servizio.

  • REGION: la regione per il nuovo allegato del servizio. Deve essere la 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 con un indirizzo IP di una rete VPC condivisa. Per ulteriori informazioni, consulta VPC condiviso.

  • PSC_SUBNET_LIST: un elenco separato da virgole di uno o più nomi di sottoreti da utilizzare con questo allegato del servizio.

    Se stai creando un aggancio del 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 della risorsa completa, 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 del servizio.

  • REGION: la regione per il nuovo allegato del servizio. Deve essere la stessa regione del servizio che stai pubblicando.

  • ATTACHMENT_NAME: il nome da assegnare all'allegato 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 con un indirizzo IP di una rete VPC condivisa. Per ulteriori informazioni, consulta VPC condiviso.

  • PSC_SUBNET_1_URI e PSC_SUBNET_2_URI: gli URI delle subnet da utilizzare per questo collegamento a un servizio. Puoi specificare una o più subnet tramite URI.

    Se stai creando un aggancio del 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.

  • 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 consumatori prima che possano connettersi a questo servizio. Se vuoi approvare automaticamente le connessioni dei consumatori, consulta la sezione sulla pubblicazione di un servizio con approvazione automatica.

Quando pubblichi un servizio, crei un collegamento a un servizio. I consumatori di servizi utilizzano i dettagli del collegamento del servizio per connettersi al tuo servizio.

Ogni collegamento al servizio ha un elenco di accettazione e un elenco di rifiuto dei consumer, che vengono utilizzati per determinare quali endpoint possono connettersi al servizio. Un determinato collegamento al servizio può utilizzare progetti o emittenti in questi elenchi, ma non entrambi. La specifica dei consumatori per cartella non è supportata.

Se passi dall'accettazione dei consumatori in base al progetto all'accettazione dei consumatori in base alla rete o viceversa, svolgi i seguenti passaggi:

  • Sostituire tutti i progetti o le emittenti 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 di rifiuto, le richieste di connessione da quel progetto o da quella rete vengono rifiutate.

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

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 della rete e della 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 ulteriori informazioni, consulta VPC condiviso.

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

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

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

    Se il collegamento di 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 sottorete.
    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 di connessione dei consumatori, seleziona Utilizza protocollo proxy.

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

    1. Per ogni progetto da cui vuoi accettare connessioni, svolgi i seguenti passaggi:
      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 connessione 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 del progetto.
  11. Se vuoi accettare le connessioni per reti selezionate, seleziona Accetta connessioni per le reti selezionate.

    1. Per ogni emittente da cui vuoi accettare le connessioni, procedi nel seguente modo:
      1. Fai clic su Aggiungi rete accettata e 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 le connessioni.
        • Un limite di connessione 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 di progetto del progetto principale della rete e il nome della rete.
  12. Se vuoi disattivare la riconciliazione delle connessioni, deseleziona la casella di controllo Attiva riconciliazione delle connessioni.

  13. (Facoltativo) Fai clic su Configurazione avanzata, quindi svolgi i seguenti passaggi:

    1. 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 possedere il nome di dominio. Per ulteriori informazioni, consulta la sezione Configurazione DNS.

    2. Inserisci un limite per le 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 all'allegato del servizio.

  • REGION: la regione per il nuovo allegato del servizio. Deve essere la 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 con un indirizzo IP di 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 progetto 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 connessione è 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 connessione.

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

  • PSC_SUBNET_LIST: un elenco separato da virgole di uno o più nomi di sottoreti da utilizzare con questo allegato del servizio.

    Se stai creando un aggancio del 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 della risorsa completa, 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 consumatori 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"
        }
      ],
      "propagatedConnectionLimit": "PROPAGATED_CONNECTION_LIMIT",
      "domainNames": [
        "DOMAIN_NAME"
      ]
    }
    

    Sostituisci quanto segue:

    • PROJECT_ID: il progetto per il collegamento del servizio.

    • REGION: la regione per il collegamento del servizio.

    • ATTACHMENT_NAME: il nome da assegnare all'allegato 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 con un indirizzo IP di una rete VPC condivisa. Per ulteriori informazioni, consulta VPC condiviso.

    • PSC_SUBNET_1_URI e PSC_SUBNET_2_URI: gli URI delle subnet da utilizzare per questo collegamento a un servizio. Puoi specificare una o più subnet tramite URI.

      Se stai creando un aggancio del 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 i numeri 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 connessione è il numero di endpoint o backend dei consumer che possono connettersi a questo servizio. Per ogni progetto accettato deve essere configurato un limite di connessione.

    • DOMAIN_NAME: un nome di dominio DNS per il servizio, incluso un punto finale. Formato consigliato: REGION.p.DOMAIN. Per ulteriori informazioni, consulta 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"
        }
      ],
      "propagatedConnectionLimit": PROPAGATED_CONNECTION_LIMIT,
      "domainNames": [
        "DOMAIN_NAME"
      ]
    }
    

    Sostituisci quanto segue:

    • REJECTED_PROJECT_ID_1 e REJECTED_PROJECT_ID_2: gli ID dei progetti principali delle emittenti che vuoi rifiutare. consumerRejectLists è facoltativo e può contenere una o più reti.
    • REJECTED_NETWORK_1 e REJECTED_NETWORK_2: i nomi delle emittenti che vuoi rifiutare.
    • ACCEPTED_PROJECT_ID_1 e ACCEPTED_PROJECT_ID_2: gli ID dei progetti principali delle emittenti che vuoi accettare. consumerAcceptLists è facoltativo e può contenere una o più emittenti.
    • ACCEPTED_NETWORK_1 e ACCEPTED_NETWORK_2: i nomi delle emittenti che vuoi accettare.
    • LIMIT_1 e LIMIT_2: i limiti di connessione per le reti. Il limite di connessione è il numero di endpoint o backend dei consumer che possono connettersi a questo servizio. Per ogni progetto accettato deve essere configurato un limite di connessione.
    • DOMAIN_NAME: un nome di dominio DNS per il servizio, incluso un punto finale. Formato consigliato: REGION.p.DOMAIN. Per ulteriori 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 i dati di connessione dei consumatori

Per informazioni su come visualizzare le informazioni di connessione dei consumatori utilizzando il protocollo PROXY, consulta Visualizzare le informazioni di connessione dei consumatori.

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 di consumatori. Per saperne di più, 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 saperne di più, consulta Modificare la preferenza di connessione per un servizio pubblicato

Aggiungere o rimuovere sottoreti da un servizio pubblicato

Puoi aggiungere o rimuovere sottoreti da un servizio pubblicato. Per ulteriori informazioni, consulta Aggiungere o rimuovere sottoreti da un servizio pubblicato.

Elenco dei 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 dei servizi Private Service Connect.

gcloud

  1. Elenca i collegamenti di 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 le quali vuoi visualizzare gli allegati del servizio. Ad esempio, us-central1 o us-west1,us-central1.

API

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

  • Visualizza tutti gli allegati dei servizi in una regione:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments
    
  • Visualizza tutti gli allegati dei 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 del servizio.

    • REGION: la regione per il collegamento del servizio.

    • ATTACHMENT_NAME: il nome del collegamento a servizio.

Visualizzare i dettagli di 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 allegato del servizio di cui i consumatori del servizio hanno bisogno per connettersi al tuo servizio. Per visualizzare tutti i dettagli, inclusi i valori pscConnectionId per i consumatori dell'allegato del servizio, utilizza Google Cloud CLI o l'API.

Console

Puoi visualizzare i dettagli di un servizio pubblicato. Il campo Collegamento 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 del servizio.

  • REGION: la regione per il collegamento del servizio.

  • ATTACHMENT_NAME: il nome del collegamento a servizio.

Eliminare un servizio pubblicato

Puoi eliminare un servizio pubblicato, anche se sono presenti connessioni consumer al collegamento al servizio. L'eliminazione del servizio pubblicato rimuove solo l'allegato del 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 del servizio.

  • REGION: la regione per il collegamento del servizio.

  • ATTACHMENT_NAME: il nome del collegamento a 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 allegati di servizio, non eseguire l'upgrade alle versioni 4.76.0-4.81.x. Quando esegui terraform apply dopo l'upgrade alle versioni 4.76.0 fino alla 4.81.x, Terraform potrebbe eliminare e ricreare involontariamente i collegamenti ai servizi e chiudere le connessioni Private Service Connect esistenti. I collegamenti di servizio ricreati non ristabiliscono automaticamente le connessioni Private Service Connect.

Se esegui l'upgrade alla versione 4.82.0 ed esegui terraform apply, gli allegati dei servizi non vengono eliminati, ma l'impostazione reconcile connections è impostata su true. Se l'impostazione era precedentemente impostata su false, alcune connessioni Private Service Connect potrebbero chiudersi.

  • Upgrade alle versioni del provider Google da 4.76.0 a 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 fornitore Google 4.82.0. In questo scenario, il risultato di terraform plan include quanto segue:

    ~ reconcile_connections = false -> true
    

    Se ignori questo avviso e applichi le modifiche, Terraform aggiorna l'aggancio del servizio per attivare la riconciliazione delle connessioni. A seconda dello stato della connessione, il passaggio da false a true potrebbe comportare la chiusura di alcune connessioni esistenti. Per ulteriori informazioni, vedi 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 involontarie degli allegati del servizio.

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

  1. Visualizza la configurazione dettagliata dell'allegato del 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 in modo da utilizzare esplicitamente la stessa impostazione utilizzata nell'attacco del servizio.

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

    Per una configurazione di esempio, consulta Connessioni per la riconciliazione dei collegamenti degli allegati dei servizi su GitHub.

Aggiornamenti delle patch per gli allegati del servizio

Quando aggiorni un allegato del servizio utilizzando l'API PATCH, devi fornire tutti i campi per l'allegato del 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 di un allegato del servizio

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

Rimuovi i progetti eliminati dalla configurazione dell'attacco al servizio per risolvere il problema.

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

    • Per generare l'elenco di accettazione in un formato che puoi utilizzare in un secondo momento per aggiornare l'allegato del servizio:

      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 accettati è simile al seguente:

      PROJECT_1=LIMIT_1,PROJECT_2=LIMIT_2,PROJECT_3=LIMIT_3
      
    • Per generare l'elenco di rifiuto in un formato che puoi utilizzare in un secondo momento per aggiornare l'allegato del servizio:

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

      L'output dell'elenco di rifiuto è simile al seguente:

      PROJECT_1,PROJECT_2,PROJECT_3
      
  2. Modifica l'output del comando per rimuovere eventuali progetti eliminati dall'elenco di accettazione e dall'elenco di rifiuto.

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

    • Per aggiornare l'elenco accettato:

      gcloud compute service-attachments update ATTACHMENT_NAME \
        --region=REGION \
        --consumer-accept-list=UPDATED_ACCEPT_LIST
      
    • Per aggiornare l'elenco di rifiuto:

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

La connettività non è stabilita

Se un consumatore ha creato un endpoint o un backend che fa riferimento al tuo allegato del servizio, ma la connettività non è stabilita, controlla lo stato della connessione dell'allegato del servizio. Lo stato della connessione potrebbe indicare i passaggi da seguire per risolvere il problema.

Timeout delle connessioni dei consumatori

Se le connessioni dei consumatori scadono, controlla se il tuo servizio richiede connessioni di lunga durata. Il timeout di inattività della connessione TCP stabilita per la NAT Private Service Connect è di 20 minuti. Se il tuo servizio richiede un tempo di attesa più lungo, potresti dover apportare alcune modifiche di configurazione per assicurarti che le connessioni non scadano. Per ulteriori informazioni, consulta le specifiche di NAT.

Le connessioni propagate non sono stabilite

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