Configura le policy di connessione al servizio
Questa pagina descrive come un amministratore di rete può configurare le policy di connessione al servizio per automatizzare la connettività privata a un servizio gestito.
Prima di iniziare
Assicurati che il servizio gestito che vuoi implementare supporti le policy di connessione al servizio.
Per saperne di più sui servizi che supportano le policy di connessione al servizio, consulta Servizi supportati.
Devi conoscere il nome della classe di servizio per l'istanza del servizio gestito per cui vuoi eseguire il deployment della connettività.
Scopri di più sugli endpoint Private Service Connect.
Hai bisogno di una rete Virtual Private Cloud (VPC) e di una subnet.
Devi abilitare l'API Compute Engine nel tuo progetto.
Devi abilitare l'API Network Connectivity nel tuo progetto.
Devi attivare l'API Service Consumer Management nel progetto consumer in cui vengono implementati gli endpoint Private Service Connect. Questa API consente a Google Cloud di creare il service account Network Connectivity che esegue il deployment degli endpoint Private Service Connect.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per configurare una rete e creare una policy di connessione al servizio, chiedi all'amministratore di concederti il ruolo IAM Compute Network Admin (roles/compute.networkAdmin
) sul tuo progetto.
Per utilizzare le norme di connessione al servizio con il VPC condiviso, ai service account del servizio di connettività di rete devono essere concessi ruoli nei progetti di servizio e host. Questi service account vengono configurati automaticamente quando viene creata una policy di connessione al servizio, ma i ruoli possono essere rimossi manualmente. Se vengono visualizzati errori relativi alle autorizzazioni mancanti, un amministratore service account potrebbe dover concedere nuovamente i ruoli. Per maggiori informazioni, consulta Configurare i service account per il VPC condiviso.
Crea una policy di connessione al servizio
Una policy di connessione del servizio consente di autorizzare la classe di servizio specificata a creare una connessione Private Service Connect tra le reti VPC producer e consumer.
Puoi creare un massimo di una policy per ogni combinazione di classe di servizio, regione e rete VPC. Una policy determina l'automazione della connettività del servizio per quella specifica combinazione.
Quando configuri una policy, selezioni una o più subnet. Queste subnet vengono utilizzate per allocare indirizzi IP per gli endpoint creati tramite il criterio. Il tipo di stack di una subnet influisce sulla versione IP possibile degli endpoint che puoi deployment. Puoi riutilizzare la stessa subnet in più policy di connessione se le policy condividono la stessa regione.
Ad esempio, se vuoi utilizzare l'automazione della connettività dei servizi con due servizi in tre regioni diverse, crea sei policy. Puoi utilizzare un minimo di tre subnet, una per ogni regione.
Dopo aver creato una policy di connessione al servizio, puoi aggiornare solo le subnet, il limite di connessioni e l'ambito dell'istanza di servizio della policy. Se devi aggiornare altri campi, elimina il criterio e creane uno nuovo.
Console
Nella console Google Cloud , vai alla pagina Private Service Connect.
Fai clic sulla scheda Norme di connessione.
Fai clic su Crea policy di connessione.
Inserisci un nome per la policy di connessione.
Specifica la classe di servizio.
- Per i servizi Google, procedi nel seguente modo:
- Per Dettagli del servizio, seleziona Servizi Google.
- Seleziona la classe di servizio dal menu Classe di servizio.
- Per i servizi di terze parti, procedi nel seguente modo:
- Per Dettagli del servizio, seleziona Servizio di terze parti.
- In Classe di servizio, inserisci il nome della classe di servizio.
- Per i servizi Google, procedi nel seguente modo:
Nella sezione Ambito degli endpoint, seleziona una Rete e una Regione a cui si applica questo criterio.
Nella sezione Configurazione endpoint, seleziona una o più subnet dal menu Subnet. Le subnet vengono utilizzate per allocare indirizzi IP per gli endpoint.
(Facoltativo) Specifica un limite di connessioni per la policy. Il limite determina il numero di endpoint che possono essere creati utilizzando questa policy di connessione. Se omesso, non c'è alcun limite.
Per impostazione predefinita, gli endpoint vengono creati per le istanze di servizio che si trovano nello stesso progetto della policy di connessione. Se hai selezionato un servizio Google supportato, puoi configurare il criterio di connessione per connetterti alle istanze di servizio che si trovano in una parte diversa della gerarchia di Resource Manager.
Per selezionare nodi Resource Manager diversi:
- Seleziona Ambito istanza di servizio personalizzato.
- Scegli le organizzazioni, le cartelle e i progetti che contengono istanze di servizio a cui vuoi connetterti.
Fai clic su Crea criterio.
gcloud
Utilizza il
comando service-connection-policies create
.
gcloud network-connectivity service-connection-policies create POLICY_NAME \ --network=NETWORK \ --project=PROJECT_ID \ --region=REGION \ --service-class=SERVICE_CLASS \ --subnets=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETS \ --psc-connection-limit=LIMIT \ --description=DESCRIPTION \ --producer-instance-location=PRODUCER_INSTANCE_LOCATION \ --allowed-google-producers-resource-hierarchy-level=LIST_OF_NODES
Sostituisci quanto segue:
POLICY_NAME
: il nome della policy di connessione al servizio.NETWORK
: la rete a cui applicare questa policy.PROJECT_ID
: l'ID o il numero del progetto della rete VPC. Per le reti VPC condivise, le norme di connessione al servizio devono essere implementate nel progetto host e non sono supportate nei progetti di servizio.REGION
: la regione a cui applicare questa policy. Devono esistere le stesse norme per ogni regione in cui vuoi automatizzare la connettività dei servizi.SERVICE_CLASS
: l'identificatore della risorsa fornito dal produttore della classe di servizio.SUBNETS
: una o più subnet consumer regolari utilizzate per allocare indirizzi IP per gli endpoint Private Service Connect. Le subnet devono trovarsi nella stessa regione della policy di connessione al servizio. Puoi riutilizzare la stessa subnet in più policy di connessione se le policy condividono la stessa regione. Puoi inserire più subnet in un elenco separato da virgole.LIMIT
: il numero massimo di endpoint che possono essere creati utilizzando questa policy. Se non è specificato, non c'è alcun limite.DESCRIPTION
: una descrizione facoltativa della policy di connessione al servizio.PRODUCER_INSTANCE_LOCATION
: per i servizi gestiti da Google supportati, specifica se questo criterio automatizza le connessioni alle istanze di servizio che si trovano in località Resource Manager personalizzate. Se impostato sunone
, vengono creati endpoint che si connettono a istanze di servizio che si trovano nello stesso progetto della policy di connessione al servizio (o, nel caso del VPC condiviso, nei progetti connessi). Il valore predefinito ènone
. Se impostato sucustom-resource-hierarchy-levels
, specifica le località personalizzate utilizzando il flag--allowed-google-producers-resource-hierarchy-level
.LIST_OF_NODES
: per i servizi gestiti da Google supportati, specifica un elenco di nodi Resource Manager (progetti, cartelle e organizzazioni) che contengono le istanze di servizio a cui vuoi connetterti. Questo campo viene selezionato solo quando il flag--producer-instance-location
è impostato sucustom-resource-hierarchy-levels
. L'elenco può contenere qualsiasi combinazione di progetti, cartelle e organizzazioni. Per un elenco di esempi, vedi quanto segue:"projects/1111111111", "folders/2222222222", "folders/3333333333", "organizations/4444444444"
Ad esempio, il seguente comando crea una policy di connessione al servizio
per la classe di servizio google-cloud-sql
pubblicata da Google. Il criterio
può essere utilizzato per automatizzare la connettività alle istanze di servizio di cui è stato eseguito il deployment in
shared-db-service-project
. Gli endpoint Private Service Connect creati utilizzando questo criterio ricevono indirizzi IP allocati dalla subnet endpoint-subnet
. È possibile creare un massimo di
10 endpoint utilizzando
questa policy.
gcloud network-connectivity service-connection-policies create google-cloud-sql-policy \ --network=default \ --project=my-project \ --region=us-central1 \ --service-class=google-cloud-sql \ --subnets=endpoint-subnet \ --psc-connection-limit=10 \ --producer-instance-location=custom-resource-hierarchy-levels \ --allowed-producer-instance-scope=projects/shared-db-service-project
Terraform
Puoi utilizzare la risorsa Terraform per creare una policy di connessione al servizio.
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
API
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
PROJECT_ID
: l'ID progetto.REGION
: la regione della policy di connessione al servizio.POLICY_NAME
: il nome della policy di connessione al servizio.DESCRIPTION
: una descrizione facoltativa della policy di connessione al servizio.NETWORK
: la rete della policy di connessione del servizio.LIMIT
: il numero massimo di endpoint che possono essere creati utilizzando questa policy. Se non è specificato, non c'è alcun limite.SUBNET
: una o più subnet consumer regolari utilizzate per allocare indirizzi IP per gli endpoint Private Service Connect. Le subnet devono trovarsi nella stessa regione della policy di connessione al servizio. Puoi riutilizzare la stessa subnet in più policy di connessione se le policy condividono la stessa regione. Puoi inserire più URI di subnet in un elenco separato da virgole.SERVICE_CLASS
: l'identificatore della risorsa fornito dal produttore della classe di servizio.PRODUCER_INSTANCE_LOCATION
:PRODUCER_INSTANCE_LOCATION_UNSPECIFIED
(predefinito) oCUSTOM_RESOURCE_HIERARCHY_LEVELS
.LIST_OF_NODES
: un elenco di nodi Resource Manager (progetti, cartelle e organizzazioni) che contengono le istanze di servizio a cui vuoi connetterti. Questo campo viene selezionato solo quando il flagPRODUCER_INSTANCE_LOCATION
è impostato suCUSTOM_RESOURCE_HIERARCHY_LEVELS
. L'elenco può contenere qualsiasi combinazione di progetti, cartelle e organizzazioni. Per un elenco di esempi, vedi quanto segue:"projects/1111111111", "folders/2222222222", "folders/3333333333", "organizations/4444444444"
Metodo HTTP e URL:
POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies?serviceConnectionPolicyId=POLICY_NAME
Corpo JSON della richiesta:
{ "description": "DESCRIPTION", "network": "projects/PROJECT_ID/global/networks/NETWORK", "pscConfig": { "limit": "LIMIT", "subnetworks": [ "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET" ] "producerInstanceLocation": "CUSTOM_RESOURCE_HIERARCHY_LEVELS", "allowedGoogleProducersResourceHierarchyLevel": [ LIST_OF_NODES ] }, "serviceClass": "SERVICE_CLASS" }
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/project-id/locations/us-central1/operations/operation-1692118768698-602f91a204523-8c6a2d93-d5c20a6a", "metadata": { "@type": "type.googleapis.com/google.cloud.networkconnectivity.v1.OperationMetadata", "createTime": "2023-08-15T16:59:29.236110917Z", "target": "projects/project-id/locations/us-central1/serviceConnectionPolicies/policy-name", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Elenca le policy di connessione al servizio
Console
Nella console Google Cloud , vai alla pagina Private Service Connect.
Fai clic sulla scheda Norme di connessione.
Vengono visualizzate le policy di connessione.
gcloud
Utilizza il comando service-connection-policies list
.
gcloud network-connectivity service-connection-policies list \ --region=REGION
Sostituisci REGION
con la regione in cui vuoi elencare
i criteri di connessione al servizio.
API
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
PROJECT_ID
: l'ID progetto.REGION
: la regione in cui elencare le policy di connessione al servizio.
Metodo HTTP e URL:
GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "serviceConnectionPolicies": [ { "name": "projects/project-id/locations/us-central1/serviceConnectionPolicies/policy-1", "createTime": "2023-08-15T15:33:54.712819865Z", "updateTime": "2023-08-15T15:33:54.945630882Z", "description": "descriptor", "network": "projects/project-id/global/networks/network-two", "serviceClass": "service-class", "infrastructure": "PSC", "pscConfig": { "subnetworks": [ "projects/project-id/regions/us-west1/subnetworks/us-west1-subnet" ], "limit": "12" }, "etag": "zCqDFBG1dS7B4gNdJKPR98YMUXpSrBIz0tZB_hwOIZI" }, { "name": "projects/project-id/locations/us-central1/serviceConnectionPolicies/policy-2", "createTime": "2023-08-15T16:59:29.230257109Z", "updateTime": "2023-08-15T16:59:29.508994923Z", "description": "descriptor", "network": "projects/project-id/global/networks/custom-test", "serviceClass": "service-class", "infrastructure": "PSC", "pscConfig": { "subnetworks": [ "projects/project-id/regions/us-central1/subnetworks/subnet-one" ], "limit": "25" }, "etag": "nB603i61nRGMZpNjWoWMM6wRzsgM8QN9C9v5QFLyOa8" } ] }
Descrivi una policy di connessione al servizio
Console
Nella console Google Cloud , vai alla pagina Private Service Connect.
Fai clic sulla scheda Norme di connessione.
Fai clic sulla policy di connessione al servizio che vuoi visualizzare.
gcloud
Utilizza il comando service-connection-policies describe
.
gcloud network-connectivity service-connection-policies describe POLICY_NAME \ --region=REGION
Sostituisci quanto segue:
POLICY_NAME
: il nome della policy di connessione al servizio che vuoi descrivere.REGION
: la regione della policy di connessione al servizio che vuoi descrivere.
API
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
PROJECT_ID
: l'ID progetto.REGION
: la regione della policy di connessione al servizio.POLICY_NAME
: il nome della policy di connessione al servizio da descrivere.
Metodo HTTP e URL:
GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies/POLICY_NAME
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/project-id/locations/us-central1/serviceConnectionPolicies/policy-name", "createTime": "2023-08-15T16:59:29.230257109Z", "updateTime": "2023-08-15T16:59:29.508994923Z", "description": "description", "network": "projects/project-id/global/networks/custom-test", "serviceClass": "gcp-memorystore-redis", "infrastructure": "PSC", "pscConfig": { "subnetworks": [ "projects/project-id/regions/us-central1/subnetworks/subnet-one" ], "limit": "25" }, "etag": "nB603i61nRGMZpNjWoWMM6wRzsgM8QN9C9v5QFLyOa8" }
Aggiorna una policy di connessione al servizio
Puoi aggiornare le subnet, il limite di connessioni e l'ambito dell'istanza di servizio per una policy di connessione al servizio.
Se rimuovi una subnet dalla policy di connessione al servizio, si applica quanto segue:
- Gli endpoint Private Service Connect esistenti non sono interessati.
- I nuovi endpoint non utilizzano la subnet rimossa.
Se aggiorni il limite di connessione di una policy di connessione al servizio, si applica quanto segue:
- Gli endpoint esistenti non sono interessati.
- Se il nuovo limite di connessioni è inferiore al numero esistente di endpoint associati alla policy, l'automazione della connettività del servizio blocca la creazione di nuovi endpoint che utilizzano questa policy.
- Se il nuovo limite di connessione è superiore al numero esistente di endpoint associati al criterio, è possibile creare endpoint precedentemente bloccati dal limite di connessione.
Se aggiorni una policy di connessione al servizio e non specifichi un limite di connessioni, la policy aggiornata non ha limiti di connessioni.
Se aggiorni l'ambito dell'istanza di servizio per un criterio di connessione al servizio, gli endpoint esistenti non vengono interessati. Per aggiornare l'ambito, utilizza la consoleGoogle Cloud o l'API.
Console
Nella console Google Cloud , vai alla pagina Private Service Connect.
Fai clic sulla scheda Norme di connessione.
Fai clic sulla policy di connessione al servizio che vuoi modificare.
Fai clic su Modifica.
Apporta gli aggiornamenti alla policy di connessione al servizio.
Fai clic su Aggiorna criteri.
gcloud
Utilizza il
comando service-connection-policies update
.
gcloud network-connectivity service-connection-policies update POLICY_NAME \ --region=REGION \ --project=PROJECT_ID \ --subnets=SUBNETS \ --psc-connection-limit=LIMIT
POLICY_NAME
: il nome della policy di connessione al servizio.REGION
: la regione della policy di connessione al servizio. Non puoi aggiornare la regione di un criterio.PROJECT_ID
: l'ID o il numero del progetto della policy.SUBNETS
: una o più subnet consumer regolari utilizzate per allocare indirizzi IP per gli endpoint Private Service Connect. Le subnet devono trovarsi nella stessa regione della policy di connessione al servizio. Puoi riutilizzare la stessa subnet in più policy di connessione se le policy condividono la stessa regione. Puoi inserire più subnet in un elenco separato da virgole.LIMIT
: il numero massimo di endpoint che possono essere creati utilizzando questa policy. Se non è specificato, non c'è alcun limite.
API
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
PROJECT_ID
: l'ID progetto.REGION
: la regione della policy di connessione al servizio. Non puoi aggiornare la regione di un criterio.POLICY_NAME
: il nome della policy di connessione al servizio.LIMIT
: il numero massimo di endpoint che possono essere creati utilizzando questa policy. Se non è specificato, non c'è alcun limite.SUBNET
: una o più subnet consumer regolari utilizzate per allocare indirizzi IP per gli endpoint Private Service Connect. Le subnet devono trovarsi nella stessa regione della policy di connessione al servizio. Puoi riutilizzare la stessa subnet in più policy di connessione se le policy condividono la stessa regione. Puoi inserire più URI di subnet in un elenco separato da virgole.NETWORK
: la rete della policy di connessione al servizio.
Metodo HTTP e URL:
PATCH https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies/POLICY_NAME
Corpo JSON della richiesta:
{ "pscConfig": { "limit": "LIMIT", "subnetworks": [ "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET" ] }, "network": "projects/PROJECT_ID/global/networks/NETWORK" }
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/project-id/locations/us-central1/operations/operation-1692118768698-602f91a204523-8c6a2d93-d5c20a6a", "metadata": { "@type": "type.googleapis.com/google.cloud.networkconnectivity.v1.OperationMetadata", "createTime": "2023-08-15T16:59:29.236110917Z", "target": "projects/project-id/locations/us-central1/serviceConnectionPolicies/policy-name", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Elimina una policy di connessione al servizio
Puoi eliminare una policy di connessione al servizio se hai terminato di utilizzare il servizio o vuoi interrompere l'automazione della connettività. L'eliminazione della policy è bloccata se alla policy sono associate connessioni Private Service Connect attive. Prima di eliminare una policy di connessione al servizio, elimina tutte le connessioni attive ritirando tutte le istanze di servizio associate.
Console
Nella console Google Cloud , vai alla pagina Private Service Connect.
Fai clic sulla scheda Norme di connessione.
Seleziona le policy di connessione al servizio che vuoi eliminare, quindi fai clic su Elimina.
gcloud
Utilizza il
comando service-connection-policies delete
.
gcloud network-connectivity service-connection-policies delete POLICY_NAME \ --region=REGION
Sostituisci quanto segue:
POLICY_NAME
: il nome della policy di connessione al servizio che vuoi eliminare.REGION
: la regione della policy di connessione al servizio che vuoi eliminare.
API
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
PROJECT_ID
: l'ID progetto.REGION
: la regione della policy di connessione al servizio.POLICY_NAME
: il nome della policy di connessione al servizio da eliminare.
Metodo HTTP e URL:
DELETE https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies/POLICY_NAME
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/project-id/locations/us-central1/operations/operation-1692128792549-602fb6f98194a-e0275435-36edc095", "metadata": { "@type": "type.googleapis.com/google.cloud.networkconnectivity.v1.OperationMetadata", "createTime": "2023-08-15T19:46:32.605032867Z", "target": "projects/project-id/locations/us-central1/serviceConnectionPolicies/policy-name", "verb": "delete", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Configura gli account di servizio per VPC condiviso
I service account vengono configurati automaticamente quando utilizzi i criteri di connessione al servizio con VPC condiviso, ma i ruoli possono essere rimossi manualmente. Se visualizzi errori relativi alle autorizzazioni mancanti, prova a concedere di nuovo i ruoli.
Per concedere i ruoli richiesti, un amministratore service account può procedere nel seguente modo.
Concedi ruoli al account di servizio nel progetto di servizio
gcloud
Concedi il ruolo agente di servizio Network Connectivity (
roles/networkconnectivity.serviceAgent
) al service account Network Connectivity del progetto di servizio. Concedi il ruolo sul progetto di servizio.gcloud projects add-iam-policy-binding SERVICE_PROJECT_NUMBER \ --member=serviceAccount:service-SERVICE_PROJECT_NUMBER@gcp-sa-networkconnectivity.iam.gserviceaccount.com \ --role=roles/networkconnectivity.serviceAgent
Sostituisci
SERVICE_PROJECT_NUMBER
con il numero di progetto del progetto di servizio.Concedi il ruolo Utente di rete Compute (
roles/compute.networkUser
) al service account del servizio di connettività di rete del progetto di servizio. Esegui una delle seguenti operazioni.Concedi il ruolo nel progetto host.
gcloud projects add-iam-policy-binding HOST_PROJECT_NUMBER \ --member=serviceAccount:service-SERVICE_PROJECT_NUMBER@gcp-sa-networkconnectivity.iam.gserviceaccount.com \ --role=roles/compute.networkUser
Sostituisci
HOST_PROJECT_NUMBER
con il numero di progetto del progetto host.Concedi il ruolo a ciascuna delle subnet nel progetto host associate al criterio di connessione al servizio. Utilizza il seguente comando per ogni subnet.
gcloud compute networks subnets add-iam-policy-binding SUBNET \ --member=serviceAccount:service-SERVICE_PROJECT_NUMBER@gcp-sa-networkconnectivity.iam.gserviceaccount.com \ --role=roles/compute.networkUser \ --region=REGION \ --project=HOST_PROJECT_NUMBER
Sostituisci quanto segue:
SUBNET
: il nome della subnet associata alla policy di connessione al servizio.REGION
: la regione della subnet.
Concedi il ruolo al account di servizio nel progetto host
gcloud
Concedi il ruolo Network Connectivity Service Agent (
roles/networkconnectivity.serviceAgent
) al service account Network Connectivity del progetto host. Concedi il ruolo sul progetto host.gcloud projects add-iam-policy-binding HOST_PROJECT_NUMBER \ --member=serviceAccount:service-HOST_PROJECT_NUMBER@gcp-sa-networkconnectivity.iam.gserviceaccount.com \ --role=roles/networkconnectivity.serviceAgent
Sostituisci
HOST_PROJECT_NUMBER
con il numero di progetto del progetto host.