Pour vous connecter à une instance principale, un pool de lecture ou une instance secondaire AlloyDB pour PostgreSQL à partir de plusieurs réseaux de cloud privé virtuel (VPC) appartenant à différents groupes, équipes, projets ou organisations sans configurer l'appairage de réseaux VPC, vous pouvez configurer Private Service Connect.
Rôles requis
Selon que vous configurez l'infrastructure Private Service Connect ou que vous vous connectez en tant que client de base de données, attribuez les rôles IAM (Identity and Access Management) appropriés :
| Tâche | Rôle | Description |
|---|---|---|
| Configurer des points de terminaison et des rattachements de réseau Private Service Connect | Administrateur de réseaux Compute (roles/compute.networkAdmin) |
Accorde un contrôle total sur le réseau VPC consommateur qui lance une connexion à une instance AlloyDB. Si vous vous connectez à partir de plusieurs réseaux VPC, chaque réseau est géré par son propre administrateur. |
| Configurer des zones et des enregistrements DNS privés | Administrateur DNS (roles/dns.admin) |
Accorde un contrôle total sur les ressources Cloud DNS, y compris les zones DNS privées et les jeux d'enregistrements. |
| Créer et gérer des clusters et des instances AlloyDB | Administrateur AlloyDB (roles/alloydb.admin) |
Fournit un contrôle complet sur les clusters et les instances AlloyDB tout au long de leur cycle de vie. Si vous utilisez un rôle personnalisé, accordez alloydb.clusters.create (pour activer Private Service Connect sur un cluster), ainsi que alloydb.instances.create et alloydb.instances.update (pour configurer les projets clients et les URI de rattachement de réseau autorisés). |
| Se connecter à une instance en tant que client | Client AlloyDB (roles/alloydb.client) et Consommateur Service Usage (roles/serviceusage.serviceUsageConsumer) (facultatif) |
Obligatoire si vous vous connectez via le proxy d'authentification AlloyDB ou les connecteurs de langage AlloyDB. Si vous utilisez également l'authentification IAM pour les bases de données, attribuez le rôle Utilisateur de base de données AlloyDB (roles/alloydb.databaseUser). Si vous vous connectez directement à l'aide de l'authentification de base de données intégrée, aucun rôle IAM n'est requis pour la connexion client. |
Créer un point de terminaison Private Service Connect
Les points de terminaison Private Service Connect sont des adresses IP internes d'un réseau VPC client, auxquelles les utilisateurs appartenant à ce réseau peuvent accéder directement pour se connecter aux instances AlloyDB.
Pour qu'AlloyDB crée automatiquement le point de terminaison Private Service Connect, procédez comme suit :
- Réutilisez une règle de connexion de service existante ou créez-en une dans vos réseaux VPC. Cette règle vous permet de provisionner automatiquement des points de terminaison Private Service Connect.
- Créez un cluster et une instance AlloyDB avec Private Service Connect activé pour l'instance, puis configurez l'instance pour créer automatiquement des points de terminaison Private Service Connect.
- Récupérez le point de terminaison de l'instance. Cela vous permet d'utiliser le point de terminaison pour vous connecter à l'instance.
- Facultatif : Mettez à jour un cluster et une instance AlloyDB existants avec Private Service Connect activé pour générer automatiquement des points de terminaison.
Vous pouvez également créer le point de terminaison Private Service Connect manuellement.
Créer le point de terminaison automatiquement
Pour configurer votre instance de sorte qu'AlloyDB crée automatiquement le point de terminaison Private Service Connect, procédez comme suit :
- Créez une règle de connexion de service.
- Créez une instance AlloyDB.
- Récupérez le point de terminaison.
- Mettre à jour une instance pour créer automatiquement des points de terminaison
- Configurez la connectivité sortante.
Créer une règle de connexion de service
Vous pouvez réutiliser une règle de connexion de service existante ou en créer une à l'aide de la console Google Cloud ou de la Google Cloud CLI.
Une règle de connexion de service vous permet d'autoriser une classe de service spécifiée à créer un point de terminaison Private Service Connect dans votre réseau VPC client. Vous pouvez utiliser la règle de connexion de service pour permettre à AlloyDB de créer automatiquement des points de terminaison Private Service Connect.
Console
Dans la console Google Cloud , accédez à la page Private Service Connect.
Cliquez sur l'onglet Règles de connexion.
Cliquez sur Créer une règle de connexion.
Saisissez un nom pour la règle de connexion.
Dans la section Détails du service, sélectionnez
google-cloud-alloydbpour Classe de service.Dans la section Champ d'application des points de terminaison, sélectionnez un réseau et une région auxquels cette règle s'applique.
Dans la section Configuration des points de terminaison, sélectionnez un ou plusieurs sous-réseaux dans le menu Sous-réseaux. Les sous-réseaux permettent d'allouer des adresses IP aux points de terminaison.
Facultatif : spécifiez une limite de connexion pour la règle. Cette limite détermine le nombre de points de terminaison qu'AlloyDB peut créer pour cette règle de connexion. Si vous ne spécifiez pas de limite de connexion, il n'y a pas de limite.
Cliquez sur Créer une règle.
gcloud
Pour créer une règle de connexion de service, utilisez la commande 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
Remplacez les éléments suivants :
POLICY_NAME: nom de votre stratégie de connexion de service.NETWORK: réseau auquel s'applique cette règle.PROJECT_ID: ID du projet ou numéro du projet du réseau VPC. Pour les réseaux VPC partagés, vous devez déployer des règles de connexion de service dans le projet hôte, car ces règles ne sont pas compatibles avec les projets de service.REGION: région à laquelle cette règle s'applique. La même règle doit exister pour chaque région dans laquelle vous souhaitez automatiser la connectivité du service.SERVICE_CLASS: identifiant de ressource fourni par le producteur de la classe de service. Pour AlloyDB, la classe de service estgoogle-cloud-alloydb.SUBNETS: un ou plusieurs sous-réseaux client standard utilisés pour allouer des adresses IP aux points de terminaison Private Service Connect. Ces adresses IP sont automatiquement allouées et renvoyées au pool de sous-réseaux à mesure que des instances de service géré sont créées et supprimées. Les sous-réseaux doivent se trouver dans la même région que la règle de connexion de service. Si plusieurs règles de connexion partagent la même région, vous pouvez réutiliser le même sous-réseau dans ces règles. Vous pouvez fournir plusieurs sous-réseaux dans une liste séparée par des virgules.LIMIT: nombre maximal de points de terminaison que vous pouvez créer avec cette règle. Si vous ne spécifiez pas de limite, aucune limite n'est appliquée.DESCRIPTION: description facultative de la règle de connexion de service.PRODUCER_INSTANCE_LOCATION: indique si la règle automatise les connexions aux instances AlloyDB. Vous pouvez définir cette valeur sur l'une des options suivantes :none(par défaut) : l'instance AlloyDB se trouve dans le même projet que la règle de connexion au service. Dans un environnement de VPC partagé, si l'instance AlloyDB réside dans un projet de service et que vous créez la règle de connexion dans le projet hôte, vous devez définir ce paramètre surcustom-resource-hierarchy-levels.custom-resource-hierarchy-levels: nécessite de définir le chemin d'accès à l'emplacement Resource Manager pour les projets dont vous souhaitez automatiser la connectivité via le paramètreallowed-google-producers-resource-hierarchy-level.
LIST_OF_NODES: définissez ce paramètre si l'emplacement de votre instance de producteur est défini surcustom-resource-hierarchy-levels. Ce paramètre est une liste de projets, de dossiers et d'organisations dans lesquels résident les instances pour lesquelles vous souhaitez automatiser la connectivité. La liste est au formatprojects/PROJECT_ID,folders/FOLDER_IDouorganizations/ORGANIZATION_ID.
Par exemple, la commande suivante crée une règle de connexion de service pour la classe de service google-cloud-alloydb qui alloue des adresses IP provenant du sous-réseau managed-service-subnet. Vous pouvez créer jusqu'à 10 points de terminaison Private Service Connect avec cette règle. Les points de terminaison doivent être créés dans des projets appartenant à la même organisation que l'instance de service géré. L'instance AlloyDB se trouve dans le projet 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
Créer une instance AlloyDB
Vous pouvez créer une instance avec Private Service Connect activé et la configurer pour qu'elle crée automatiquement des points de terminaison à l'aide de la console Google Cloud , de la gcloud CLI ou de Terraform.
Console
Dans la console Google Cloud , accédez à la page Clusters.
Cliquez sur Créer un cluster.
Dans le champ ID du cluster, saisissez
my-cluster.Saisissez un mot de passe. Notez ce mot de passe, car vous l'utiliserez dans ce guide de démarrage rapide.
Conservez la version de base de données par défaut.
Sélectionnez la région
us-central1 (Iowa).Conservez l'ID d'instance par défaut,
my-cluster-primary.Dans Disponibilité zonale, conservez l'option Zone unique. Bien que nous ne recommandions pas d'instance à zone unique pour la production, vous allez utiliser une seule zone dans ce guide de démarrage rapide pour réduire les coûts. Pour en savoir plus, consultez Réduire les coûts en utilisant des instances de base.
Sélectionnez le type de machine
2 vCPU, 16 GB.Conservez la connectivité IP privée.
- Sélectionnez Private Service Connect (PSC).
- Cliquez sur Ajouter un point de terminaison.
- Sélectionnez le projet dans lequel vous souhaitez créer le point de terminaison.
- Sélectionnez le réseau.
- Cliquez sur Vérifier la règle pour obtenir des informations sur la règle de connexion au service.
Conservez les paramètres par défaut sous Sécurité réseau.
N'apportez aucune modification à Afficher les options avancées.
Cliquez sur Créer un cluster. La création du cluster par AlloyDB et son affichage sur la page Présentation du cluster principal peuvent prendre plusieurs minutes.
gcloud
Pour créer le cluster, utilisez la commande gcloud alloydb clusters
create.
gcloud alloydb clusters create CLUSTER_ID \
--password=PASSWORD \
--region=REGION_ID \
--project=PROJECT_ID \
--enable-private-service-connectRemplacez les éléments suivants :
CLUSTER_ID: ID du cluster que vous créez. Il doit commencer par une lettre minuscule et peut contenir des lettres minuscules, des chiffres et des traits d'union.PASSWORD: mot de passe à utiliser pour l'utilisateurpostgrespar défaut.REGION_ID: région dans laquelle se trouve le cluster.PROJECT_ID: ID du projet dans lequel se trouve le cluster.
Cette commande lance une opération de longue durée et renvoie un ID d'opération.
Pour créer l'instance AlloyDB, qu'il s'agisse d'une instance principale ou d'un pool de lecture, afin d'utiliser Private Service Connect, utilisez la commande gcloud alloydb instances create. Incluez le paramètre --allowed-psc-projects pour spécifier les projets clients qui peuvent créer des points de terminaison pour se connecter à cette instance.
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_PROJECTRemplacez les éléments suivants :
INSTANCE_ID: ID de l'instance que vous créez. Il doit commencer par une lettre minuscule et peut contenir des lettres minuscules, des chiffres et des traits d'union.CPU_COUNT: nombre de processeurs virtuels que vous souhaitez pour l'instance. Les valeurs valides sont les suivantes :2: 2 vCPU, 16 Go de RAM4: 4 vCPU, 32 Go de RAM8: 8 vCPU, 64 Go de RAM16: 16 vCPU, 128 Go de RAM32: 32 vCPU, 256 Go de RAM64: 64 vCPU, 512 Go de RAM96: 96 vCPU, 768 Go de RAM128: 128 vCPU, 864 Go de RAM
AVAILABILITY: indique si cette instance doit être disponibilité élevée (HA), avec des nœuds dans plusieurs zones. Les valeurs valides sont les suivantes :REGIONAL: crée une instance de haute disponibilité avec des nœuds actifs et de secours distincts, et un basculement automatique entre eux. Il s'agit de la valeur par défaut, adaptée aux environnements de production.ZONAL: crée une instance de base, ne contenant qu'un seul nœud, sans basculement automatique.
REGION_ID: région où se trouve l'instance.CLUSTER_ID: ID du cluster que vous avez créé précédemment.ALLOWED_PROJECT_LIST: liste des ID ou des numéros de projet, séparés par une virgule, que vous souhaitez autoriser à accéder à l'instance (par exemple,my-project-1,12345,my-project-n).NETWORK_ATTACHMENT_URI(facultatif) : nom complet de la ressource de l'URI de rattachement de réseau que vous créez pour la connectivité sortante. Par exemple :projects/PROJECT_ID/regions/REGION_ID/networkAttachments/NETWORK_ATTACHMENT_ID.CONSUMER_NETWORK: chemin d'accès au réseau VPC dans lequel les points de terminaison Private Service Connect sont créés. Exemple :projects/my-host-project/global/networks/default. Cette option s'applique lorsque vous créez des points de terminaison automatiquement. Assurez-vous que la règle de connexion au service est créée. Vous pouvez créer la stratégie avant ou après la création de l'instance.CONSUMER_PROJECT: projet dans lequel le point de terminaison Private Service Connect est créé. Si vous utilisez un réseau VPC partagé, il peut s'agir du projet hôte ou du projet de service. Tous les projets que vous spécifiez dans les paramètres de connexion automatique sont automatiquement ajoutés à vos projets autorisés. Si vous le souhaitez, vous pouvez ajouter à votre liste de projets autorisés les projets dans lesquels vous souhaitez créer manuellement des points de terminaison Private Service Connect.
Un cluster secondaire créé pour un cluster principal sur lequel Private Service Connect est activé hérite automatiquement de la configuration Private Service Connect. Pour en savoir plus, consultez Créer un cluster secondaire.
Terraform
Pour créer un cluster et une instance AlloyDB avec Private Service Connect activé, utilisez les ressources Terraform google_alloydb_cluster et google_alloydb_instance :
resource "google_alloydb_cluster" "default" {
cluster_id = "alloydb-cluster"
location = "us-central1"
psc_config {
psc_enabled = true
}
}
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 = [data.google_project.project.number]
psc_auto_connections {
consumer_network = google_compute_network.default.id
consumer_project = data.google_project.project.project_id
}
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" {}
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez Commandes Terraform de base.
Récupérer le point de terminaison
En récupérant l'adresse IP interne, qui est le point de terminaison Private Service Connect d'une instance, vous pouvez utiliser ce point de terminaison pour vous connecter à l'instance.
Pour afficher des informations sur une instance, y compris l'adresse IP qui correspond au point de terminaison Private Service Connect de l'instance, utilisez la commande gcloud alloydb instances describe :
gcloud alloydb instances describe INSTANCE_NAME \ --project=PROJECT_ID \ --cluster=CLUSTER_ID \ --region=REGION_ID \ --format='json(pscInstanceConfig.pscAutoConnections)'
Remplacez les éléments suivants :
- INSTANCE_NAME : nom de l'instance AlloyDB. Si Private Service Connect est activé pour cette instance, les points de terminaison Private Service Connect des réseaux VPC peuvent s'y connecter.
- PROJECT_ID : ID ou numéro de projet du projet Google Cloud contenant l'instance.
- CLUSTER_ID : ID du cluster.
- REGION_ID : région où se trouve l'instance.
Dans la réponse, notez la valeur qui apparaît à côté du champ pscInstanceConfig.pscAutoConnections.ipAddress. Cette valeur correspond à l'adresse IP interne, qui est également le point de terminaison Private Service Connect de l'instance.
Mettre à jour une instance pour créer automatiquement des points de terminaison
Pour mettre à jour une instance afin de créer automatiquement des points de terminaison, utilisez la commande gcloud alloydb instances update avec le paramètre --psc-auto-connections :
gcloud alloydb instances update INSTANCE_ID \
--cluster=CLUSTER_ID \
--region=REGION_ID \
--project=PROJECT_ID \
--psc-auto-connections=network=CONSUMER_NETWORK,project=CONSUMER_PROJECTRemplacez les éléments suivants :
INSTANCE_ID: ID de l'instance que vous mettez à jour.CLUSTER_ID: ID du cluster.REGION_ID: région où se trouve l'instance.PROJECT_ID: ID du projet dans lequel se trouve l'instance.CONSUMER_NETWORK: chemin d'accès au réseau VPC dans lequel les points de terminaison Private Service Connect sont créés, par exempleprojects/my-host-project/global/networks/default.CONSUMER_PROJECT: projet dans lequel le point de terminaison Private Service Connect est créé.
Configurer la connectivité sortante
Pour activer la connectivité sortante pour votre instance AlloyDB avec Private Service Connect activé, vous devez définir l'URI de rattachement de réseau pour l'instance. Pour en savoir plus, consultez Configurer la connectivité sortante.
Créer le point de terminaison manuellement
Les sections suivantes expliquent comment créer manuellement un point de terminaison Private Service Connect.
Créer une instance AlloyDB
Vous pouvez créer une instance avec Private Service Connect activé à l'aide de la console Google Cloud , de la gcloud CLI ou de Terraform.
Console
Dans la console Google Cloud , accédez à la page Clusters.
Cliquez sur Créer un cluster.
Dans le champ ID du cluster, saisissez
my-cluster.Saisissez un mot de passe. Notez ce mot de passe, car vous l'utiliserez dans ce guide de démarrage rapide.
Conservez la version de base de données par défaut.
Sélectionnez la région
us-central1 (Iowa).Conservez l'ID d'instance par défaut,
my-cluster-primary.Dans Disponibilité zonale, conservez l'option Zone unique. Bien que nous ne recommandions pas d'instance à zone unique pour la production, vous allez utiliser une seule zone dans ce guide de démarrage rapide pour réduire les coûts. Pour en savoir plus, consultez Réduire les coûts en utilisant des instances de base.
Sélectionnez le type de machine
2 vCPU, 16 GB.Conservez la connectivité IP privée et sélectionnez Private Service Connect (PSC).
Sous Projets clients autorisés, saisissez les ID ou les numéros des projets que vous souhaitez autoriser à se connecter à l'instance.
Conservez les paramètres par défaut sous Sécurité réseau.
N'apportez aucune modification à Afficher les options avancées.
Cliquez sur Créer un cluster. La création du cluster par AlloyDB et son affichage sur la page Présentation du cluster principal peuvent prendre plusieurs minutes.
gcloud
Pour créer le cluster, utilisez la commande gcloud alloydb clusters
create.
gcloud alloydb clusters create CLUSTER_ID \
--password=PASSWORD \
--region=REGION_ID \
--project=PROJECT_ID \
--enable-private-service-connectRemplacez les éléments suivants :
CLUSTER_ID: ID du cluster que vous créez. Il doit commencer par une lettre minuscule et peut contenir des lettres minuscules, des chiffres et des traits d'union.PASSWORD: mot de passe à utiliser pour l'utilisateurpostgrespar défaut.REGION_ID: région dans laquelle se trouve le cluster.PROJECT_ID: ID du projet dans lequel se trouve le cluster.
Cette commande lance une opération de longue durée et renvoie un ID d'opération.
Pour créer l'instance principale, utilisez la commande 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_URIRemplacez les éléments suivants :
INSTANCE_ID: ID de l'instance que vous créez. Il doit commencer par une lettre minuscule et peut contenir des lettres minuscules, des chiffres et des traits d'union.CPU_COUNT: nombre de processeurs virtuels que vous souhaitez pour l'instance. Les valeurs valides sont les suivantes :2: 2 vCPU, 16 Go de RAM4: 4 vCPU, 32 Go de RAM8: 8 vCPU, 64 Go de RAM16: 16 vCPU, 128 Go de RAM32: 32 vCPU, 256 Go de RAM64: 64 vCPU, 512 Go de RAM96: 96 vCPU, 768 Go de RAM128: 128 vCPU, 864 Go de RAM
AVAILABILITY: indique si cette instance doit être disponibilité élevée (HA), avec des nœuds dans plusieurs zones. Les valeurs valides sont les suivantes :REGIONAL: crée une instance de haute disponibilité avec des nœuds actifs et de secours distincts, et un basculement automatique entre eux. Il s'agit de la valeur par défaut, adaptée aux environnements de production.ZONAL: crée une instance de base, ne contenant qu'un seul nœud, sans basculement automatique.
REGION_ID: région où se trouve l'instance.CLUSTER_ID: ID du cluster que vous avez créé précédemment.ALLOWED_PROJECT_LIST: liste des ID ou des numéros de projet, séparés par une virgule, que vous souhaitez autoriser à accéder à l'instance (par exemple,my-project-1,12345,my-project-n).NETWORK_ATTACHMENT_URI(facultatif) : nom complet de la ressource de l'URI de rattachement de réseau que vous créez pour la connectivité sortante. Par exemple :projects/PROJECT_ID/regions/REGION_ID/networkAttachments/NETWORK_ATTACHMENT_ID.
Un cluster secondaire créé pour un cluster principal sur lequel Private Service Connect est activé hérite automatiquement de la configuration Private Service Connect. Pour en savoir plus, consultez Créer un cluster secondaire.
Terraform
Pour créer un cluster et une instance AlloyDB avec Private Service Connect activé, utilisez les ressources Terraform google_alloydb_cluster et google_alloydb_instance :
resource "google_alloydb_cluster" "default" {
cluster_id = "alloydb-cluster"
location = "us-central1"
psc_config {
psc_enabled = true
}
}
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 = [data.google_project.project.number]
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" {}
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez Commandes Terraform de base.
Obtenir le rattachement de service
Après avoir créé une instance AlloyDB avec Private Service Connect activé, obtenez l'URL du rattachement de service et utilisez-la pour créer le point de terminaison Private Service Connect.
Pour afficher des informations sur une instance, utilisez la commande gcloud alloydb instances describe.
gcloud alloydb instances describe INSTANCE_ID \
--cluster=CLUSTER_ID \
--region=REGION_IDRemplacez les éléments suivants :
INSTANCE_ID: ID de l'instanceCLUSTER_ID: ID du cluster.REGION_ID: région dans laquelle le cluster AlloyDB est déployé.
Voici un exemple de réponse à la commande :
{
"pscInstanceConfig": {
"serviceAttachmentLink": "https://www.googleapis.com/compute/v1/projects/my-project/regions/my-region/serviceAttachments/my-service-attachment-id",
"allowedConsumerProjects": [
"45678",
"12345",
"67890"
],
"pscDnsName": "015f5524-0555-4a0a-ac5a-0d15d64b15cb.008225d5-070a-4566-aaad-fcb3c87c5901.us-east4.alloydb-psc.goog."
}
}
Le paramètre serviceAttachmentLink contient la valeur de l'URL du rattachement de service.
Créer un point de terminaison Private Service Connect
Pour créer un point de terminaison Private Service Connect, transmettez l'URL du rattachement de service ainsi qu'un nom de point de terminaison unique. Pour en savoir plus sur la création d'un point de terminaison Private Service Connect, consultez Créer un point de terminaison.
Vous pouvez également réserver une adresse IP interne pour le point de terminaison Private Service Connect à l'aide de la commande gcloud compute addresses create, puis utiliser l'adresse IP réservée lors de la création du point de terminaison, ou provisionner l'adresse IP interne et la règle de transfert à l'aide de Terraform :
resource "google_compute_address" "psc_endpoint_ip" {
name = "alloydb-psc-endpoint-ip"
region = "us-central1"
subnetwork = google_compute_subnetwork.default.id
address_type = "INTERNAL"
}
resource "google_compute_forwarding_rule" "psc_endpoint" {
name = "alloydb-psc-endpoint"
region = "us-central1"
network = google_compute_network.default.id
ip_address = google_compute_address.psc_endpoint_ip.self_link
load_balancing_scheme = ""
target = google_alloydb_instance.default.psc_instance_config[0].service_attachment_link
}
Configurer la connectivité sortante
Pour activer la connectivité sortante, définissez l'URI du rattachement de réseau lorsque vous créez ou mettez à jour une instance AlloyDB. Cet URI permet une connectivité sécurisée entre votre projet et l'instance AlloyDB lors des opérations sortantes telles que les migrations.
Créer le rattachement de réseau
Vous pouvez créer un rattachement de réseau qui accepte les connexions automatiquement (ACCEPT_AUTOMATIC) ou manuellement (ACCEPT_MANUAL). Pour en savoir plus sur la création d'un rattachement de réseau, consultez Créer et gérer des rattachements de réseau.
Si vous choisissez de créer un rattachement de réseau qui accepte automatiquement les connexions, vous n'avez pas besoin de définir explicitement une liste de projets acceptés. Pour accepter les connexions manuellement, vous devez ajouter le numéro du projet appartenant au service où se trouve votre instance AlloyDB à la liste des projets acceptés.
Pour trouver le numéro du projet appartenant au service, exécutez la commande suivante :
gcloud alloydb clusters describe CLUSTER_ID --region=REGION_IDVoici un exemple de réponse :
pscConfig:
pscEnabled: true
serviceOwnedProjectNumber: 123456789012
Une fois que vous avez identifié le numéro du projet appartenant au service, ajoutez le projet à la liste des projets acceptés, puis créez le rattachement de réseau.
Assurez-vous que la région du rattachement de réseau est la même que celle de l'instance AlloyDB. De plus, le sous-réseau utilisé pour créer le rattachement de réseau doit appartenir aux plages d'adresses IP RFC 1918, qui sont 10.0.0.0/8, 172.16.0.0/12 et 192.168.0.0/16.
Mettre à jour une instance pour la connectivité sortante
Pour activer la connectivité sortante pour une instance AlloyDB existante sur laquelle Private Service Connect est activé, utilisez la commande gcloud alloydb instances update avec le paramètre --psc-network-attachment-uri :
gcloud alloydb instances update INSTANCE_ID \
--cluster=CLUSTER_ID \
--region=REGION_ID \
--project=PROJECT_ID \
--psc-network-attachment-uri=NETWORK_ATTACHMENT_URIRemplacez les éléments suivants :
INSTANCE_ID: ID de l'instanceCLUSTER_ID: ID du cluster.REGION_ID: région où se trouve l'instance.PROJECT_ID: ID du projet dans lequel se trouve l'instanceNETWORK_ATTACHMENT_URI: nom complet de la ressource de l'URI de rattachement de réseau que vous créez pour la connectivité sortante, par exempleprojects/PROJECT_ID/regions/REGION_ID/networkAttachments/NETWORK_ATTACHMENT_ID.
Les instances AlloyDB créées avant le 1er mars 2025 ne peuvent pas être mises à jour pour activer les connexions sortantes. Nous vous recommandons d'utiliser l'une des options suivantes :
- Créez une instance répliquée régionale de réplication interrégionale (CRR) de votre instance principale avec la connectivité sortante activée. Ensuite, effectuez une commutation pour désigner l'instance répliquée comme nouvelle instance principale.
- Effectuez une sauvegarde de votre cluster AlloyDB et de votre instance principale existants. Ensuite, créez un cluster AlloyDB et une instance principale avec la connectivité sortante activée. Enfin, restaurez la sauvegarde créée précédemment dans le nouveau cluster.
Désactiver la connectivité sortante
Pour désactiver la connectivité sortante pour une instance AlloyDB existante, utilisez la commande gcloud alloydb instances update avec le paramètre --clear-psc-network-attachment-uri :
gcloud alloydb instances update INSTANCE_ID \
--cluster=CLUSTER_ID \
--region=REGION_ID \
--project=PROJECT_ID \
--clear-psc-network-attachment-uriRemplacez les éléments suivants :
INSTANCE_ID: ID de l'instanceCLUSTER_ID: ID du cluster.REGION_ID: région où se trouve l'instance.PROJECT_ID: ID du projet dans lequel se trouve l'instance
Se connecter à une instance AlloyDB
Vous pouvez vous connecter à une instance AlloyDB sur laquelle Private Service Connect est activé à l'aide de l'une des options suivantes :
- Se connecter directement à l'aide d'un enregistrement DNS
- Utiliser le proxy d'authentification AlloyDB avec un enregistrement DNS
- Utiliser les connecteurs de langage AlloyDB avec un enregistrement DNS
- Se connecter directement à l'aide d'une adresse IP interne
pscDnsName prégénéré de l'instance à l'adresse IP interne du point de terminaison Private Service Connect lorsque vous vous connectez à l'aide du proxy d'authentification AlloyDB ou des connecteurs de langage AlloyDB.Pour les méthodes qui utilisent un enregistrement DNS, vous devez créer l'enregistrement dans une zone DNS privée du réseau VPC client correspondant. La valeur pscDnsName renvoyée par l'API AlloyDB est une chaîne de nom d'hôte prégénérée qui ne se résout pas tant que vous n'avez pas créé de zone DNS privée et d'enregistrement A dans votre réseau VPC client.
Configurer une zone gérée DNS et un enregistrement DNS
Pour configurer une zone gérée DNS et un enregistrement DNS dans votre réseau client, procédez comme suit :
gcloud
Pour afficher des informations récapitulatives sur une instance AlloyDB, y compris le
pscDnsNameprégénéré de l'instance, utilisez la commandegcloud alloydb instances describe:gcloud alloydb instances describe INSTANCE_ID \ --cluster=CLUSTER_ID \ --region=REGION_ID \ --format='json(pscInstanceConfig)'Remplacez les éléments suivants :
INSTANCE_ID: ID de l'instanceCLUSTER_ID: ID du cluster.REGION_ID: région où se trouve l'instance.
Dans la réponse, vérifiez que le champ
pscDnsNames'affiche. Le nom DNS est au formatINSTANCE_UID.CLUSTER_UID.REGION_NAME.alloydb-psc.goog.(par exemple,015f5524-0555-4a0a-ac5a-0d15d64b15cb.008225d5-070a-4566-aaad-fcb3c87c5901.us-east4.alloydb-psc.goog.).Pour créer une zone DNS privée, utilisez la commande
gcloud dns managed-zones create. Cette zone est associée au réseau VPC utilisé pour se connecter à l'instance AlloyDB via le point de terminaison Private Service Connect.gcloud dns managed-zones create ZONE_NAME \ --project=PROJECT_ID \ --description=DESCRIPTION \ --dns-name=DNS_NAME \ --networks=NETWORK_NAME \ --visibility=privateRemplacez les éléments suivants :
ZONE_NAME: nom de la zone DNS.PROJECT_ID: ID ou numéro du projet Google Cloud contenant la zone.DESCRIPTION: description de la zone (par exemple,DNS zone for the AlloyDB instance).DNS_NAME: nom DNS de la zone, tel queINSTANCE_UID.CLUSTER_UID.REGION_NAME.alloydb-psc.goog.(ou le domaine parentalloydb-psc.goog.).NETWORK_NAME: nom du réseau VPC consommateur. Pour un réseau VPC partagé, définissez cette option sur le chemin d'accès complet du réseau VPC, par exempleprojects/cymbal-project/global/networks/shared-vpc-network.
Après avoir créé le point de terminaison Private Service Connect, créez un enregistrement DNS
Adans la zone à l'aide de la commandegcloud dns record-sets create:gcloud dns record-sets create DNS_NAME \ --project=PROJECT_ID \ --type=RRSET_TYPE \ --rrdatas=RR_DATA \ --zone=ZONE_NAMERemplacez les éléments suivants :
DNS_NAME:pscDnsNameque vous avez récupéré précédemment dans cette procédure.RRSET_TYPE: type d'enregistrement de ressource du jeu d'enregistrements DNS (A).RR_DATA: adresse IP interne allouée au point de terminaison Private Service Connect (par exemple,198.51.100.5).
Terraform
Pour créer une zone DNS Cloud DNS privée et un enregistrement A qui mappe l'pscDnsName de l'instance à l'adresse IP interne du point de terminaison Private Service Connect, utilisez les ressources Terraform google_dns_managed_zone et google_dns_record_set :
resource "google_dns_managed_zone" "psc_dns_zone" {
name = "alloydb-psc-zone"
dns_name = google_alloydb_instance.default.psc_instance_config[0].psc_dns_name
description = "Private DNS zone for AlloyDB PSC endpoint"
visibility = "private"
private_visibility_config {
networks {
network_url = google_compute_network.default.id
}
}
}
resource "google_dns_record_set" "psc_dns_record" {
name = google_alloydb_instance.default.psc_instance_config[0].psc_dns_name
type = "A"
ttl = 300
managed_zone = google_dns_managed_zone.psc_dns_zone.name
rrdatas = [google_compute_address.psc_endpoint_ip.address]
}
Se connecter directement à l'aide d'un enregistrement DNS
Après avoir créé un point de terminaison Private Service Connect et configuré un enregistrement DNS A privé pour le pscDnsName de l'instance, vous pouvez vous connecter directement depuis un client du réseau VPC client à l'aide du nom DNS (sans le point final) :
psql -U USERNAME -h DNS_NAME -d DATABASE_NAMERemplacez les éléments suivants :
USERNAME: nom de l'utilisateur de base de données qui se connecte à l'instance.DNS_NAME: nom de l'enregistrement DNS (tel que lepscDnsNamede l'instance sans le point final) qui correspond au point de terminaison Private Service Connect.DATABASE_NAME: nom de la base de données à laquelle se connecter (par exemple,postgres).
Se connecter à l'aide du proxy d'authentification AlloyDB
Le proxy d'authentification AlloyDB est un connecteur qui vous permet d'établir des connexions autorisées et chiffrées aux bases de données AlloyDB. Le proxy d'authentification AlloyDB fonctionne avec un client local qui s'exécute dans l'environnement local. Pour communiquer avec le proxy d'authentification AlloyDB, votre application utilise le protocole de base de données standard de votre base de données.
Lorsque vous définissez l'option --psc lors du démarrage du client du proxy d'authentification, le proxy d'authentification AlloyDB résout le pscDnsName de l'instance à l'aide de l'enregistrement DNS privé que vous avez créé pour vous connecter à l'instance sur laquelle Private Service Connect est activé.
Démarrez le client du proxy d'authentification en transmettant l'URI de l'instance que vous récupérez à l'aide de la commande gcloud alloydb instances describe, puis définissez l'option --psc.
Pour en savoir plus sur la connexion à une instance à l'aide du proxy d'authentification, consultez Se connecter à l'aide du proxy d'authentification AlloyDB.
Se connecter à l'aide des connecteurs de langage AlloyDB
Les connecteurs de langage AlloyDB sont des bibliothèques qui fournissent un mTLS automatisé avec TLS 1.3 et une autorisation IAM lors de la connexion à une instance AlloyDB.
Une fois le connecteur de langage configuré pour Private Service Connect, il résout l'pscDnsName de l'instance à l'aide de l'enregistrement DNS privé que vous avez créé pour vous connecter à l'instance.
Java
Si vous utilisez Private Service Connect pour vous connecter à votre instance AlloyDB, incluez les éléments suivants :
config.addDataSourceProperty("alloydbIpType", "PSC");
Pour en savoir plus sur l'utilisation d'un point de terminaison Private Service Connect dans le connecteur Java AlloyDB, consultez le dépôt GitHub.
Python (pg8000)
Si vous utilisez Private Service Connect pour vous connecter à votre instance AlloyDB, incluez les éléments suivants :
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
Pour en savoir plus sur l'utilisation d'un point de terminaison Private Service Connect dans le connecteur Python AlloyDB, consultez le dépôt GitHub.
Python (asyncpg)
Si vous utilisez Private Service Connect pour vous connecter à votre instance AlloyDB, incluez les éléments suivants :
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
Pour en savoir plus sur l'utilisation d'un point de terminaison Private Service Connect dans le connecteur Python AlloyDB, consultez le dépôt GitHub.
Go (pgx)
Si vous utilisez Private Service Connect pour vous connecter à votre instance AlloyDB, incluez les éléments suivants :
d.Dial(ctx, instURI, alloydbconn.WithPSC())
Pour en savoir plus sur l'utilisation d'un point de terminaison Private Service Connect dans le connecteur Go AlloyDB, consultez le dépôt GitHub.
Go (database/sql)
Si vous utilisez Private Service Connect pour vous connecter à votre instance AlloyDB, incluez les éléments suivants :
cleanup, err := postgres.RegisterDriver(
"alloydb",
alloydbconn.WithDefaultDialOptions(alloydbconn.WithPSC()),
)
Pour en savoir plus sur l'utilisation d'un point de terminaison Private Service Connect dans le connecteur Go AlloyDB, consultez le dépôt GitHub.
Se connecter directement via une adresse IP interne
Après avoir créé un point de terminaison Private Service Connect, vous pouvez vous connecter directement à une instance AlloyDB à l'aide de l'adresse IP interne du point de terminaison, sans configurer d'enregistrement DNS.
Pour récupérer l'adresse IP d'un point de terminaison Private Service Connect créé manuellement, utilisez la commande
gcloud compute addresses describe:gcloud compute addresses describe ADDRESS_NAME \ --project=PROJECT_ID \ --region=REGION_NAMERemplacez les éléments suivants :
ADDRESS_NAME: nom de la ressource d'adresse IP réservée du point de terminaison.PROJECT_ID: ID ou numéro du projet Google Cloud contenant le point de terminaison.REGION_NAME: nom de la région du point de terminaison.
Pour vous connecter à l'instance AlloyDB, utilisez l'adresse IP interne :
psql -U USERNAME -h IP_ADDRESSRemplacez les éléments suivants :
USERNAME: nom de l'utilisateur qui se connecte à l'instance.IP_ADDRESS: l'adresse IP interne du point de terminaison.
Limites
- Vous pouvez configurer jusqu'à 20 points de terminaison Private Service Connect qui se connectent au rattachement de service d'une instance AlloyDB sur laquelle Private Service Connect est activé.
- Vous ne pouvez pas utiliser l'option
--networklorsque vous créez un cluster sur lequel Private Service Connect est activé, car elle est associée à l'accès aux services privés. - Vous ne pouvez pas activer ni désactiver Private Service Connect sur une instance existante.
- Vous ne pouvez pas configurer une instance pour laquelle Private Service Connect est activé afin d'utiliser l'accès aux services privés.