Connettiti a un'istanza utilizzando Private Service Connect

Questa pagina descrive come utilizzare Private Service Connect per connettersi a un'istanza AlloyDB per PostgreSQL.

Puoi utilizzare Private Service Connect per connetterti a un'istanza AlloyDB primaria o a una delle sue repliche di lettura oppure a un'istanza AlloyDB secondaria da più reti VPC (Virtual Private Cloud) appartenenti a gruppi, team, progetti o organizzazioni diversi.

Ruoli obbligatori

Per poterti connettere a un'istanza AlloyDB, devi concedere tutti i seguenti ruoli a un utente nella tua rete VPC.

Ruolo Descrizione
compute.networkAdmin Concede il controllo completo sulla rete VPC che avvia una connessione a un'istanza AlloyDB. Se utilizzi Private Service Connect per connetterti a un'istanza AlloyDB da più reti VPC, ogni rete ha il proprio amministratore.
dns.admin Concede il controllo completo delle risorse Cloud DNS, inclusi zone e record DNS.
alloydb.admin Fornisce il controllo completo di un'istanza AlloyDB e la controlla durante il suo ciclo di vita.
alloydb.databaseUser (facoltativo) Fornisce l'accesso all'istanza AlloyDB. Se ti connetti tramite il client proxy di autenticazione AlloyDB, devi disporre del ruolo Client AlloyDB. Se ti connetti direttamente, non hai bisogno di ruoli e autorizzazioni IAM (Identity and Access Management).
Custom AlloyDB role (facoltativo) Se utilizzi un ruolo personalizzato, oltre a concedere i ruoli compute.networkAdmin e dns.admin, concedi le seguenti autorizzazioni:
  • alloydb.clusters.create: fornisce l'accesso per abilitare Private Service Connect per un cluster.
  • alloydb.instances.create e alloydb.instances.update: fornisce l'accesso per aggiungere un elenco di progetti consentiti e per impostare un URI di collegamento di rete per un'istanza.

Crea un endpoint Private Service Connect

Gli endpoint di Private Service Connect sono indirizzi IP interni in una rete VPC consumer a cui i client in quella rete possono accedere direttamente. I client possono utilizzare questi endpoint per connettersi alle istanze AlloyDB.

Per fare in modo che AlloyDB crei automaticamente l'endpoint Private Service Connect:

  • Riutilizza una policy di connessione al servizio esistente o creane una nelle tue reti VPC. Con questa policy, puoi eseguire il provisioning automatico degli endpoint Private Service Connect.
  • Crea un cluster e un'istanza AlloyDB con Private Service Connect abilitato per l'istanza e configura l'istanza in modo che crei automaticamente gli endpoint Private Service Connect.
  • Recupera l'endpoint per l'istanza. In questo modo puoi utilizzare l'endpoint per connetterti all'istanza.
  • (Facoltativo) Aggiorna un cluster e un'istanza AlloyDB esistenti con Private Service Connect abilitato per generare automaticamente gli endpoint.

Puoi anche creare manualmente l'endpoint Private Service Connect. Per saperne di più, consulta Creare l'endpoint manualmente.

Crea automaticamente l'endpoint

Le sezioni successive spiegano come configurare l'istanza per consentire ad AlloyDB di creare automaticamente l'endpoint Private Service Connect.

Crea una policy di connessione al servizio

Puoi riutilizzare una policy di connessione al servizio esistente o crearne una utilizzando la console Google Cloud o Google Cloud CLI.

Una policy di connessione al servizio consente di autorizzare una classe di servizi specificata a creare un endpoint Private Service Connect nella tua rete VPC consumer. Puoi utilizzare il criterio di connessione al servizio per consentire ad AlloyDB di creare automaticamente endpoint Private Service Connect.

Console

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

    Vai a Private Service Connect

  2. Fai clic sulla scheda Norme di connessione.

  3. Fai clic su Crea policy di connessione.

  4. Inserisci un nome per la policy di connessione.

  5. Specifica la classe di servizio nel seguente modo:

    1. Per Classe di servizio di origine, seleziona Servizi Google.
    2. Dal menu Classe di servizio, seleziona google-cloud-alloydb perché AlloyDB è il servizio gestito per la policy di connessione.
  6. Nella sezione Ambito degli endpoint di destinazione, seleziona una rete e una regione a cui si applica questo criterio.

  7. Nella sezione Policy, seleziona una o più subnet dal menu Subnet. Le subnet vengono utilizzate per allocare indirizzi IP per gli endpoint.

  8. (Facoltativo) Specifica un limite di connessioni per la policy. Il limite determina il numero di endpoint che AlloyDB può creare per questa policy di connessione. Se non specifichi un limite di connessione, non ce n'è nessuno.

  9. Fai clic su Crea criterio.

gcloud

Per creare una policy di connessione al servizio, 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 si applica questa policy.
  • PROJECT_ID: l'ID o il numero del progetto della rete VPC. Per le reti VPC condivise, devi implementare le norme di connessione del servizio nel progetto host perché queste norme non sono supportate nei progetti di servizio.
  • REGION: la regione a cui si applica questa policy. La stessa policy deve esistere per ogni regione in cui vuoi automatizzare la connettività dei servizi.
  • SERVICE_CLASS: l'identificatore della risorsa fornito dal produttore della classe di servizio. Per AlloyDB, la classe di servizio è google-cloud-alloydb.
  • SUBNETS: una o più subnet consumer regolari utilizzate per allocare indirizzi IP per gli endpoint Private Service Connect. Questi indirizzi IP vengono allocati automaticamente e restituiti al pool della subnet man mano che le istanze del servizio gestito vengono create ed eliminate. Le subnet devono trovarsi nella stessa regione della policy di connessione al servizio. Se più policy di connessione condividono la stessa regione, puoi riutilizzare la stessa subnet in queste policy. Puoi inserire più subnet in un elenco separato da virgole.
  • LIMIT: il numero massimo di endpoint che puoi creare con questa policy. Se non specifichi un limite, non ce n'è.
  • DESCRIPTION: una descrizione facoltativa della policy di connessione al servizio.
  • PRODUCER_INSTANCE_LOCATION: specifica se il criterio automatizza le connessioni alle istanze AlloyDB. Puoi impostare questo valore su uno dei seguenti:

    • none (impostazione predefinita): l'istanza AlloyDB si trova nello stesso progetto della policy di connessione al servizio (o, nel caso del VPC condiviso, nei progetti connessi).
    • custom-resource-hierarchy-levels: richiede di impostare il percorso della località di Resource Manager per i progetti per i quali vuoi automatizzare la connettività tramite il parametro allowed-google-producers-resource-hierarchy-level.
  • LIST_OF_NODES: imposta questo parametro se la posizione dell'istanza del produttore è impostata su custom-resource-hierarchy-levels. Questo parametro è un elenco di progetti, cartelle e organizzazioni in cui si trovano le istanze per cui vuoi automatizzare la connettività. L'elenco è in formato projects/PROJECT_ID, folders/FOLDER_ID o organizations/ORGANIZATION_ID.

Ad esempio, il seguente comando crea una policy di connessione al servizio per la classe di servizio
google-cloud-alloydb che alloca indirizzi IP dalla subnet managed-services. Con questa policy è possibile creare un massimo di 10 endpoint Private Service Connect. Gli endpoint devono essere creati in progetti che appartengono alla stessa organizzazione dell'istanza di servizio gestito. L'istanza AlloyDB si trova nel progetto myproject.

gcloud network-connectivity service-connection-policies create alloydb-policy \
    --network=default \
    --project=my-project \
    --region=us-central1 \
    --service-class=google-cloud-alloydb \
    --subnets=managed-service-subnet \
    --psc-connection-limit=10 \
    --producer-instance-location=custom-resource-hierarchy-levels \
    --allowed-google-producers-resource-hierarchy-level=projects/myproject

Crea un'istanza AlloyDB

Puoi creare un'istanza con Private Service Connect abilitato per l'istanza e configurare l'istanza per creare automaticamente gli endpoint utilizzando la console, gcloud CLI o Terraform.

Console

  1. Nella console Google Cloud , vai alla pagina Cluster.

    Vai a Cluster

  2. Fai clic su Crea cluster.

  3. In ID cluster, inserisci my-cluster.

  4. Inserisci una password. Prendi nota di questa password perché la utilizzerai in questa guida rapida.

  5. Mantieni la versione del database predefinita.

  6. Seleziona la regione us-central1 (Iowa).

  7. Mantieni l'ID istanza predefinito, my-cluster-primary.

  8. In Disponibilità a livello di zona, mantieni Zona singola come opzione selezionata. Sebbene non consigliamo un'istanza a zona singola per la produzione, in questa guida rapida utilizzerai una zona singola per ridurre al minimo i costi. Per ulteriori informazioni, consulta la sezione Ridurre i costi utilizzando le istanze di base.

  9. Seleziona il tipo di macchina 2 vCPU, 16 GB.

  10. Mantieni la connettività IP privato.

    1. Seleziona Private Service Connect (PSC).
    2. Fai clic su Aggiungi un endpoint.
    3. Seleziona il progetto in cui vuoi creare l'endpoint.
    4. Seleziona la rete.
    5. Fai clic su Controlla policy per informazioni sulla policy di connessione al servizio.
  11. Mantieni le impostazioni predefinite in Sicurezza di rete.

  12. Non apportare modifiche in Mostra opzioni avanzate.

  13. Fai clic su Crea cluster. Potrebbero essere necessari diversi minuti prima che AlloyDB crei il cluster e lo visualizzi nella pagina Panoramica del cluster primario.

gcloud

Per creare il cluster, utilizza il comando gcloud alloydb clusters create.

gcloud alloydb clusters create CLUSTER_ID \
  --password=PASSWORD \
  --region=REGION_ID \
  --project=PROJECT_ID \
  --enable-private-service-connect

Sostituisci quanto segue:

  • CLUSTER_ID: l'ID del cluster che stai creando. Deve iniziare con una lettera minuscola e può contenere lettere minuscole, numeri e trattini.

  • PASSWORD: la password da utilizzare per l'utente postgres predefinito.

  • REGION_ID: la regione in cui vuoi posizionare il cluster.

  • PROJECT_ID: l'ID del progetto in cui vuoi posizionare il cluster.

Questo comando avvia un'operazione a lunga esecuzione, restituendo un ID operazione.

Per creare l'istanza AlloyDB, principale o un pool di lettura per l'utilizzo di Private Service Connect, utilizza il comando gcloud alloydb instances create. Assicurati di includere il parametro --allowed-psc-projects per specificare quali progetti consumer possono creare endpoint per connettersi a questa istanza.

gcloud alloydb instances create INSTANCE_ID \
    --instance-type=PRIMARY \
    --cpu-count=CPU_COUNT \
    --availability-type=AVAILABILITY \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --allowed-psc-projects=ALLOWED_PROJECT_LIST \
    --psc-network-attachment-uri=NETWORK_ATTACHMENT_URI \
    --psc-auto-connections=network=CONSUMER_NETWORK,project=CONSUMER_PROJECT

Sostituisci quanto segue:

  • INSTANCE_ID: l'ID dell'istanza che stai creando. Deve iniziare con una lettera minuscola e può contenere lettere minuscole, numeri e trattini.
  • CPU_COUNT: il numero di vCPU che vuoi per l'istanza. I valori validi includono:
    • 2: 2 vCPU, 16 GB di RAM
    • 4: 4 vCPU, 32 GB di RAM
    • 8: 8 vCPU, 64 GB di RAM
    • 16: 16 vCPU, 128 GB di RAM
    • 32: 32 vCPU, 256 GB di RAM
    • 64: 64 vCPU, 512 GB di RAM
    • 96: 96 vCPU, 768 GB di RAM
    • 128: 128 vCPU, 864 GB di RAM
  • AVAILABILITY: indica se questa istanza deve essere a disponibilità elevata (HA), con nodi in più zone. I valori validi includono:
    • REGIONAL: crea un'istanza HA con nodi attivo e di standby separati e failover automatico tra loro. Questo è il valore predefinito, adatto agli ambienti di produzione.
    • ZONAL: crea un'istanza di base, contenente un solo nodo e nessun failover automatico.
  • REGION_ID: la regione in cui vuoi posizionare l'istanza.
  • CLUSTER_ID: l'ID del cluster che hai creato in precedenza.
  • ALLOWED_PROJECT_LIST: l'elenco separato da virgole di ID progetto o numeri di progetto a cui vuoi consentire l'accesso all'istanza, ad esempio my-project-1, 12345,my-project-n.
  • NETWORK_ATTACHMENT_URI (facoltativo): il nome completo della risorsa dell'URI del collegamento di rete che crei per la connettività in uscita. Ad esempio: projects/PROJECT_ID/regions/REGION_ID/networkAttachments/NETWORK_ATTACHMENT_ID.
  • CONSUMER_NETWORK: il percorso della rete VPC in cui devono essere creati gli endpoint Private Service Connect. Ad esempio: projects/my-host-project/global/networks/default. Questa opzione viene applicata quando crei automaticamente gli endpoint. Assicurati che la policy di connessione al servizio sia stata creata. Puoi creare il criterio prima o dopo la creazione dell'istanza.
  • CONSUMER_PROJECT: il progetto in cui viene creato l'endpoint Private Service Connect. Se utilizzi una rete VPC condiviso, può trattarsi del progetto host o del progetto di servizio. Tutti i progetti specificati nei parametri di connessione automatica vengono aggiunti automaticamente ai progetti consentiti. Se vuoi, per i progetti in cui vuoi creare manualmente endpoint Private Service Connect, puoi aggiungerli all'elenco dei progetti consentiti.

Un cluster secondario creato per un cluster primario abilitato a Private Service Connect eredita automaticamente la configurazione di Private Service Connect. Per saperne di più, consulta Creare un cluster secondario.

Terraform

Per creare un'istanza all'interno del cluster di database, utilizza una risorsa Terraform.

resource "google_alloydb_instance" "default" {
  cluster       = google_alloydb_cluster.default.name
  instance_id   = "alloydb-instance"
  instance_type = "PRIMARY"
  machine_config {
    cpu_count = 2
  }
  psc_instance_config {
  allowed_consumer_projects = ["123456789"]
  psc_interface_configs {
    network_attachment_resource = google_compute_network_attachment.default.id
  }
  }
}

resource "google_compute_network" "default" {
    name = "alloydb-network"
    auto_create_subnetworks = false
}

resource "google_compute_subnetwork" "default" {
    name = "alloydb-subnetwork"
    region = "us-central1"
    network = google_compute_network.default.id
    ip_cidr_range = "10.0.0.0/16"
}

resource "google_compute_network_attachment" "default" {
  name                  = "alloydb-network-attachment"
  region                = "us-central1"
  connection_preference = "ACCEPT_AUTOMATIC"
  subnetworks = [
    google_compute_subnetwork.default.self_link
  ]
}

data "google_project" "project" {}

Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.

Recupera l'endpoint

Recuperando l'indirizzo IP interno, ovvero l'endpoint Private Service Connect per un'istanza, puoi utilizzare questo endpoint per connetterti all'istanza.

Per visualizzare le informazioni su un'istanza, incluso l'indirizzo IP che è l'endpoint Private Service Connect per l'istanza, utilizza il comando gcloud alloydb instances describe:

gcloud alloydb instances describe INSTANCE_NAME \
--project=PROJECT_ID \
--format='json(settings.ipConfiguration.pscConfig.pscAutoConnections)'

Effettua le seguenti sostituzioni:

Nella risposta, annota il valore visualizzato accanto al campo pscConfig:pscAutoConnections:ipAddress. Questo valore è l'indirizzo IP interno che è anche l'endpoint Private Service Connect per l'istanza.

Aggiorna un'istanza per la creazione automatica di endpoint

Per aggiornare un'istanza in modo da creare automaticamente gli endpoint, trasmetti il parametro --psc-auto-connections al comando gcloud alloydb instances update.

Configura la connettività in uscita

Se vuoi abilitare la connettività in uscita per l'istanza AlloyDB con Private Service Connect abilitato, devi impostare l'URI dell'allegato di rete per l'istanza. Per saperne di più, consulta Configurare la connettività in uscita.

Crea l'endpoint manualmente

Le sezioni successive spiegano come creare manualmente un endpoint Private Service Connect.

Crea un'istanza AlloyDB

Puoi creare un'istanza con Private Service Connect abilitato per l'istanza e configurare l'istanza per creare automaticamente gli endpoint utilizzando la console, gcloud CLI o Terraform.

Console

  1. Nella console Google Cloud , vai alla pagina Cluster.

    Vai a Cluster

  2. Fai clic su Crea cluster.

  3. In ID cluster, inserisci my-cluster.

  4. Inserisci una password. Prendi nota di questa password perché la utilizzerai in questa guida rapida.

  5. Mantieni la versione del database predefinita.

  6. Seleziona la regione us-central1 (Iowa).

  7. Mantieni l'ID istanza predefinito, my-cluster-primary.

  8. In Disponibilità a livello di zona, mantieni Zona singola come opzione selezionata. Sebbene non consigliamo un'istanza a zona singola per la produzione, in questa guida rapida utilizzerai una zona singola per ridurre al minimo i costi. Per ulteriori informazioni, consulta la sezione Ridurre i costi utilizzando le istanze di base.

  9. Seleziona il tipo di macchina 2 vCPU, 16 GB.

  10. Mantieni la connettività IP privato.

    1. Seleziona Private Service Connect(PSC).
    2. Fai clic su Aggiungi un endpoint.
    3. Seleziona il progetto in cui vuoi creare l'endpoint.
    4. Seleziona la rete.
    5. Fai clic su Controlla policy per informazioni sulla policy di connessione al servizio.
  11. Mantieni le impostazioni predefinite in Sicurezza di rete.

  12. Non apportare modifiche in Mostra opzioni avanzate.

  13. Fai clic su Crea cluster. Potrebbero essere necessari diversi minuti prima che AlloyDB crei il cluster e lo visualizzi nella pagina Panoramica del cluster primario.

gcloud

Per creare il cluster, utilizza il comando gcloud alloydb clusters create.

gcloud alloydb clusters create CLUSTER_ID \
  --password=PASSWORD \
  --region=REGION_ID \
  --project=PROJECT_ID \
  --enable-private-service-connect

Sostituisci quanto segue:

  • CLUSTER_ID: l'ID del cluster che stai creando. Deve iniziare con una lettera minuscola e può contenere lettere minuscole, numeri e trattini.

  • PASSWORD: la password da utilizzare per l'utente postgres predefinito.

  • REGION_ID: la regione in cui vuoi posizionare il cluster.

  • PROJECT_ID: l'ID del progetto in cui vuoi posizionare il cluster.

Questo comando avvia un'operazione a lunga esecuzione, restituendo un ID operazione.

Per creare l'istanza primaria, utilizza il comando gcloud alloydb instances create.

gcloud alloydb instances create INSTANCE_ID \
    --instance-type=PRIMARY \
    --cpu-count=CPU_COUNT \
    --availability-type=AVAILABILITY \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --allowed-psc-projects=ALLOWED_PROJECT_LIST \
    --psc-network-attachment-uri=NETWORK_ATTACHMENT_URI \

Sostituisci quanto segue:

  • INSTANCE_ID: l'ID dell'istanza che stai creando. Deve iniziare con una lettera minuscola e può contenere lettere minuscole, numeri e trattini.
  • CPU_COUNT: il numero di vCPU che vuoi per l'istanza. I valori validi includono:
    • 2: 2 vCPU, 16 GB di RAM
    • 4: 4 vCPU, 32 GB di RAM
    • 8: 8 vCPU, 64 GB di RAM
    • 16: 16 vCPU, 128 GB di RAM
    • 32: 32 vCPU, 256 GB di RAM
    • 64: 64 vCPU, 512 GB di RAM
    • 96: 96 vCPU, 768 GB di RAM
    • 128: 128 vCPU, 864 GB di RAM
  • AVAILABILITY: indica se questa istanza deve essere a disponibilità elevata (HA), con nodi in più zone. I valori validi includono:
    • REGIONAL: crea un'istanza HA con nodi attivo e di standby separati e failover automatico tra loro. Questo è il valore predefinito, adatto agli ambienti di produzione.
    • ZONAL: crea un'istanza di base, contenente un solo nodo e nessun failover automatico.
  • REGION_ID: la regione in cui vuoi posizionare l'istanza.
  • CLUSTER_ID: l'ID del cluster che hai creato in precedenza.
  • ALLOWED_PROJECT_LIST: l'elenco separato da virgole di ID progetto o numero di progetto a cui vuoi consentire l'accesso all'istanza, ad esempio my-project-1, 12345,my-project-n.
  • NETWORK_ATTACHMENT_URI (facoltativo): il nome completo della risorsa dell'URI del collegamento di rete che crei per la connettività in uscita. Ad esempio: projects/PROJECT_ID/regions/REGION_ID/networkAttachments/NETWORK_ATTACHMENT_ID.
  • CONSUMER_NETWORK: il percorso della rete VPC da cui devono essere creati gli endpoint Private Service Connect. Ad esempio: projects/my-host-project/global/networks/default. Questa opzione viene applicata quando crei automaticamente gli endpoint. Assicurati che la policy di connessione al servizio sia stata creata. Puoi creare il criterio prima o dopo la creazione dell'istanza.
  • CONSUMER_PROJECT: il progetto in cui viene creato l'endpoint Private Service Connect. Se utilizzi una rete VPC condiviso, può trattarsi del progetto host o del progetto di servizio. Tutti i progetti specificati nei parametri di connessione automatica vengono aggiunti automaticamente ai progetti consentiti. Se vuoi, per i progetti in cui vuoi creare manualmente endpoint Private Service Connect, puoi aggiungerli all'elenco dei progetti consentiti.

Un cluster secondario creato per un cluster primario abilitato a Private Service Connect eredita automaticamente la configurazione di Private Service Connect. Per saperne di più, consulta Creare un cluster secondario.

Terraform

Per creare un'istanza all'interno del cluster di database, utilizza una risorsa Terraform.

resource "google_alloydb_instance" "default" {
  cluster       = google_alloydb_cluster.default.name
  instance_id   = "alloydb-instance"
  instance_type = "PRIMARY"
  machine_config {
    cpu_count = 2
  }
  psc_instance_config {
  allowed_consumer_projects = ["123456789"]
  psc_interface_configs {
    network_attachment_resource = google_compute_network_attachment.default.id
  }
  }
}

resource "google_compute_network" "default" {
    name = "alloydb-network"
    auto_create_subnetworks = false
}

resource "google_compute_subnetwork" "default" {
    name = "alloydb-subnetwork"
    region = "us-central1"
    network = google_compute_network.default.id
    ip_cidr_range = "10.0.0.0/16"
}

resource "google_compute_network_attachment" "default" {
  name                  = "alloydb-network-attachment"
  region                = "us-central1"
  connection_preference = "ACCEPT_AUTOMATIC"
  subnetworks = [
    google_compute_subnetwork.default.self_link
  ]
}

data "google_project" "project" {}

Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.

Recupera il collegamento al servizio

Dopo aver creato un'istanza AlloyDB con Private Service Connect abilitato, recupera l'URL del collegamento di servizio e utilizzalo per creare l'endpoint Private Service Connect.

Utilizza il comando gcloud alloydb instances describe per visualizzare i dettagli di un'istanza.

gcloud alloydb instances describe INSTANCE_ID \
 --cluster=CLUSTER_ID \
 --region=REGION_ID

Sostituisci quanto segue:

  • INSTANCE_ID: l'ID dell'istanza.
  • CLUSTER_ID: l'ID del cluster.
  • REGION_ID: la regione in cui viene eseguito il deployment del cluster AlloyDB.

Di seguito è riportato un esempio di risposta per il comando:

  "pscInstanceConfig": {
    "serviceAttachmentLink:": "https://www.googleapis.com/compute/v1/projects/my-project/regions/my-region/serviceAttachments/my-service-attachment-id"
        "allowedConsumerProjects": {
          "45678",
          "12345",
              "67890",
            },
            "pscDnsName": "11111111-1111-1111-1111-111111111111.22222222-2222-2222-2222-222222222222.alloydb-psc.goog."
          }

Il parametro serviceAttachmentLink contiene il valore dell'URL dell'allegato di servizio.

Crea un endpoint Private Service Connect

Per creare un endpoint Private Service Connect, trasmetti l'URL del collegamento al servizio insieme a un nome endpoint univoco. Per ulteriori informazioni sulla creazione di un endpoint Private Service Connect, consulta Creare un endpoint.

Puoi anche prenotare un indirizzo IP interno per l'endpoint Private Service Connect utilizzando il comando gcloud compute addresses create e poi utilizzare l'indirizzo IP prenotato quando crei l'endpoint.

Configura la connettività in uscita

Per abilitare la connettività in uscita, imposta l'URI dell'allegato di rete quando crei o aggiorni un'istanza AlloyDB. Questo URI consente la connettività sicura tra il tuo progetto e l'istanza AlloyDB durante le operazioni in uscita, come le migrazioni.

Crea il collegamento di rete

Puoi creare un collegamento di rete in grado di accettare connessioni automaticamente(ACCEPT_AUTOMATIC) o manualmente (ACCEPT_MANUAL). Per ulteriori informazioni sulla creazione di un collegamento di rete, consulta Creare e gestire i collegamenti di rete.

Se scegli di creare un collegamento di rete che accetta automaticamente le connessioni, non devi impostare esplicitamente un elenco di progetti accettati. Per accettare manualmente le connessioni, devi aggiungere il numero di progetto di proprietà del servizio del progetto in cui si trova l'istanza AlloyDB all'elenco dei progetti accettati.

Per trovare il numero di progetto di proprietà del servizio, esegui questo comando:

gcloud alpha alloydb clusters describe CLUSTER_ID --region=REGION_ID

Di seguito è riportato un esempio di risposta:

pscConfig:
pscEnabled: true
serviceOwnedProjectNumber: 123456789012

Dopo aver identificato il numero di progetto di proprietà del servizio, aggiungi il progetto all'elenco dei progetti accettati e poi crea il collegamento alla rete.

Assicurati che la regione del collegamento di rete sia la stessa della regione dell'istanza AlloyDB. Inoltre, la subnet utilizzata per creare l'allegato di rete deve appartenere agli intervalli IP RFC 1918, ovvero 10.0.0.0/8, 172.16.0.0/12 e 192.168.0.0/16.

Aggiorna un'istanza per la connettività in uscita

Per abilitare la connettività in uscita per un'istanza AlloyDB esistente con Private Service Connect abilitato, trasmetti il parametro --psc-network-attachment-uri al comando gcloud alloydb instances update.

Le istanze AlloyDB create prima del 1° marzo 2025 non possono essere aggiornate per abilitare le connessioni in uscita. In alternativa, ti consigliamo di utilizzare una delle seguenti opzioni:


Disattivare la connettività in uscita

Per disattivare la connettività in uscita per un'istanza AlloyDB esistente, trasmetti il parametro --clear-psc-network-attachment-uri al comando gcloud alloydb instances update.

Connettiti a un'istanza AlloyDB

Puoi connetterti a un'istanza AlloyDB con Private Service Connect abilitato utilizzando una delle seguenti opzioni:

Devi configurare un record DNS per i connettori di lingue in modo che utilizzino Private Service Connect.

Per i metodi che utilizzano un record DNS, devi creare il record in una zona DNS privata nella rete VPC corrispondente. Dopo aver creato un record DNS, puoi utilizzarlo per connetterti a un'istanza abilitata a Private Service Connect.

Configura una zona gestita DNS e un record DNS

Per configurare una zona gestita DNS e un record DNS nella tua rete:

  1. Per visualizzare le informazioni di riepilogo su un'istanza AlloyDB, incluso il nome DNS dell'istanza, utilizza il comando gcloud alloydb instances describe:

    gcloud alloydb instances describe INSTANCE_ID \
    --cluster=CLUSTER_ID --region=REGION_ID

    Sostituisci quanto segue:

    • INSTANCE_ID: l'ID dell'istanza.
    • CLUSTER_ID: l'ID del cluster.

    Nella risposta, verifica che venga visualizzato il nome DNS. Il nome DNS ha il pattern INSTANCE_UID.PROJECT_UID.REGION_NAME.alloydb-psc.goog..

  2. Per creare una zona DNS privata, utilizza il comando gcloud dns managed-zones create. Questa zona è associata alla rete VPC utilizzata per connettersi all'istanza AlloyDB tramite l'endpoint Private Service Connect.

    gcloud dns managed-zones create ZONE_NAME \
    --project=PROJECT_ID \
    --description=DESCRIPTION \
    --dns-name=DNS_NAME \
    --networks=NETWORK_NAME \
    --visibility=private

    Sostituisci quanto segue:

    • ZONE_NAME: il nome della zona DNS.
    • PROJECT_ID: l'ID o il numero di progetto del Google Cloud progetto che contiene la zona.
    • DESCRIPTION: una descrizione della zona (ad esempio, una zona DNS per l'istanza AlloyDB).
    • DNS_NAME: il nome DNS della zona, ad esempio INSTANCE_UID.PROJECT_UID.REGION_NAME.alloydb-psc.goog..
    • NETWORK_NAME: il nome della rete VPC. Nel caso di una rete VPC condiviso, imposta il percorso completo della rete VPC, ad esempio projects/cymbal-project/global/networks/shared-vpc-network.
  3. Dopo aver creato l'endpoint Private Service Connect, per creare un record DNS nella zona, utilizza il comando gcloud dns record-sets create:

    gcloud dns record-sets create DNS_NAME \
    --project=PROJECT_ID \
    --type=RRSET_TYPE \
    --rrdatas=RR_DATA \
    --zone=ZONE_NAME

    Sostituisci quanto segue:

    • DNS_NAME: il nome DNS recuperato in precedenza in questa procedura.
    • RRSET_TYPE: il tipo di record di risorse del set di record DNS (ad esempio, A).
    • RR_DATA: l'indirizzo IP allocato per l'endpoint Private Service Connect (ad esempio, 198.51.100.5). Puoi anche inserire più valori, ad esempio rrdata1 rrdata2 rrdata3 (ad esempio, 10.1.2.3 10.2.3.4 10.3.4.5).

Connessione diretta tramite un record DNS

Dopo aver creato un endpoint Private Service Connect e un record DNS, puoi connetterti direttamente utilizzando il record DNS.

  1. Per recuperare il record DNS dell'endpoint Private Service Connect, utilizza il comando gcloud compute addresses describe:

    gcloud compute addresses describe DNS_RECORD \
    --project=PROJECT_ID \
    --region=REGION_NAME

    Sostituisci quanto segue:

    • DNS_RECORD: il record DNS per l'endpoint.
    • PROJECT_ID: l'ID o il numero di progetto del Google Cloud progetto che contiene l'endpoint.
    • REGION_NAME: il nome della regione per l'endpoint.
  2. Per connetterti all'istanza AlloyDB, utilizza il record DNS.

    psql -U USERNAME -h DNS_RECORD

    Sostituisci quanto segue:

    • USERNAME: il nome dell'utente che si connette all'istanza.
    • DNS_RECORD: il record DNS dell'endpoint.

Connessione tramite il proxy di autenticazione AlloyDB

AlloyDB Auth Proxy è un connettore che ti consente di stabilire connessioni autorizzate e criptate ai database AlloyDB. Il proxy di autenticazione AlloyDB funziona con un client locale in esecuzione nell'ambiente locale. L'applicazione comunica con il proxy di autenticazione AlloyDB con il protocollo di database standard utilizzato dal database.

Quando imposti il flag --psc durante l'avvio del client Auth Proxy, AlloyDB Auth Proxy utilizza il record DNS che hai creato per connettersi all'istanza abilitata per Private Service Connect.

Assicurati di avviare il client Auth Proxy passando l'URI dell'istanza che recuperi utilizzando il comando gcloud alloydb instances list e imposta il flag --psc.

Per saperne di più sulla connessione a un'istanza utilizzando il proxy di autenticazione, vedi Connessione tramite il proxy di autenticazione.

Connessione tramite i connettori dei linguaggi AlloyDB

I connettori di linguaggio AlloyDB sono librerie che forniscono mTLS automatica con TLS 1.3 e autorizzazione Identity and Access Management (IAM) quando ci si connette a un'istanza AlloyDB.

Dopo che Language Connector determina che l'istanza supporta Private Service Connect, utilizza il record DNS che hai creato per connettersi all'istanza.

Java

Se utilizzi Private Service Connect per connetterti all'istanza AlloyDB, includi quanto segue:

config.addDataSourceProperty("alloydbIpType", "PSC");

Per ulteriori informazioni sull'utilizzo dell'endpoint Private Service Connect nei connettori di linguaggio Java, consulta il repository GitHub.

Python (pg8000)

Se utilizzi Private Service Connect per connetterti all'istanza AlloyDB, includi quanto segue:

  def getconn() -> pg8000.dbapi.Connection:
      conn: pg8000.dbapi.Connection = connector.connect(
          inst_uri,
          "pg8000",
          user=user,
          password=password,
          db=db,
          # use ip_type to specify PSC
          ip_type=IPTypes.PSC,
      )
      return conn

Per saperne di più sull'utilizzo dell'endpoint Private Service Connect in Python Language Connectors, consulta il repository GitHub.

Python (asyncpg)

Se utilizzi Private Service Connect per connetterti all'istanza AlloyDB, includi quanto segue:

  async def getconn() -> asyncpg.Connection:
    conn: asyncpg.Connection = await connector.connect(
        inst_uri,
        "asyncpg",
        user=user,
        password=password,
        db=db,
        # use ip_type to specify PSC
        ip_type=IPTypes.PSC,
    )
    return conn

Per saperne di più sull'utilizzo dell'endpoint Private Service Connect in Python Language Connectors, consulta il repository GitHub.

Go (pgx)

Se utilizzi Private Service Connect per connetterti all'istanza AlloyDB, includi quanto segue:

d.Dial(ctx, instURI, alloydbconn.WithPSC())

Per saperne di più sull'utilizzo dell'endpoint Private Service Connect nei connettori del linguaggio Go, consulta il repository GitHub.

Go (database/sql)

Se utilizzi Private Service Connect per connetterti all'istanza AlloyDB, includi quanto segue:

  cleanup, err := pgxv5.RegisterDriver(
    "alloydb",
    alloydbconn.WithDefaultDialOptions(alloydbconn.WithPSC())
)

Per saperne di più sull'utilizzo dell'endpoint Private Service Connect nei connettori del linguaggio Go, consulta il repository GitHub.

Connettiti direttamente tramite un indirizzo IP interno

Dopo aver creato un endpoint Private Service Connect, puoi connetterti direttamente a un'istanza AlloyDB utilizzando l'indirizzo IP che hai configurato.

  1. Per recuperare l'indirizzo IP dell'endpoint Private Service Connect, utilizza il comando gcloud compute addresses describe:

    gcloud compute addresses describe ADDRESS_NAME \
    --project=PROJECT_ID \
    --region=REGION_NAME

    Sostituisci quanto segue:

    • ADDRESS_NAME: il nome dell'indirizzo IP dell'endpoint.
    • PROJECT_ID: l'ID o il numero di progetto del Google Cloud progetto che contiene l'endpoint.
    • REGION_NAME: il nome della regione per l'endpoint.
  2. Per connetterti all'istanza AlloyDB, utilizza l'indirizzo IP interno.

    psql -U USERNAME -h IP_ADDRESS"

    Sostituisci quanto segue:

    • USERNAME: il nome dell'utente che si connette all'istanza.
    • IP_ADDRESS: l'indirizzo IP dell'endpoint.

Limitazioni

  • Puoi configurare fino a 20 endpoint Private Service Connect che si connettono al collegamento del servizio di un'istanza AlloyDB con Private Service Connect abilitato.
  • Non puoi utilizzare il flag --network quando crei un cluster abilitato a Private Service Connect perché è associato all'accesso ai servizi privati.
  • Non puoi attivare o disattivare Private Service Connect su un'istanza esistente.
  • Non puoi configurare un'istanza con Private Service Connect abilitato per utilizzare l'accesso ai servizi privati.