Ce document explique comment configurer Private Service Connect pour les connexions réseau privées de vos instances Cloud SQL.
Une fois que vous avez configuré Private Service Connect et ses points de terminaison, vous et vos clients d'application pouvez vous connecter à une instance Cloud SQL principale ou à l'une de ses instances répliquées avec accès en lecture à partir de plusieurs réseaux de cloud privé virtuel (VPC) appartenant à différents groupes, équipes, projets ou organisations. Vous pouvez également configurer des noms DNS globaux ou par instance pour les connexions client basées sur les noms DNS. Cela est utile pour les scénarios de basculement et de reprise après sinistre.
Avant de commencer
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Service Networking, Network Connectivity, Cloud DNS APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Make sure that you have the following role or roles on the project: Compute Network Admin, Cloud SQL Admin, Cloud DNS Admin, Cloud SQL Instance User
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
- Click Grant access.
-
In the New principals field, enter your user identifier. This is typically the identifier for a user in a workforce identity pool. For details, see Represent workforce pool users in IAM policies, or contact your administrator.
- Click Select a role, then search for the role.
- To grant additional roles, click Add another role and add each additional role.
- Click Save.
-
-
Installez la gcloud CLI.
-
Configurez la gcloud CLI afin d'utiliser votre identité fédérée.
Pour en savoir plus, consultez Se connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init
Rôles requis pour Private Service Connect
Le tableau suivant fournit des informations sur les rôles requis pour configurer et se connecter à Private Service Connect avec une instance Cloud SQL.
| Rôle | Description |
|---|---|
compute.networkAdmin |
Accorde un contrôle total sur le réseau VPC qui lance une connexion à une instance Cloud SQL. Vous pouvez créer et gérer des adresses IP, des règles de pare-feu, des stratégies de connexion de service et des points de terminaison Private Service Connect. Si vous utilisez Private Service Connect pour vous connecter à une instance Cloud SQL à partir de plusieurs réseaux VPC, chaque réseau a son propre administrateur. |
dns.admin |
Accorde un contrôle total sur les ressources Cloud DNS, y compris les zones et enregistrements DNS. |
cloudsql.admin |
Fournit un contrôle complet sur une instance Cloud SQL et contrôle l'instance tout au long de son cycle de vie. |
cloudsql.instanceUser |
Fournit un accès à l'instance Cloud SQL. Si vous vous connectez via le client proxy d'authentification Cloud SQL, vous devez disposer du rôle Client Cloud SQL. Si vous vous connectez directement, vous n'avez pas besoin de rôles ni d'autorisations IAM (Identity and Access Management). |
Pour configurer automatiquement une règle de connexion au service lorsque vous créez votre instance Cloud SQL, vous avez besoin de rôles supplémentaires et de la possibilité de les attribuer à l'agent de service Cloud SQL. Pour en savoir plus, consultez Créer une règle de connexion de service.
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 clients de ce réseau peuvent accéder directement. Les clients peuvent utiliser ces points de terminaison pour se connecter aux instances Cloud SQL.
Vous pouvez demander à Cloud SQL de créer automatiquement un point de terminaison Private Service Connect dans votre VPC ou créer le point de terminaison manuellement.
Créer automatiquement le point de terminaison
Pour que Cloud SQL crée automatiquement le point de terminaison Private Service Connect, procédez comme suit :
Créez une règle de connexion de service dans votre réseau VPC. Cette règle vous permet de provisionner automatiquement des points de terminaison Private Service Connect.
Créez une instance Cloud SQL avec Private Service Connect activé pour l'instance, puis configurez l'instance pour qu'elle crée 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.
Créer une règle de connexion de service
Vous pouvez créer une stratégie de connexion de service à l'aide de la console Google Cloud , de gcloud CLI ou de l'API.
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.
Spécifiez la classe de service en procédant comme suit :
- Dans la case Classe de service source, sélectionnez Services Google.
- Dans le menu Classe de service, sélectionnez
google-cloud-sql, car Cloud SQL est le service géré pour le règlement sur les connexions.
Dans la section Champ d'application des points de terminaison cibles, sélectionnez un réseau et une région auxquels cette règle s'applique.
Facultatif : Si la règle de connexion au service et l'instance Cloud SQL se trouvent dans des projets, des dossiers ou des organisations différents, configurez la Portée personnalisée de l'instance de service :
- Activez l'option Champ d'application de l'instance de service personnalisée.
- Dans le champ Portées, saisissez les ID des projets, des dossiers ou des organisations dans lesquels se trouve l'instance.
Dans la section Règle, 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 pouvant être créés à l'aide de cette règle de connexion. Si vous ne spécifiez pas de limite de connexion, il n'y en aura aucune.
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=RESOURCE_HIERARCHY_LEVEL
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 s'applique cette règle. 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 Cloud SQL, la classe de service estgoogle-cloud-sql.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 allouées automatiquement 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 pouvant être créés à l'aide de cette règle. Si vous ne spécifiez pas de limite, il n'y en aura aucune.DESCRIPTION: description facultative de la règle de connexion de service.PRODUCER_INSTANCE_LOCATION: indiquez si vous souhaitez autoriser une hiérarchie personnalisée de lieux pour une instance Cloud SQL. Si l'instance se trouve dans un projet, un dossier ou une organisation différents de ceux de la règle, vous devez définir cette valeur surcustom-resource-hierarchy-levels.RESOURCE_HIERARCHY_LEVEL: liste des projets, dossiers ou organisations dans lesquels se trouve l'instance. Cette liste se présente sous l'une des formes suivantes :projects/PROJECT_IDfolders/FOLDER_IDorganizations/ORGANIZATION_ID.
Par exemple, la commande suivante crée une règle de connexion de service pour la classe de service
google-cloud-sql qui alloue des adresses IP provenant du sous-réseau managed-services. 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 Cloud SQL se trouve dans le projet myproject.
gcloud network-connectivity service-connection-policies create cloud-sql-policy \
--network=default \
--project=my-project \
--region=us-central1 \
--service-class=google-cloud-sql \
--subnets=managed-service-subnet \
--psc-connection-limit=10 \
--producer-instance-location=custom-resource-hierarchy-levels \
--allowed-google-producers-resource-hierarchy-level=projects/myproject
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
PROJECT_ID: par l'ID du projet.REGION: région de votre règle de connexion de service.POLICY_NAME: nom de votre stratégie de connexion de service.DESCRIPTION: description facultative de votre règle de connexion de service.NETWORK: réseau de votre règle de connexion de service.LIMIT: nombre maximal de points de terminaison pouvant être créés à l'aide de cette règle. Si vous ne spécifiez pas de limite, il n'y en aura aucune.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.SERVICE_CLASS: identifiant de ressource fourni par le producteur de la classe de service.
Méthode HTTP et URL :
POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies?serviceConnectionPolicyId=POLICY_NAME
Corps JSON de la requête :
{
"description": "DESCRIPTION",
"network": "projects/PROJECT_ID/global/networks/NETWORK",
"pscConfig": {
"limit": "LIMIT",
"subnetworks": [
"projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET"
]
},
"serviceClass": "SERVICE_CLASS"
}
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{
"name": "projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.networkconnectivity.v1.OperationMetadata",
"createTime": "2023-08-15T16:59:29.236110917Z",
"target": "projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies/POLICY_NAME",
"verb": "create",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
Créer automatiquement une règle de connexion de service
Vous pouvez créer une règle de connexion de service automatiquement lorsque vous créez l'instance Cloud SQL. Toutefois, cette option nécessite des autorisations d'administration supplémentaires.
Console
Si vous utilisez la console Google Cloud , créez l'instance Cloud SQL avec Private Service Connect activé. La console Google Cloud recherche les rôles requis et les configure automatiquement. Vous devrez peut-être activer l'API Network Connectivity si elle n'est pas déjà activée pour votre projet.
gcloud ou REST
Si vous utilisez la gcloud CLI ou l'API Cloud SQL Admin, vous devez attribuer des rôles supplémentaires à l'agent de service Cloud SQL avant de créer l'instance.
Si un agent de service Cloud SQL spécifique au projet n'existe pas déjà dans le projet qui hébergera l'instance Cloud SQL, créez-en un.
Pour créer l'agent de service, exécutez la commande suivante :
gcloud beta services identity create \ --service=sqladmin.googleapis.com \ --project=INSTANCE_PROJECT
Remplacez les éléments suivants :
INSTANCE_PROJECT: projet dans lequel vous prévoyez de créer l'instance Cloud SQL.
La commande crée un agent de service au format
service-INSTANCE_PROJECT_NUMBER@gcp-sa-cloudsql..Fournissez les autorisations IAM requises à l'agent de service Cloud SQL en lui attribuant les rôles suivants :
- Administrateur du réseau client Service Automation
(
roles/networkconnectivity.consumerNetworkAdmin) - Lecteur de réseau Compute (
roles/compute.networkViewer)
Pour ajouter les rôles à l'agent de service Cloud SQL, exécutez les commandes suivantes :
gcloud projects add-iam-policy-binding CONSUMER_PROJECT \ --member='serviceAccount:CLOUD_SQL_SERVICE_AGENT' \ --role='roles/networkconnectivity.consumerNetworkAdmin' gcloud projects add-iam-policy-binding CONSUMER_PROJECT \ --member='serviceAccount:CLOUD_SQL_SERVICE_AGENT' \ --role='roles/compute.networkViewer'
Remplacez les éléments suivants :
CONSUMER_PROJECT: projet dans lequel le point de terminaison Private Service Connect sera créé. Si vous utilisez un réseau VPC partagé, il peut s'agir du projet hôte ou du projet de service.CLOUD_SQL_SERVICE_AGENT: adresse e-mail du compte de l'agent de service Cloud SQL que vous avez créé.
- Administrateur du réseau client Service Automation
(
Créer une instance Cloud SQL
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 gcloud CLI ou de l'API.
Console
-
Dans la console Google Cloud , accédez à la page Instances Cloud SQL.
- Dans la section Personnaliser votre instance, développez la section Connexions.
- Cochez la case Adresse IP privée.
- Dans la section Choisir une méthode de connexion privée, cochez la case Private Service Connect (PSC).
- Dans la section Configuration du point de terminaison, cliquez sur Ajouter un point de terminaison.
- Dans la section Configuration du point de terminaison, procédez comme suit :
- Dans la fiche Nouveau point de terminaison, sélectionnez le projet dans lequel vous souhaitez configurer le point de terminaison dans le menu Projet.
- Dans le menu Réseau, sélectionnez un réseau pour votre point de terminaison.
- Si l'API Network Connectivity n'est pas encore activée, cliquez sur Activer.
- Cliquez sur Confirmer la configuration réseau. Si une règle de connexion de service est détectée pour le réseau sélectionné, un message de réussite s'affiche. Si aucune règle de connexion au service n'est détectée, mais que les autorisations ont été accordées, Google Cloud crée une règle de connexion au service pour vous.
- Facultatif : Définissez d'autres options de configuration de l'instance.
- Cliquez sur Créer une instance.
gcloud
Pour créer une instance avec Private Service Connect activé, utilisez la commande gcloud sql instances create :
gcloud sql instances create INSTANCE_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --tier=MACHINE_TYPE \ --availability-type=AVAILABILITY_TYPE \ --database-version=DATABASE_VERSION \ --no-assign-ip \ --enable-private-service-connect \ --allowed-psc-projects=ALLOWED_PROJECTS \ --psc-auto-connections=network=CONSUMER_NETWORK,project=CONSUMER_PROJECT \ --enable-psc-auto-dns \ --enable-psc-write-endpoint-dns
Facultatif. Pour créer ou mettre à jour automatiquement une règle de connexion au service lorsque vous créez l'instance Cloud SQL, ajoutez le paramètre --enable-psc-auto-connection-policy à la commande.
Vous devez configurer des autorisations supplémentaires pour utiliser ce paramètre. Pour en savoir plus, consultez Créer automatiquement une règle de connexion de service.
Remplacez les éléments suivants :
INSTANCE_NAME: nom de l'instance.PROJECT_ID: ID ou numéro de projet du projet Google Cloud contenant l'instance.REGION_NAME: nom de la région pour l'instance.MACHINE_TYPE: type de machine de l'instance.AVAILABILITY_TYPE: active la haute disponibilité pour l'instance. Pour ce paramètre, spécifiez l'une des valeurs suivantes :REGIONAL: permet d'activer la haute disponibilité (recommandé pour les instances de production). L'instance bascule vers une autre zone dans la région sélectionnée.ZONAL: n'offre aucune fonctionnalité de basculement. Il s'agit de la valeur par défaut.
Pour en savoir plus sur la définition et la suppression de la haute disponibilité pour les instances, consultez les sections Configurer la haute disponibilité d'une instance existante et Désactiver la haute disponibilité pour une instance.
DATABASE_VERSION: version de la base de données pour l'instance (par exemple,POSTGRES_13).ALLOWED_PROJECTS: liste d'ID ou de numéros de projet autorisés, séparés par une virgule, à partir desquels les points de terminaison Private Service Connect peuvent se connecter aux instances Cloud SQL.Si un projet ne figure pas dans cette liste, vous ne pouvez pas y créer de points de terminaison Private Service Connect pour vous connecter à l'instance.
CONSUMER_NETWORK: chemin d'accès au réseau VPC à partir duquel les points de terminaison Private Service Connect doivent être créés. Exemple :projects/my-host-project/global/networks/default.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 ajoutés automatiquement à vos projets autorisés. Si vous le souhaitez, vous pouvez ajouter à votre liste de projets autorisés les projets pour lesquels vous souhaitez créer manuellement des points de terminaison Private Service Connect.
Utilisez ces paramètres pour activer et configurer Private Service Connect :
--enable-private-service-connect: active Private Service Connect.--allowed-psc-projects=ALLOWED_PROJECTS: spécifie une liste d'ID ou de numéros de projet autorisés, séparés par une virgule. Il s'agit des projets à partir desquels les points de terminaison Private Service Connect peuvent se connecter aux instances Cloud SQL.--psc-auto-connections=network=CONSUMER_NETWORK,project=CONSUMER_PROJECT: spécifie le chemin d'accès au réseau VPC pour lequel des points de terminaison Private Service Connect doivent être créés.--enable-psc-auto-dns: indique si l'automatisation DNS Private Service Connect doit être activée pour cette instance. Par défaut, la haute disponibilité est désactivée pour les nouvelles instances lorsque Private Service Connect est activé à l'aide de--enable-private-service-connect.Lorsque l'automatisation DNS est activée, Cloud SQL provisionne un enregistrement DNS par instance dans tous les réseaux configurés avec des connexions automatiques Private Service Connect.
--enable-psc-write-endpoint-dns: indique si l'automatisation des noms DNS des points de terminaison d'écriture Private Service Connect est activée pour cette instance. Cette fonctionnalité n'est disponible que pour les instances Enterprise Plus dans lesquelles--enable-psc-auto-dnsest également défini. Elle est désactivée par défaut lorsqu'une nouvelle instance est créée.Lorsque l'automatisation DNS du point de terminaison d'écriture est activée, Cloud SQL provisionne un enregistrement DNS global pour servir de point de terminaison d'écriture pour le cluster de réplication dans tous les réseaux configurés avec des connexions automatiques Private Service Connect. Cet enregistrement DNS global pointe toujours vers l'instance principale actuelle du cluster de réplication, ce qui permet un basculement d'application fluide sans nécessiter de mise à jour de la chaîne de connexion côté client en cas d'opération de basculement ou de commutation d'instance répliquée.
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- INSTANCE_NAME : nom de l'instance Cloud SQL.
- PROJECT_ID : ID ou numéro de projet du projet Google Cloud contenant l'instance.
- REGION_NAME : nom de la région pour l'instance.
- DATABASE_VERSION : version de la base de données pour l'instance (par exemple,
POSTGRES_13). - AVAILABILITY_TYPE : type de disponibilité zonale de l'instance. Utilisez ce paramètre pour activer ou désactiver la haute disponibilité pour l'instance en spécifiant l'une des valeurs suivantes :
REGIONAL: permet d'activer la haute disponibilité (recommandé pour les instances de production). L'instance bascule vers une autre zone dans la région sélectionnée.ZONAL: n'offre aucune fonctionnalité de basculement. Il s'agit de la valeur par défaut.
Pour en savoir plus sur la définition et la suppression de la haute disponibilité pour les instances, consultez les sections Configurer la haute disponibilité d'une instance existante et Désactiver la haute disponibilité pour une instance.
- ALLOWED_PROJECTS : liste d'ID ou de numéros de projets autorisés, séparés par une virgule, à partir desquels les points de terminaison Private Service Connect peuvent se connecter aux instances Cloud SQL.
Si un projet ne figure pas dans cette liste, vous ne pouvez pas créer de points de terminaison Private Service Connect dans le projet pour vous connecter à 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 pour lesquels vous souhaitez créer manuellement des points de terminaison Private Service Connect.
- PARENT_PROJECT : projet contenant le réseau CONSUMER_NETWORK. Si vous ne spécifiez pas un autre projet dans CONSUMER_PROJECT, les points de terminaison sont automatiquement créés dans PARENT_PROJECT .
-
CONSUMER_PROJECT : facultatif. Ne spécifiez cette option que si CONSUMER_NETWORK est un réseau VPC partagé et que vous souhaitez autoriser la création automatique de points de terminaison Private Service Connect dans un 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 pour lesquels vous souhaitez créer manuellement des points de terminaison Private Service Connect.
- CONSUMER_NETWORK : réseau VPC dans lequel vous souhaitez autoriser la création automatique de points de terminaison Private Service Connect. Par exemple :
projects/my-host-project/global/networks/default. - MACHINE_TYPE : type de machine de l'instance.
Méthode HTTP et URL :
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
Corps JSON de la requête :
{
"name": "INSTANCE_NAME",
"project": PROJECT_ID",
"region": "REGION_NAME",
"databaseVersion": "POSTGRES_13",
"kind": "sql#instance",
"settings": {
"availabilityType": "AVAILABILITY_TYPE",
"ipConfiguration": {
"ipv4Enabled": false,
"pscConfig": {
"allowedConsumerProjects": [
"ALLOWED_PROJECTS"
],
"pscAutoConnections": [
{
"consumerProject":"CONSUMER_PROJECT",
"consumerNetwork":"projects/PARENT_PROJECT/global/networks/CONSUMER_NETWORK"
}
],
"pscEnabled": true,
"pscAutoConnectionPolicyEnabled": true,
"pscAutoDnsEnabled": true,
"pscWriteEndpointDnsEnabled": true
}
},
"kind": "sql#settings",
"pricingPlan": "PER_USE",
"replicationType": "SYNCHRONOUS",
"tier": "MACHINE_TYPE"
}
}Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME",
"status": "RUNNING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "2023-06-14T18:48:35.499Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_NAME",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
Voici les champs que vous utilisez pour activer l'automatisation DNS et un nom DNS de point de terminaison d'écriture global :
psc_auto_dns_enabled: indique si l'automatisation DNS Private Service Connect est activée pour cette instance. Par défaut, il est désactivé pour les nouvelles instances lorsque Private Service Connect est activé à l'aide de--enable-private-service-connect.Lorsque l'automatisation DNS est activée, Cloud SQL provisionne un enregistrement DNS universel sur tous les réseaux configurés avec des connexions automatiques Private Service Connect.
psc_write_endpoint_dns_enabled: indique si l'automatisation DNS du point de terminaison d'écriture Private Service Connect est activée pour cette instance. Cette fonctionnalité n'est disponible que pour les instances Enterprise Plus dans lesquelles--enable-psc-auto-dnsest également défini. Elle est désactivée par défaut lorsqu'une nouvelle instance est créée.Lorsque l'automatisation des noms DNS des points de terminaison d'écriture est activée, Cloud SQL provisionne un enregistrement DNS global pour servir de point de terminaison d'écriture dans tous les réseaux configurés avec des connexions automatiques Private Service Connect. Cet enregistrement DNS global pointe toujours vers l'instance principale actuelle du cluster de réplication, ce qui permet un basculement d'application fluide sans nécessiter de mise à jour de la chaîne de connexion côté client en cas d'opération de basculement ou de commutation d'instance répliquée.
Pour créer automatiquement une règle de connexion de service lorsque vous créez l'instance, activez le champ suivant :
psc_auto_connection_policy_enabled: indique s'il faut autoriserGoogle Cloud à créer ou à mettre à jour une règle de connexion de service lors de la création de l'instance Cloud SQL. Vous devez configurer des autorisations supplémentaires pour utiliser cette option. Pour en savoir plus, consultez Créer automatiquement une règle de connexion de service.
Terraform
Pour créer l'instance, utilisez une ressource Terraform avec un champ psc_config :
resource "google_sql_database_instance" "INSTANCE_NAME"
{
name = "INSTANCE_NAME"
database_version = "DATABASE_VERSION"
settings
{
tier = "MACHINE_TYPE"
ip_configuration
{
psc_config
{
psc_enabled = true
psc_auto_dns_enabled = true
psc_write_endpoint_dns_enabled = true
allowed_consumer_projects = ["ALLOWED_PROJECTS"]
psc_auto_connections
{
consumer_network = "CONSUMER_NETWORK"
consumer_service_project_id = "CONSUMER_PROJECT"
}
}
ipv4_enabled = false
}
}
}Remplacez les éléments suivants :
INSTANCE_NAME: nom de l'instance.DATABASE_VERSION: version de la base de données pour l'instance (par exemple,POSTGRES_13).MACHINE_TYPE: type de machine de l'instance.ALLOWED_PROJECTS: liste d'ID ou de numéros de projet autorisés, séparés par une virgule, à partir desquels les points de terminaison Private Service Connect peuvent se connecter aux instances Cloud SQL.Si un projet ne figure pas dans cette liste, vous ne pouvez pas y créer de points de terminaison Private Service Connect pour vous connecter à l'instance.
CONSUMER_NETWORK: chemin d'accès au réseau VPC à partir duquel les points de terminaison Private Service Connect doivent être créés. Exemple :projects/my-host-project/global/networks/default.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.
Utilisez ces champs pour activer l'automatisation DNS et un nom DNS de point de terminaison d'écriture global :
psc_auto_dns_enabled: indique si l'automatisation DNS Private Service Connect est activée pour cette instance. Par défaut, il est désactivé pour les nouvelles instances lorsque Private Service Connect est activé à l'aide de--enable-private-service-connect.Lorsque l'automatisation DNS est activée, Cloud SQL provisionne un enregistrement DNS universel sur tous les réseaux configurés avec des connexions automatiques Private Service Connect.
psc_write_endpoint_dns_enabled: indique si l'automatisation DNS du point de terminaison d'écriture Private Service Connect est activée pour cette instance. Cette fonctionnalité n'est disponible que pour les instances Enterprise Plus dans lesquelles--enable-psc-auto-dnsest également défini. Elle est désactivée par défaut lorsqu'une nouvelle instance est créée.Lorsque l'automatisation des noms DNS des points de terminaison d'écriture est activée, Cloud SQL provisionne un enregistrement DNS global pour servir de point de terminaison d'écriture dans tous les réseaux configurés avec des connexions automatiques Private Service Connect. Cet enregistrement DNS global pointe toujours vers l'instance principale actuelle du cluster de réplication, ce qui permet un basculement d'application fluide sans nécessiter de mise à jour de la chaîne de connexion côté client en cas d'opération de basculement ou de commutation d'instance répliquée.
Pour activer Private Service Connect et créer automatiquement une règle de connexion de service, utilisez le champ suivant :
psc_auto_connection_policy_enabled: indique s'il faut autoriserGoogle Cloud à créer ou à mettre à jour une règle de connexion de service lors de la création de l'instance Cloud SQL. Vous devez configurer des autorisations supplémentaires pour utiliser cette option. Pour en savoir plus, consultez Créer automatiquement une règle de connexion de service.
Appliquer les modifications
Pour appliquer votre configuration Terraform dans un projet Google Cloud , suivez les procédures des sections suivantes.
Préparer Cloud Shell
- Lancez Cloud Shell.
-
Définissez le projet Google Cloud par défaut dans lequel vous souhaitez appliquer vos configurations Terraform.
Vous n'avez besoin d'exécuter cette commande qu'une seule fois par projet et vous pouvez l'exécuter dans n'importe quel répertoire.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Les variables d'environnement sont remplacées si vous définissez des valeurs explicites dans le fichier de configuration Terraform.
Préparer le répertoire
Chaque fichier de configuration Terraform doit avoir son propre répertoire (également appelé module racine).
-
Dans Cloud Shell, créez un répertoire et un nouveau fichier dans ce répertoire. Le nom du fichier doit comporter l'extension
.tf, par exemplemain.tf. Dans ce tutoriel, le fichier est appelémain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si vous suivez un tutoriel, vous pouvez copier l'exemple de code dans chaque section ou étape.
Copiez l'exemple de code dans le fichier
main.tfque vous venez de créer.Vous pouvez également copier le code depuis GitHub. Cela est recommandé lorsque l'extrait Terraform fait partie d'une solution de bout en bout.
- Examinez et modifiez les exemples de paramètres à appliquer à votre environnement.
- Enregistrez les modifications.
-
Initialisez Terraform. Cette opération n'est à effectuer qu'une seule fois par répertoire.
terraform init
Vous pouvez également utiliser la dernière version du fournisseur Google en incluant l'option
-upgrade:terraform init -upgrade
Appliquer les modifications
-
Examinez la configuration et vérifiez que les ressources que Terraform va créer ou mettre à jour correspondent à vos attentes :
terraform plan
Corrigez les modifications de la configuration si nécessaire.
-
Appliquez la configuration Terraform en exécutant la commande suivante et en saisissant
yeslorsque vous y êtes invité :terraform apply
Attendez que Terraform affiche le message "Apply completed!" (Application terminée).
- Ouvrez votre projet Google Cloud pour afficher les résultats. Dans la console Google Cloud , accédez à vos ressources dans l'interface utilisateur pour vous assurer que Terraform les a créées ou mises à jour.
Supprimer les modifications
Pour supprimer vos modifications, procédez comme suit :
- Pour désactiver la protection contre la suppression, définissez l'argument
deletion_protectionsurfalsedans le fichier de configuration Terraform.deletion_protection = "false"
- Appliquez la configuration Terraform mise à jour en exécutant la commande suivante et en saisissant
yeslorsque vous y êtes invité :terraform apply
-
Supprimez les ressources précédemment appliquées à votre configuration Terraform en exécutant la commande suivante et en saisissant
yesà l'invite :terraform destroy
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.
gcloud
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 sql instances describe :
gcloud sql instances describe INSTANCE_NAME \ --project=PROJECT_ID \ --format='json(settings.ipConfiguration.pscConfig.pscAutoConnections)'
Effectuez les remplacements suivants :
- INSTANCE_NAME : nom de l'instance Cloud SQL. 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.
Dans la réponse, notez la valeur qui s'affiche à côté du champ pscConfig:pscAutoConnections:ipAddress. Cette valeur correspond à l'adresse IP interne qui est également le point de terminaison Private Service Connect pour l'instance.
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID ou numéro de projet du projet Google Cloud contenant l'instance.
- INSTANCE_NAME : nom de l'instance Cloud SQL. Si Private Service Connect est activé pour cette instance, les points de terminaison Private Service Connect des réseaux VPC peuvent s'y connecter.
Méthode HTTP et URL :
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{
"kind": "sql#instance",
"state": "RUNNABLE",
"databaseVersion": "POSTGRES_13",
"settings": {
"authorizedGaeApplications": [],
"tier": "db-custom-2-7680",
"kind": "sql#settings",
"availabilityType": "REGIONAL",
"pricingPlan": "PER_USE",
"replicationType": "SYNCHRONOUS",
"activationPolicy": "ALWAYS",
"ipConfiguration": {
"authorizedNetworks": [],
"pscConfig": {
"allowedConsumerProjects": [
"ALLOWED_PROJECTS"
],
"pscAutoConnections": {
consumerNetwork:"projects/PARENT_PROJECT/global/networks/CONSUMER_NETWORK",
consumerNetworkStatus:"CONSUMER_NETWORK_STATUS",
consumerProject:"CONSUMER_PROJECT",
ipAddress:"IP_ADDRESS",
status:"STATUS"
},
"pscEnabled": true
},
"ipv4Enabled": false
},
}
Les champs suivants existent pour les instances sur lesquelles Private Service Connect est activé :
allowedConsumerProjects: liste des projets autorisés pour l'instance. Vous pouvez créer des points de terminaison Private Service Connect à partir de n'importe quel réseau VPC de ces projets vers le rattachement de service de l'instance.pscAutoConnections: réseau VPC autorisé, état de la règle de connexion de service et état de l'adresse IP qui est le point de terminaison de l'instance.pscEnabled: indique si Private Service Connect est activé sur une instance.
Pour découvrir comment construire la requête sous-jacente de l'API REST pour cette tâche, consultez la page instances:get.
Créer le point de terminaison manuellement
Pour créer manuellement le point de terminaison Private Service Connect, procédez comme suit :
Créez une instance Cloud SQL avec Private Service Connect activé pour l'instance.
Obtenez l'URI du rattachement de service. Vous utilisez cet URI pour créer le point de terminaison Private Service Connect.
Réservez une adresse IP interne pour le point de terminaison Private Service Connect et créez un point de terminaison avec cette adresse.
Créer une instance Cloud SQL
Vous pouvez créer une instance sur laquelle Private Service Connect est activé à l'aide de gcloud CLI, Terraform ou l'API.
gcloud
Pour créer une instance sur laquelle Private Service Connect est activé, utilisez la commande gcloud sql instances create :
gcloud sql instances create INSTANCE_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --enable-private-service-connect \ --allowed-psc-projects=ALLOWED_PROJECTS \ --availability-type=AVAILABILITY_TYPE \ --no-assign-ip \ --tier=MACHINE_TYPE \ --database-version=DATABASE_VERSION
Effectuez les remplacements suivants :
- INSTANCE_NAME : nom de l'instance.
- PROJECT_ID : ID ou numéro de projet du projet Google Cloud contenant l'instance.
- REGION_NAME : nom de la région pour l'instance.
ALLOWED_PROJECTS : liste d'ID ou de numéros de projet autorisés, séparés par une virgule, à partir desquels les points de terminaison Private Service Connect peuvent se connecter aux instances Cloud SQL.
Si un projet ne figure pas dans cette liste, vous ne pouvez pas créer de points de terminaison Private Service Connect dans le projet pour vous connecter à l'instance.
- AVAILABILITY_TYPE : permet d'activer la haute disponibilité pour l'instance. Pour ce paramètre, spécifiez l'une des valeurs suivantes :
REGIONAL: permet d'activer la haute disponibilité (recommandé pour les instances de production). L'instance bascule vers une autre zone dans la région sélectionnée.ZONAL: n'offre aucune fonctionnalité de basculement. Il s'agit de la valeur par défaut.
Pour en savoir plus sur la définition et la suppression de la haute disponibilité pour les instances, consultez les sections Configurer la haute disponibilité pour une instance existante et Désactiver la haute disponibilité pour une instance.
- MACHINE_TYPE : type de machine de l'instance.
- DATABASE_VERSION : version de la base de données pour l'instance (par exemple,
POSTGRES_13).
Terraform
Pour créer une instance avec Private Service Connect activé, utilisez la ressource google_sql_database_instance Terraform.
Pour appliquer votre configuration Terraform dans un projet Google Cloud , suivez les procédures des sections suivantes.
Préparer Cloud Shell
- Lancez Cloud Shell.
-
Définissez le projet Google Cloud par défaut dans lequel vous souhaitez appliquer vos configurations Terraform.
Vous n'avez besoin d'exécuter cette commande qu'une seule fois par projet et vous pouvez l'exécuter dans n'importe quel répertoire.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Les variables d'environnement sont remplacées si vous définissez des valeurs explicites dans le fichier de configuration Terraform.
Préparer le répertoire
Chaque fichier de configuration Terraform doit avoir son propre répertoire (également appelé module racine).
-
Dans Cloud Shell, créez un répertoire et un nouveau fichier dans ce répertoire. Le nom du fichier doit comporter l'extension
.tf, par exemplemain.tf. Dans ce tutoriel, le fichier est appelémain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si vous suivez un tutoriel, vous pouvez copier l'exemple de code dans chaque section ou étape.
Copiez l'exemple de code dans le fichier
main.tfque vous venez de créer.Vous pouvez également copier le code depuis GitHub. Cela est recommandé lorsque l'extrait Terraform fait partie d'une solution de bout en bout.
- Examinez et modifiez les exemples de paramètres à appliquer à votre environnement.
- Enregistrez les modifications.
-
Initialisez Terraform. Cette opération n'est à effectuer qu'une seule fois par répertoire.
terraform init
Vous pouvez également utiliser la dernière version du fournisseur Google en incluant l'option
-upgrade:terraform init -upgrade
Appliquer les modifications
-
Examinez la configuration et vérifiez que les ressources que Terraform va créer ou mettre à jour correspondent à vos attentes :
terraform plan
Corrigez les modifications de la configuration si nécessaire.
-
Appliquez la configuration Terraform en exécutant la commande suivante et en saisissant
yeslorsque vous y êtes invité :terraform apply
Attendez que Terraform affiche le message "Apply completed!" (Application terminée).
- Ouvrez votre projet Google Cloud pour afficher les résultats. Dans la console Google Cloud , accédez à vos ressources dans l'interface utilisateur pour vous assurer que Terraform les a créées ou mises à jour.
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID ou numéro de projet du projet Google Cloud contenant l'instance.
- INSTANCE_NAME : nom de l'instance.
- REGION_NAME : nom de la région pour l'instance.
- AVAILABILITY_TYPE : permet d'activer la haute disponibilité pour l'instance. Pour ce paramètre, spécifiez l'une des valeurs suivantes :
REGIONAL: permet d'activer la haute disponibilité (recommandé pour les instances de production). L'instance bascule vers une autre zone dans la région sélectionnée.ZONAL: n'offre aucune fonctionnalité de basculement. Il s'agit de la valeur par défaut.
Pour en savoir plus sur la définition et la suppression de la haute disponibilité pour les instances, consultez les sections Configurer la haute disponibilité d'une instance existante et Désactiver la haute disponibilité pour une instance.
ALLOWED_PROJECTS : liste d'ID ou de numéros de projet autorisés, séparés par une virgule, à partir desquels les points de terminaison Private Service Connect peuvent se connecter aux instances Cloud SQL.
Si un projet ne figure pas dans cette liste, vous ne pouvez pas créer de points de terminaison Private Service Connect dans le projet pour vous connecter à l'instance.
- MACHINE_TYPE : type de machine de l'instance.
Méthode HTTP et URL :
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
Corps JSON de la requête :
{
"name": "INSTANCE_NAME",
"project": PROJECT_ID",
"region": "REGION_NAME",
"databaseVersion": "POSTGRES_13",
"kind": "sql#instance",
"settings": {
"availabilityType": "AVAILABILITY_TYPE",
"ipConfiguration": {
"ipv4Enabled": false,
"pscConfig": {
"allowedConsumerProjects": [
"ALLOWED_PROJECTS"
],
"pscEnabled": true
}
},
"kind": "sql#settings",
"pricingPlan": "PER_USE",
"replicationType": "SYNCHRONOUS",
"tier": "MACHINE_TYPE"
}
}Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME",
"status": "RUNNING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "2023-06-14T18:48:35.499Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_NAME",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
Obtenir le rattachement de service
Après avoir créé une instance Cloud SQL avec Private Service Connect activé, obtenez l'URI du rattachement de service et utilisez-le pour créer le point de terminaison Private Service Connect.
gcloud
Pour afficher des informations récapitulatives sur une instance sur laquelle Private Service Connect est activé, telles que le champ pscServiceAttachmentLink qui affiche l'URI qui pointe vers le rattachement de service de l'instance, utilisez la commande gcloud sql instances describe :
gcloud sql instances describe INSTANCE_NAME \ --project=PROJECT_ID
Effectuez les remplacements suivants :
- INSTANCE_NAME : nom de l'instance Cloud SQL à laquelle les points de terminaison Private Service Connect des réseaux VPC peuvent se connecter.
- PROJECT_ID : ID ou numéro de projet du projet Google Cloud contenant l'instance.
L'exemple suivant illustre un exemple de sortie pour cette commande :
gcloud sql instances describe myinstance \ --project=12345 ... pscServiceAttachmentLink: projects/45678/regions/myregion/serviceAttachments/myserviceattachment
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID ou numéro de projet du projet Google Cloud contenant l'instance.
- INSTANCE_NAME : nom de l'instance
Méthode HTTP et URL :
GET https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{
...
pscServiceAttachmentLink: "projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME"
}
Le champ pscServiceAttachmentLink affiche l'URI qui pointe vers le rattachement de service de l'instance.
Créer un point de terminaison Private Service Connect
Vous pouvez réserver une adresse IP interne pour le point de terminaison Private Service Connect et créer un point de terminaison avec cette adresse. Pour créer le point de terminaison, vous avez besoin de l'URI du rattachement de service et des projets autorisés pour l'instance.
gcloud
Pour réserver une adresse IP interne pour le point de terminaison Private Service Connect, utilisez la commande
gcloud compute addresses create:gcloud compute addresses create ADDRESS_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --subnet=SUBNET_URI \ --addresses=INTERNAL_IP_ADDRESS
Effectuez les remplacements suivants :
- ADDRESS_NAME : nom de l'adresse IP interne.
- PROJECT_ID : ID ou numéro de projet du projet Google Cloud pour le point de terminaison.
- REGION_NAME : nom de la région du point de terminaison.
- SUBNET_URI : nom de sous-réseau de l'adresse IP. Le format est le suivant :
projects/SUBNET_PROJECT_ID/regions/REGION_NAME/subnetworks/SUBNET_NAME. Si le sous-réseau se trouve dans un réseau VPC partagé, nous vous recommandons de définir SUBNET_PROJECT_ID sur le projet hôte. - INTERNAL_IP_ADDRESS : adresse IP à réserver. Cette adresse IP doit être comprise dans la plage d'adresses IP principales du sous-réseau. L'adresse IP peut être une adresse RFC 1918 ou un sous-réseau avec des plages non-RFC. Si vous ne souhaitez pas spécifier l'adresse IP, car vous voulez Google Cloud réserver une adresse IP disponible dans le sous-réseau, omettez cette option.
Pour vérifier que l'adresse IP est réservée, utilisez la commande
gcloud compute addresses list:gcloud compute addresses list ADDRESS_NAME \ --project=PROJECT_ID
Dans la réponse, vérifiez qu'un état
RESERVEDs'affiche pour l'adresse IP.Pour créer le point de terminaison Private Service Connect et le faire pointer vers le rattachement de service Cloud SQL, utilisez la commande
gcloud compute forwarding-rules create:gcloud compute forwarding-rules create ENDPOINT_NAME \ --address=ADDRESS_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --network=NETWORK_URI \ --target-service-attachment=SERVICE_ATTACHMENT_URI \ --allow-psc-global-access
Effectuez les remplacements suivants :
- ENDPOINT_NAME : nom du point de terminaison.
- NETWORK_URI : URI du réseau VPC pour le point de terminaison. Il a le format suivant :
projects/NETWORK_PROJECT_ID/global/networks/NETWORK_NAME. Si vous souhaitez utiliser un réseau VPC partagé, spécifiez le projet hôte comme NETWORK_PROJECT_ID. - SERVICE_ATTACHMENT_URI : URI du rattachement de service.
Pour vérifier que le rattachement de service accepte le point de terminaison, utilisez la commande
gcloud compute forwarding-rules describe:gcloud compute forwarding-rules describe ENDPOINT_NAME \ --project=PROJECT_ID \ --region=REGION_NAME
Dans la réponse, vérifiez qu'un état
ACCEPTEDs'affiche pour le champpscConnectionStatus. Le point de terminaison peut se connecter au rattachement de service.
Terraform
Pour créer un point de terminaison Private Service Connect, utilisez la ressource google_sql_database_instance Terraform.
Utilisez l'exemple suivant pour créer un point de terminaison Private Service Connect IPv4.
Utilisez l'exemple suivant pour créer un point de terminaison IPv6 Private Service Connect.
Pour appliquer votre configuration Terraform dans un projet Google Cloud , suivez les procédures des sections suivantes.
Préparer Cloud Shell
- Lancez Cloud Shell.
-
Définissez le projet Google Cloud par défaut dans lequel vous souhaitez appliquer vos configurations Terraform.
Vous n'avez besoin d'exécuter cette commande qu'une seule fois par projet et vous pouvez l'exécuter dans n'importe quel répertoire.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Les variables d'environnement sont remplacées si vous définissez des valeurs explicites dans le fichier de configuration Terraform.
Préparer le répertoire
Chaque fichier de configuration Terraform doit avoir son propre répertoire (également appelé module racine).
-
Dans Cloud Shell, créez un répertoire et un nouveau fichier dans ce répertoire. Le nom du fichier doit comporter l'extension
.tf, par exemplemain.tf. Dans ce tutoriel, le fichier est appelémain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si vous suivez un tutoriel, vous pouvez copier l'exemple de code dans chaque section ou étape.
Copiez l'exemple de code dans le fichier
main.tfque vous venez de créer.Vous pouvez également copier le code depuis GitHub. Cela est recommandé lorsque l'extrait Terraform fait partie d'une solution de bout en bout.
- Examinez et modifiez les exemples de paramètres à appliquer à votre environnement.
- Enregistrez les modifications.
-
Initialisez Terraform. Cette opération n'est à effectuer qu'une seule fois par répertoire.
terraform init
Vous pouvez également utiliser la dernière version du fournisseur Google en incluant l'option
-upgrade:terraform init -upgrade
Appliquer les modifications
-
Examinez la configuration et vérifiez que les ressources que Terraform va créer ou mettre à jour correspondent à vos attentes :
terraform plan
Corrigez les modifications de la configuration si nécessaire.
-
Appliquez la configuration Terraform en exécutant la commande suivante et en saisissant
yeslorsque vous y êtes invité :terraform apply
Attendez que Terraform affiche le message "Apply completed!" (Application terminée).
- Ouvrez votre projet Google Cloud pour afficher les résultats. Dans la console Google Cloud , accédez à vos ressources dans l'interface utilisateur pour vous assurer que Terraform les a créées ou mises à jour.
REST
Réservez une adresse IP interne pour le point de terminaison Private Service Connect.
Vérifiez que l'adresse IP est réservée.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID ou numéro de projet du projet Google Cloud contenant le point de terminaison Private Service Connect
- REGION_NAME : nom de la région
- ADDRESS_NAME : nom de l'adresse IP.
Méthode HTTP et URL :
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "kind": "compute#address", "id": "ADDRESS_ID", "creationTimestamp": "2024-05-09T11:20:50.114-07:00", "name": "ADDRESS_NAME", "description": "This is the name of the internal IP address.", "address": "IP_ADDRESS", "status": "RESERVED", "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME", "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME", "networkTier": "PREMIUM", "labelFingerprint": "LABEL_FINGERPRINT_ID", "addressType": "EXTERNAL" }Dans la réponse, vérifiez qu'un état
RESERVEDs'affiche pour l'adresse IP.Créez le point de terminaison Private Service Connect et faites-le pointer vers le rattachement de service Cloud SQL.
Vérifiez que le rattachement de service accepte le point de terminaison.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID ou numéro de projet du projet Google Cloud contenant le point de terminaison Private Service Connect
- REGION_NAME : nom de la région
- ENDPOINT_NAME : nom du point de terminaison.
Méthode HTTP et URL :
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "kind": "compute#forwardingRule", "id": "ENDPOINT_ID", "creationTimestamp": "2024-05-09T12:03:21.383-07:00", "name": "ENDPOINT_NAME", "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME", "IPAddress": "IP_ADDRESS", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME", "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/default", "serviceDirectoryRegistrations": [ { "namespace": "goog-psc-default" } ], "networkTier": "PREMIUM", "labelFingerprint": "LABEL_FINGERPRINT_ID", "fingerprint": "FINGERPRINT_ID", "pscConnectionId": "CONNECTION_ID", "pscConnectionStatus": "ACCEPTED", "allowPscGlobalAccess": true }Dans la réponse, vérifiez qu'un état
ACCEPTEDs'affiche pour le champpscConnectionStatus. Le point de terminaison peut se connecter au rattachement de service.
Connexion à une instance Cloud SQL
Vous pouvez vous connecter à une instance Cloud SQL avec Private Service Connect activé à l'aide d'une adresse IP interne, d'un enregistrement DNS, du proxy d'authentification Cloud SQL, des connecteurs de langage Cloud SQL ou d'autres applicationsGoogle Cloud .
Se connecter à l'aide d'un enregistrement DNS
Le DNS est la méthode recommandée pour se connecter aux instances sur lesquelles Private Service Connect est activé. Un nom DNS permet à différents réseaux de se connecter à la même instance, où les points de terminaison Private Service Connect de chaque réseau peuvent avoir des adresses IP différentes. De plus, le proxy d'authentification Cloud SQL nécessite des noms DNS pour se connecter à ces instances. Pour savoir comment configurer le DNS, consultez Configurer le DNS pour Private Service Connect.
Avant de vous connecter à une instance Cloud SQL à l'aide d'un enregistrement DNS, procédez comme suit :
- Créer un point de terminaison Private Service Connect
- Vérifiez que le rattachement de service de l'instance accepte le point de terminaison. Pour vérifier que l'état du point de terminaison est
ACCEPTED, vérifiez l'état. - Configurer une zone gérée DNS et un enregistrement DNS
Une fois ces conditions remplies, utilisez l'enregistrement DNS pour vous connecter à l'instance à partir de n'importe quel réseau VPC dans lequel vous avez créé le point de terminaison.
psql "sslmode=disable dbname=DATABASE_NAME user=USERNAME host=DNS_RECORD"
Effectuez les remplacements suivants :
- DATABASE_NAME: nom de la base de données Cloud SQL pour PostgreSQL contenue dans l'instance
- USERNAME: nom de l'utilisateur qui se connecte à l'instance.
- DNS_RECORD : l'enregistrement DNS du point de terminaison.
Se connecter directement via une adresse IP interne
Avant de vous connecter à une instance Cloud SQL avec Private Service Connect activé, procédez comme suit :
- Créer un point de terminaison Private Service Connect
- Vérifiez que le rattachement de service de l'instance accepte le point de terminaison. Pour vérifier que l'état du point de terminaison est
ACCEPTED, vérifiez l'état.
Une fois ces conditions remplies, utilisez l'adresse IP du point de terminaison pour accéder à l'instance à partir de n'importe quel réseau VPC dans lequel vous avez créé le point de terminaison.
Récupérez l'adresse IP interne du point de terminaison Private Service Connect à l'aide du nom de l'adresse IP du point de terminaison.
gcloud
Pour récupérer l'adresse IP, utilisez la commande
gcloud compute addresses describe:gcloud compute addresses describe ADDRESS_NAME \ --project=PROJECT_ID \ --region=REGION_NAME
Effectuez les remplacements suivants :
- ADDRESS_NAME : nom de l'adresse IP du point de terminaison.
- PROJECT_ID : ID ou numéro de projet du projet Google Cloud contenant le point de terminaison.
- REGION_NAME : nom de la région du point de terminaison
Dans la réponse, vérifiez qu'une adresse IP apparaît pour le champ
address. Il s'agit de l'adresse IP interne.REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID ou numéro de projet du projet Google Cloud contenant le point de terminaison.
- REGION_NAME : nom de la région du point de terminaison
- ADDRESS_NAME : nom de l'adresse IP du point de terminaison.
Méthode HTTP et URL :
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "kind": "compute#address", "id": "ADDRESS_ID", "creationTimestamp": "2024-05-09T11:20:50.114-07:00", "name": "ADDRESS_NAME", "description": "This is the name of the internal IP address.", "address": "IP_ADDRESS", "status": "RESERVED", "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME", "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME", "networkTier": "PREMIUM", "labelFingerprint": "LABEL_FINGERPRINT_ID", "addressType": "EXTERNAL" }L'adresse IP interne correspond à la valeur associée au champ
address.Vous pouvez également récupérer l'adresse IP interne du point de terminaison Private Service Connect à l'aide du rattachement de service de l'instance Cloud SQL.
gcloud
Pour récupérer l'adresse IP, utilisez la commande
gcloud compute forwarding-rules list:gcloud compute forwarding-rules list \ --filter="TARGET:REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME" \ --project=PROJECT_ID
Effectuez les remplacements suivants :
- REGION_NAME : nom de la région du point de terminaison
- PROJECT_ID : ID ou numéro de projet du projet Google Cloud contenant le point de terminaison.
- SERVICE_ATTACHMENT_NAME : nom du rattachement de service pour l'instance Cloud SQL
Dans la réponse, vérifiez qu'une adresse IP apparaît. Il s'agit de l'adresse IP interne.
Voici un exemple de réponse :
NAMEREGIONIP_ADDRESSTARGETmyInstanceus-central110.10.10.10us-central1/serviceAttachments/a-123456789e0a-psc-service-attachment-abc123d4e5f67gh8REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID ou numéro de projet du projet Google Cloud contenant le point de terminaison.
- REGION_NAME : nom de la région du point de terminaison
- SERVICE_ATTACHMENT_PROJECT_ID : ID ou numéro du projet Google Cloud contenant le rattachement de service
- SERVICE_ATTACHMENT_NAME : nom du rattachement de service pour l'instance Cloud SQL
Méthode HTTP et URL :
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules?target="https://www.googleapis.com/compute/v1/projects/SERVICE_ATTACHMENT_PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME"
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "kind": "compute#forwardingRuleList", "id": "projects/PROJECT_ID/regions/REGION_NAME/forwardingRules", "items": [ { "kind": "compute#forwardingRule", "id": "FORWARDING_RULE_ID", "creationTimestamp": "2023-10-31T13:04:37.168-07:00", "name": "FORWARDING_RULE_NAME", "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME", "IPAddress": "IP_ADDRESS", "target": "https://www.googleapis.com/compute/v1/projects/SERVICE_ATTACHMENT_PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME", "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/FORWARDING_RULE_NAME", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME", "serviceDirectoryRegistrations": [ { "namespace": "goog-psc-default" } ], "networkTier": "PREMIUM", "labelFingerprint": "LABEL_FINGERPRINT_ID", "fingerprint": "FINGERPRINT_ID", "pscConnectionId": "PSC_CONNECTION_ID", "pscConnectionStatus": "CLOSED", "allowPscGlobalAccess": true } ], "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules" }L'adresse IP interne correspond à la valeur associée au champ
IPAddress.-
Pour vous connecter à l'instance Cloud SQL, utilisez l'adresse IP interne.
psql "sslmode=disable dbname=DATABASE_NAME user=USERNAME hostaddr=IP_ADDRESS"
Effectuez les remplacements suivants :
- DATABASE_NAME: nom de la base de données Cloud SQL pour PostgreSQL contenue dans l'instance
- USERNAME : nom de l'utilisateur qui se connecte à l'instance.
- IP_ADDRESS : l'adresse IP du point de terminaison.
Se connecter à l'aide du proxy d'authentification Cloud SQL
Le proxy d'authentification Cloud SQL est un connecteur qui fournit un accès sécurisé à une instance avec Private Service Connect activé sans nécessiter de réseaux autorisés ni de configuration SSL.
Configurez le proxy d'authentification Cloud SQL à l'aide du nom DNS Private Service Connect de votre instance. Un nom DNS identifie un enregistrement DNS qui mappe une ressource DNS à un nom de domaine. Pour savoir comment activer le DNS pour votre projet, consultez Configurer le DNS dans Private Service Connect. Pour trouver les noms DNS existants de votre instance, consultez Trouver des noms DNS.
Vous pouvez également configurer le proxy d'authentification Cloud SQL pour qu'il utilise le nom DNS du point de terminaison d'écriture Private Service Connect d'un cluster de basculement avancé, si vous en avez activé un.
Par exemple, si le nom du point de terminaison d'écriture DNS Private Service Connect pour votre cluster est abcdef123456.987654321fedcb.global.sql-psc.goog, vous devez démarrer le proxy d'authentification comme suit :
./cloud-sql-proxy abcdef123456.987654321fedcb.global.sql-psc.googSi vous vous connectez via Private Service Connect, vous devez disposer du proxy d'authentification Cloud SQL version 2.5.0 ou ultérieure.
Télécharger et installer le proxy d'authentification Cloud SQL
Pour vous connecter à des instances sur lesquelles Private Service Connect est activé, vous devez télécharger et installer le binaire du proxy d'authentification Cloud SQL. Le binaire à télécharger dépend du système d'exploitation et de l'utilisation d'un noyau 32 bits ou 64 bits. Dans la plupart des cas, le matériel récent possède un noyau 64 bits.
Si vous ne savez pas si votre machine exécute un noyau 32 bits ou 64 bits, utilisez la commande uname -a pour Linux ou macOS. Pour Windows, consultez la documentation Windows.
Démarrer le proxy d'authentification Cloud SQL
Le proxy d'authentification Cloud SQL accepte les connexions aux instances pour lesquelles Private Service Connect est activé. Pour en savoir plus, consultez Démarrer le proxy d'authentification Cloud SQL.
- Affichez des informations récapitulatives sur une instance Cloud SQL, y compris son nom de connexion.
gcloud
Pour afficher des informations récapitulatives sur une instance Cloud SQL, utilisez la commande
gcloud sql instances describe.gcloud sql instances describe INSTANCE_NAME \ --project=PROJECT_ID \ --format='value(connectionName)'
Effectuez les remplacements suivants :
- INSTANCE_NAME : nom de l'instance Cloud SQL.
- PROJECT_ID : ID ou numéro de projet du projet Google Cloud contenant l'instance
Le nom de la connexion est au format
PROJECT_ID:REGION_NAME:INSTANCE_NAME.REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID ou numéro de projet du projet Google Cloud contenant l'instance.
- INSTANCE_NAME : nom de l'instance
Méthode HTTP et URL :
GET https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ ... "connectionName": "PROJECT_ID:REGION_NAME:INSTANCE_NAME" }Le nom de la connexion est au format
PROJECT_ID:REGION_NAME:INSTANCE_NAME. - Copiez le nom de connexion de l'instance.
Lancez le proxy d'authentification Cloud SQL :
./cloud-sql-proxy INSTANCE_CONNECTION_NAME --psc
Remplacez INSTANCE_CONNECTION_NAME par le nom de connexion de l'instance que vous avez copié à l'étape précédente.
Se connecter à l'aide des connecteurs de langage Cloud SQL
Les connecteurs de langage Cloud SQL sont des bibliothèques qui fournissent un accès sécurisé à une instance Cloud SQL avec Private Service Connect activé sans nécessiter de réseaux autorisés ni de configuration SSL.
Configurez le proxy d'authentification Cloud SQL à l'aide du nom DNS Private Service Connect de votre instance et du nom DNS du point de terminaison d'écriture Private Service Connect d'un cluster de basculement avancé, si vous en avez un d'activé. Un nom DNS identifie un enregistrement DNS qui mappe une ressource DNS à un nom de domaine. Pour savoir comment activer le DNS pour votre projet, consultez Configurer le DNS dans Private Service Connect. Pour trouver les noms DNS existants de votre instance, consultez Trouver des noms DNS.
Les connecteurs de langage Cloud SQL sont compatibles avec les connexions Private Service Connect via le type d'adresse IP PSC dans leurs bibliothèques respectives. La documentation de chaque connecteur se trouve dans la documentation publique sur GitHub pour la reprise après sinistre (DR) avancée :
- Connecteur Python Cloud SQL (v1.3.0 ou version ultérieure)
- Connecteur Go Cloud SQL (v1.4.0 ou version ultérieure)
- Connecteur Java Cloud SQL (v1.13.0 ou version ultérieure)
- Connecteur Node.js Cloud SQL (v0.5.0 ou version ultérieure)
Se connecter depuis App Engine Standard, Cloud Run ou les Cloud Run Functions
Pour vous connecter à des instances Cloud SQL avec Private Service Connect activé, vous pouvez utiliser App Engine Standard ou Cloud Run.
Dans ces environnements sans serveur compatibles, les connecteurs de langage Cloud SQL et les connexions TCP directes via une adresse IP et un numéro de port sont pris en charge. Pour les connexions TCP directes, il s'agit de l'adresse IP que vous réservez lorsque vous créez le point de terminaison Private Service Connect. Vous pouvez spécifier l'adresse IP comme adresse pour l'hôte de base de données.
Si vous créez un enregistrement DNS pour le point de terminaison, vous pouvez spécifier cet enregistrement pour l'hôte.
Se connecter depuis BigQuery
Pour accéder aux données dans Cloud SQL et effectuer des requêtes sur ces données via une connexion IP interne, utilisez le paramètre --enable-google-private-path. Ce paramètre n'est valide que dans les cas suivants :
- Vous utilisez le paramètre
--no-assign-ip. - Vous utilisez le paramètre
--networkpour spécifier le nom du réseau VPC que vous souhaitez utiliser pour créer une connexion privée.
Configurer la connectivité sortante pour votre instance Cloud SQL
Vous pouvez configurer votre instance Cloud SQL compatible avec Private Service Connect pour qu'elle dispose d'une connectivité sortante avec votre réseau à l'aide d'une interface Private Service Connect et d'un rattachement de réseau. Pour en savoir plus sur le fonctionnement de la connectivité sortante Private Service Connect et ses limites, consultez Présentation de la connectivité sortante Private Service Connect.
Pour utiliser la connectivité sortante avec votre instance Cloud SQL, vous devez :
Créez ou mettez à jour un rattachement de réseau. Ce rattachement de réseau est utilisé par l'instance Cloud SQL pour se connecter à l'interface Private Service Connect de votre réseau.
Le rattachement de réseau doit se trouver dans la même région que votre instance Cloud SQL et être configuré pour accepter automatiquement les connexions à l'aide d'une liste d'interfaces Private Service Connect.
Obtenez l'ID du projet locataire Cloud SQL. Utilisez la commande
gcloud sql instances describepour récupérer des informations sur l'instance. Vous trouverez l'ID du projet locataire dans l'URL du rattachement de service affichée dans le résultat :ADMIN_PROJECT=PROJECT_ID INSTANCE_NAME=INSTANCE_NAME TENANT_PROJECT_ID=$(gcloud --project=$ADMIN_PROJECT sql instances describe $INSTANCE_NAME | grep pscServiceAttachmentLink | cut -f 2 -d "/")Remplacez les éléments suivants :
- PROJECT_ID : ID du projet Google Cloudque vous utilisez.
- INSTANCE_NAME : nom de l'instance Cloud SQL compatible avec Private Service Connect que vous souhaitez configurer pour la connectivité sortante.
Enregistrez la valeur de l'ID du projet locataire pour l'inclure ultérieurement dans la liste des ID de projet acceptés. Cette opération est requise lorsque vous créez ou mettez à jour un rattachement de réseau dans votre projet Google Cloud .
Identifiez le réseau à partir duquel vous souhaitez recevoir les connexions sortantes Cloud SQL et assurez-vous qu'il dispose d'une interface Private Service Connect.
Activez les connexions sortantes à votre instance Cloud SQL à l'aide du rattachement de réseau.
Vous pouvez également désactiver la connectivité sortante à tout moment lorsque vous n'avez plus besoin de connexions sortantes vers votre instance.
Pour en savoir plus sur la connectivité sortante de Private Service Connect, consultez Connexions sortantes Private Service Connect.
Activer les connexions sortantes pour votre instance Cloud SQL
Pour activer la connectivité sortante de votre instance Cloud SQL, vous devez d'abord créer ou mettre à jour un rattachement réseau dans votre projet Google Cloud .
gcloud
Pour activer la connectivité sortante, exécutez la commande suivante :
gcloud beta sql instances patch INSTANCE_NAME \
--psc-network-attachment-uri=NETWORK_ATTACHMENT_URI \
--project=PROJECT_ID
Remplacez les éléments suivants :
- INSTANCE_NAME : nom de l'instance Cloud SQL compatible avec Private Service Connect que vous souhaitez configurer pour la connectivité sortante.
- NETWORK_ATTACHMENT_URI : URI du rattachement de réseau dans votre projet Google Cloud que vous souhaitez utiliser pour vous connecter à l'interface Private Service Connect de votre réseau.
- PROJECT_ID : ID du projet Google Cloudque vous utilisez.
Pour vérifier que la connectivité sortante de Private Service Connect a bien été activée, exécutez gcloud sql instances describe.
Si psc-network-attachment-uri apparaît dans le résultat, cela signifie que la connectivité sortante de Private Service Connect a bien été activée.
REST v1
Pour activer la connectivité sortante, exécutez la commande suivante :
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
PROJECT_ID: par l'ID du projet.NETWORK_ATTACHMENT_URI: URI du rattachement de réseau dans votre projet.INSTANCE_ID: nom de votre instance Cloud SQL.
Méthode HTTP et URL :
POST https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID
Corps JSON de la requête :
{
"settings": {
"ipConfiguration": {
"pscConfig: {
"networkAttachmentUri": "NETWORK_ATTACHMENT_URI"
"kind": "sql#settings"
}
},
}
}
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": USER,
"insertTime": "2025-05-13T20:44:23.064Z",
"operationType": "UPDATE",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID","
}
REST v1beta4
Pour activer la connectivité sortante, exécutez la commande suivante :
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
PROJECT_ID: par l'ID du projet.NETWORK_ATTACHMENT_URI: URI du rattachement de réseau dans votre projet.INSTANCE_ID: nom de votre instance Cloud SQL.
Méthode HTTP et URL :
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
Corps JSON de la requête :
{
"settings": {
"ipConfiguration": {
"pscConfig: {
"networkAttachmentUri": "NETWORK_ATTACHMENT_URI"
}
},
}
}
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": USER,
"insertTime": "2025-05-13T20:44:23.064Z",
"operationType": "UPDATE",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID","
}
Pour obtenir des informations sur le dépannage de la connectivité sortante Private Service Connect, consultez Dépannage de Private Service Connect.
Désactiver les connexions sortantes pour votre instance Cloud SQL
gcloud
Pour désactiver la connectivité sortante, exécutez la commande suivante :
gcloud beta sql instances patch INSTANCE_NAME \
--clear-psc-network-attachment-uri \
--project=PROJECT_ID
Remplacez les éléments suivants :
- INSTANCE_NAME : nom de l'instance Cloud SQL compatible avec Private Service Connect que vous souhaitez configurer pour la connectivité sortante.
- PROJECT_ID : ID du projet Google Cloudque vous utilisez.
REST v1
Pour désactiver la connectivité sortante, exécutez la commande suivante :
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
PROJECT_ID: par l'ID du projet.NETWORK_ATTACHMENT_URI: URI du rattachement de réseau dans votre projet. Pour le désactiver, définissez ce paramètre surnull.INSTANCE_ID: nom de votre instance Cloud SQL.
Méthode HTTP et URL :
POST https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID
Corps JSON de la requête :
{
"settings": {
"ipConfiguration": {
"pscConfig: {
"networkAttachmentUri": null,
"kind": "sql#settings"
}
},
}
}
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": USER,
"insertTime": "2025-05-13T20:44:23.064Z",
"operationType": "UPDATE",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID","
}
REST v1beta4
Pour désactiver la connectivité sortante, exécutez la commande suivante :
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
PROJECT_ID: par l'ID du projet.NETWORK_ATTACHMENT_URI: URI du rattachement de réseau dans votre projet. Pour le désactiver, définissez ce paramètre surnull.INSTANCE_ID: nom de votre instance Cloud SQL.
Méthode HTTP et URL :
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
Corps JSON de la requête :
{
"settings": {
"ipConfiguration": {
"pscConfig: {
"networkAttachmentUri": null,
"kind": "sql#settings"
}
},
}
}
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": USER,
"insertTime": "2025-05-13T20:44:23.064Z",
"operationType": "UPDATE",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID","
}
Tester la connectivité
Pour tester la connectivité entrante vers une instance Cloud SQL avec Private Service Connect activé, définissez l'adresse IP du point de terminaison Private Service Connect comme adresse IP de destination.
gcloud
Pour créer un test de connectivité pour une instance Cloud SQL avec Private Service Connect activé, utilisez la commande gcloud network-management connectivity-tests create :
gcloud network-management connectivity-tests create CONNECTIVITY_TEST_NAME \ --source-instance=SOURCE_INSTANCE \ --destination-cloud-sql-instance=DESTINATION_CLOUD_SQL_INSTANCE \ --destination-network=DESTINATION_NETWORK \ --destination-port=DESTINATION_PORT \ --protocol=tcp
Effectuez les remplacements suivants :
- CONNECTIVITY_TEST_NAME : nom du test de connectivité.
- SOURCE_INSTANCE: URI de l'instance Compute Engine où se trouve l'adresse IP source (par exemple,
projects/myproject/zones/myzone/instances/myinstance). - DESTINATION_CLOUD_SQL_INSTANCE: URL de l'instance Cloud SQL (par exemple,
projects/myproject/instances/myinstance). - DESTINATION_NETWORK : URI du réseau VPC où se trouve l'adresse IP de destination (par exemple,
projects/myproject/global/networks/mynetwork). - DESTINATION_PORT : numéro de port réservé à l'instance. Pour les instances Cloud SQL pour PostgreSQL, le numéro de port est
5432.
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID ou numéro de projet du projet Google Cloud contenant l'instance.
- CONNECTIVITY_TEST_NAME : nom du test de connectivité.
- SOURCE_IP_ADDRESS : adresse IP de l'instance Compute Engine source.
- SOURCE_INSTANCE: URI de l'instance Compute Engine où se trouve l'adresse IP source (par exemple,
projects/myproject/zones/myzone/instances/myinstance). - SOURCE_NETWORK : URI du réseau VPC où se trouve l'adresse IP source (par exemple,
projects/myproject/global/networks/mynetwork). - DESTINATION_IP_ADDRESS : adresse IP de l'instance Cloud SQL de destination.
- DESTINATION_PORT : numéro de port réservé à l'instance. Pour les instances Cloud SQL pour PostgreSQL, le numéro de port est
5432. - DESTINATION_NETWORK : URI du réseau VPC où se trouve l'adresse IP de destination (par exemple,
projects/myproject/global/networks/mynetwork).
Méthode HTTP et URL :
POST https://networkmanagement.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/connectivityTests?testId=CONNECTIVITY_TEST_NAME
Corps JSON de la requête :
{
"source": {
"ipAddress": "SOURCE_IP_ADDRESS",
"instance": "SOURCE_INSTANCE",
"network": "SOURCE_NETWORK"
},
"destination": {
"ipAddress": "DESTINATION_IP_ADDRESS",
"port": DESTINATION_PORT,
"network": "DESTINATION_NETWORK",
"projectId": "PROJECT_ID"
},
"protocol": "TCP"
}
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{
"name": "projects/PROJECT_ID/locations/global/operations/operation-OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.networkmanagement.v1.OperationMetadata",
"createTime": "2024-05-23T16:43:49.313981473Z",
"target": "projects/PROJECT_ID/locations/global/connectivityTests/CONNECTIVITY_TEST_NAME",
"verb": "create",
"cancelRequested": false,
"apiVersion": "v1"
},
"done": false
}
Limites
Vous pouvez configurer jusqu'à 20 points de terminaison Private Service Connect qui se connectent au rattachement de service d'une instance Cloud SQL sur laquelle Private Service Connect est activé.
Si vous devez vous connecter à partir de plusieurs réseaux VPC, utilisez la propagation des points de terminaison Private Service Connect via NCC. Pour en savoir plus, consultez Propagation des points de terminaison Private Service Connect.
Vous pouvez établir jusqu'à 64 512 connexions simultanées avec Private Service Connect à une instance Cloud SQL.
Les options suivantes sont invalidées ou affectées :
--no-assign-ip:utilise cette option, car les instances pour lesquelles Private Service Connect est activé ne sont pas compatibles avec les autres types de connectivité tels que les connexions IP externes.--authorized-networks:Vous ne pouvez pas utiliser cette option pour ajouter des réseaux autorisés.--network:Vous ne pouvez pas utiliser cette option, car elle est associée à l'accès aux services privés.--allocated-ip-range-name:Vous ne pouvez pas utiliser cette option, car les noms de plages d'adresses IP autorisés ne sont pas acceptés.
Vous ne pouvez pas configurer une instance pour laquelle Private Service Connect est activé afin d'utiliser l'accès aux services privés ou les connexions IP publiques.
- Vous ne pouvez pas activer les connexions IP publiques sur une instance sur laquelle Private Service Connect est activé.
- Vous ne pouvez pas activer l'accès aux services privés ni ajouter des réseaux autorisés à l'instance.
- Vous ne pouvez pas modifier le type de connectivité de l'instance.
Vous ne pouvez pas utiliser la commande
gcloud sql connect, Cloud Shell, Cloud Build ni Datastream pour vous connecter à des instances Cloud SQL sur lesquelles Private Service Connect est activé.Lorsque vous testez la connectivité à une instance Cloud SQL avec Private Service Connect activé, vous ne pouvez pas définir les éléments suivants :
- L'adresse IP privée ou le nom DNS de l'instance comme destination directe
- L'instance en tant que source
- L'adresse IP du point de terminaison Private Service Connect en tant que source
L'ajout à la liste d'autorisation basé sur l'adresse IP en utilisant des réseaux autorisés n'est pas accepté.
L'ajout à la liste d'autorisation basé sur l'adresse IP appliqué par l'accès contextuel n'est pas accepté.
Le contrôle, la journalisation et les métriques basés sur l'adresse IP du client ne sont pas compatibles avec les insights sur les requêtes et le système. Toutefois, le VPN et l'interconnexion sont compatibles.
Si votre projet réseau contient des instances qui utilisent l'ancienne architecture réseau Cloud SQL, vous ne pouvez pas créer d'instance Private Service Connect. Cloud SQL fournit des outils permettant de mettre à niveau les instances de l'ancienne architecture réseau vers la nouvelle. Pour en savoir plus ou vérifier l'architecture réseau des instances Cloud SQL de votre projet et effectuer les mises à niveau nécessaires, consultez la page Mettre à niveau une instance vers la nouvelle architecture réseau.
Résoudre les problèmes
Cette section contient des informations sur les problèmes associés aux instances Cloud SQL pour lesquelles Private Service Connect est activé, ainsi que la procédure à suivre pour les résoudre.
| Problème | Dépannage |
|---|---|
| Le rattachement de service de l'instance n'accepte pas le point de terminaison Private Service Connect. |
|
ERROR: (gcloud.compute.forwarding-rules.create) Could not fetch resource: The resource 'projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME' was not found |
Ce message d'erreur peut s'afficher lorsque vous réservez une adresse IP interne statique pour le point de terminaison Private Service Connect. Assurez-vous que le sous-réseau spécifié existe dans le projet indiqué par l'URI. Si vous souhaitez créer un point de terminaison dans un projet de service, mais utiliser un sous-réseau d'un réseau VPC partagé, vous devez spécifier le sous-réseau par son URI et utiliser l'ID du projet hôte dans l'URI. Pour en savoir plus, consultez Créer le point de terminaison manuellement. |
ERROR: (gcloud.compute.forwarding-rules.create) Could not fetch resource:
- The resource 'projects/PROJECT_ID/global/networks/NETWORK_NAME' was not found |
Ce message d'erreur peut s'afficher lorsque vous créez manuellement un point de terminaison Private Service Connect. Assurez-vous que le réseau spécifié existe dans le projet indiqué par l'URI. Si vous souhaitez créer un point de terminaison dans un projet de service, mais utiliser un réseau VPC partagé, vous devez spécifier le réseau par son URI et utiliser l'ID du projet hôte dans l'URI. Pour en savoir plus, consultez Créer le point de terminaison manuellement. |
Invalid consumer network status for PSC auto connection. |
Le réseau consommateur n'est pas configuré correctement, voire pas du tout. Par conséquent, aucun point de terminaison n'est disponible pour la connexion. Pour vous connecter au point de terminaison, vous devez vérifier son état et corriger l'erreur avant de réessayer de vous connecter.
|
No permission to create a service connection policy. |
Vous ne disposez pas des autorisations requises pour créer une règle de connexion au service. Pour créer une règle de connexion de service, vous devez disposer du rôle |
| Le rattachement de réseau ne peut pas accepter les connexions depuis l'interface Private Service Connect lorsque la connectivité sortante Private Service Connect est utilisée. | Si votre réseau externe ne peut pas accepter les connexions depuis l'interface Private Service Connect, il est possible que les règles de connexion de votre rattachement de réseau ne soient pas configurées correctement. Utilisez la commande suivante pour vérifier les connexions acceptées dans votre rattachement de réseau : gcloud compute network-attachments describe default --region=REGION_ID |
Étapes suivantes
- Apprenez-en plus sur les adresses IP privées.
- Apprenez-en plus sur Private Service Connect.
- Découvrez comment créer une instance répliquée avec accès en lecture pour une instance avec Private Service Connect activé.
- Découvrez comment cloner une instance avec Private Service Connect activé.
- Découvrez comment afficher des informations récapitulatives sur les instances pour lesquelles Private Service Connect est activé.
- Découvrez comment définir et supprimer la haute disponibilité pour une instance sur laquelle Private Service Connect est activé.
- Découvrez comment modifier et supprimer une instance avec Private Service Connect activé.