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:
Ospita il servizio su un bilanciatore del carico supportato con una configurazione supportata.
Crea un collegamento al servizio che punta alla regola di forwarding associata al bilanciatore del carico.
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.
- Amministratore rete Compute
(
roles/compute.networkAdmin
)
Prima di iniziare
Per saperne di più, tra cui la configurazione e le limitazioni DNS, consulta Informazioni sui servizi pubblicati.
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 i tipi di Private Service Connect.
Per ulteriori informazioni sui requisiti di configurazione del servizio, consulta Funzionalità e compatibilità.
Tipi di bilanciatori del carico supportati
Puoi ospitare il servizio utilizzando i seguenti bilanciatori del carico:
Bilanciatore del carico di rete passthrough interno in una rete VPC di producer di servizi.
Bilanciatore del carico delle applicazioni interno regionale in una rete VPC di producer di servizi.
Inoltro del protocollo interno in una rete VPC di producer di servizi.
Bilanciatore del carico di rete proxy interno regionale in una rete VPC di producer di servizi. I backend possono essere situati in Google Cloud, in altri cloud, in un ambiente on-premise o in qualsiasi combinazione di queste località.
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
Nella console Google Cloud, vai alla pagina Reti VPC.
Fai clic sul nome di una rete VPC per visualizzare la pagina Dettagli rete VPC.
Fai clic su Aggiungi subnet. Nel riquadro visualizzato:
- Specifica un nome.
- Seleziona una Regione.
- Nella sezione Scopo, seleziona Private Service Connect.
- Inserisci un intervallo di indirizzi IP. Ad esempio,
10.10.10.0/24
. - 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) |
|
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:
- Puoi pubblicare un servizio con approvazione automatica.
- Puoi pubblicare un servizio con l'approvazione esplicita.
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
Nella console Google Cloud, vai alla pagina Private Service Connect.
Fai clic sulla scheda Servizi pubblicati.
Fai clic su Pubblica servizio.
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
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.
Se richiesto, seleziona la Regola di forwarding associata al servizio che vuoi pubblicare.
In Nome servizio, inserisci un nome per il collegamento al servizio.
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.
Se vuoi visualizzare le informazioni sulla connessione consumer, seleziona Utilizza il protocollo proxy.
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.
Seleziona Accetta automaticamente le connessioni.
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
ePSC_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
Nella console Google Cloud, vai alla pagina Private Service Connect.
Fai clic sulla scheda Servizi pubblicati.
Fai clic su Pubblica servizio.
Seleziona il Tipo di bilanciatore del carico: Bilanciatore del carico TCP/UDP interno o Bilanciatore del carico HTTP(S) interno.
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.
Se richiesto, seleziona la regola di forwarding associata al servizio che vuoi pubblicare.
In Nome servizio, inserisci un nome per il collegamento al servizio.
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.
Se vuoi visualizzare le informazioni sulla connessione consumer, seleziona la casella di controllo Protocolli.
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.
Se vuoi accettare le connessioni per i progetti selezionati, seleziona Accetta le connessioni per i progetti selezionati.
- Per ogni progetto da cui vuoi accettare connessioni, procedi nel seguente modo:
- 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.
- Fai clic su Aggiungi progetto accettato, quindi inserisci quanto segue:
- (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.
- Per ogni progetto da cui vuoi accettare connessioni, procedi nel seguente modo:
Se vuoi accettare connessioni per le reti selezionate, seleziona Accetta connessioni per le reti selezionate.
- Per ogni rete da cui vuoi accettare connessioni, procedi nel seguente modo:
- 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.
- Fai clic su Aggiungi rete accettata, quindi inserisci quanto segue:
- (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.
- Per ogni rete da cui vuoi accettare connessioni, procedi nel seguente modo:
Se vuoi disabilitare la riconciliazione delle connessioni, deseleziona la casella di controllo Abilita riconciliazione delle connessioni.
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
eACCEPTED_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
eLIMIT_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
eREJECTED_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
ePSC_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
eREJECTED_PROJECT_2
: gli ID o il numero di progetti da rifiutare.consumerRejectLists
è facoltativo e può contenere uno o più progetti.ACCEPTED_PROJECT_1
eACCEPTED_PROJECT_2
: gli ID o i numeri dei progetti da accettare.consumerAcceptLists
è facoltativo e può contenere uno o più progetti.LIMIT_1
eLIMIT_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
eREJECTED_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
eREJECTED_NETWORK_2
: i nomi delle reti che vuoi rifiutare.ACCEPTED_PROJECT_ID_1
eACCEPTED_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
eACCEPTED_NETWORK_2
: i nomi delle reti che vuoi accettare.LIMIT_1
eLIMIT_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
Nella console Google Cloud, vai alla pagina Private Service Connect.
Fai clic sulla scheda Servizi pubblicati.
Vengono visualizzati i collegamenti al servizio Private Service Connect.
gcloud
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
ous-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.
Nella console Google Cloud, vai alla pagina Private Service Connect.
Fai clic sulla scheda Servizi pubblicati.
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:
Il traffico proveniente dagli endpoint (basati su regole di forwarding) non viene più inviato al bilanciatore del carico.
Il traffico proveniente dai backend (basati su Application Load Balancer esterni globali) viene inviato al bilanciatore del carico finché non viene eliminato.
Console
Nella console Google Cloud, vai alla pagina Private Service Connect.
Fai clic sulla scheda Servizi pubblicati.
Fai clic sul servizio che vuoi eliminare.
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
atrue
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.
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
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.
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
Modifica l'output comando per rimuovere i progetti eliminati dall'elenco di accettazione e da quelli rifiutati.
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.