Cette page explique comment configurer un nom DNS (système de noms de domaine personnalisé pour votre instance Cloud SQL.
Présentation
Vous pouvez configurer une instance Cloud SQL afin que vos applications puissent se connecter à l'aide d'un nom DNS personnalisé géré par votre organisation. Si vous souhaitez utiliser un nom DNS personnalisé pour vous connecter à une instance Cloud SQL au lieu d'une adresse IP, configurez un autre nom de sujet (SAN) personnalisé. Vous pouvez configurer un SAN personnalisé lorsque vous créez ou mettez à jour une instance.
Lorsque vous ajoutez un nom DNS personnalisé en tant que configuration SAN personnalisée à votre instance, Cloud SQL insère le nom DNS personnalisé dans le champ SAN du certificat de serveur de l'instance. Cette personnalisation
vous permet d'utiliser le nom DNS personnalisé avec la validation du nom d'hôte en toute sécurité.
Vous pouvez ajouter une liste de jusqu'à trois noms DNS personnalisés séparés par une virgule à la configuration SAN personnalisée. Pour des raisons de sécurité, vous ne pouvez utiliser une configuration SAN personnalisée
que pour les instances que vous
configurez avec CUSTOMER_MANAGED_CAS_CA
comme mode d'autorité de certification du serveur.
Une fois que vous avez configuré le nom DNS personnalisé pour votre instance, vous pouvez utiliser ce nom DNS personnalisé pour connecter vos clients ou applications de base de données, y compris les connecteurs de langage Cloud SQL et le proxy d'authentification Cloud SQL.
Workflow
Pour configurer un nom DNS personnalisé pour une instance, procédez comme suit :
- Créez une instance configurée avec une autorité de certification gérée par le client.
- Ajoutez des valeurs SAN personnalisées à l'instance. Les valeurs SAN personnalisées sont insérées dans le champ SAN du certificat de serveur de l'instance.
- Déterminez l'adresse IP de l'instance.
- Créez des enregistrements DNS personnalisés pour votre instance.
- Connectez-vous à l'instance à l'aide du nom DNS personnalisé.
Avant de commencer
Avant de configurer un nom DNS personnalisé pour votre instance, assurez-vous de disposer de les rôles et autorisations requis.
Si vous créez une instance Cloud SQL, pour utiliser un SAN personnalisé, votre instance doit également utiliser une autorité de certification (CA) gérée par le client pour son mode d'autorité de certification du serveur.
Créer une instance avec des valeurs SAN personnalisées
Pour créer une instance avec des valeurs SAN personnalisées, utilisez la commande gcloud sql instances create suivante :
gcloud
gcloud sql instances create "INSTANCE_NAME" \ --database-version=DATABASE_VERSION \ --project=PROJECT_ID \ --region=REGION \ --server-ca-mode=CUSTOMER_MANAGED_CAS_CA \ --server-ca-pool=projects/PROJECT_ID_CAS/locations/REGION/caPools/CA_POOL_ID --custom-subject-alternative-names=CUSTOM_DNS_NAME
Effectuez les remplacements suivants :
INSTANCE_NAMEpar le nom de l'instance Cloud SQL que vous souhaitez créer.DATABASE_VERSIONavec l'enumde la version de l' instance Cloud SQL que vous souhaitez créer.PROJECT_IDpar l'ID du projet dans lequel vous prévoyez de créer vos instances Cloud SQL.PROJECT_ID_CASpar l'ID du projet dans lequel vous avez créé votre CA_POOL_ID. Ce projet peut être le même que celui dans lequel vous souhaitez créer votre instance Cloud SQL ou un autre.REGIONpar la région dans laquelle vous avez créé le pool d'autorités de certification. Vous devez créer votre instance dans la même région que le pool d'autorités de certification.CA_POOL_IDpar l'ID du pool d'autorités de certification que vous avez créé.CUSTOM_DNS_NAMEpar jusqu'à trois noms DNS personnalisés, séparés par une virgule sans espace entre les valeurs. Par exemple,develop.example.com,test.example.com,production.example.com.
Terraform
Pour créer une instance avec des valeurs SAN personnalisées, utilisez une ressource Terraform. L'exemple suivant crée également des ressources prérequises pour la nouvelle instance.
Ajouter ou mettre à jour des valeurs SAN personnalisées pour une instance
Pour ajouter ou mettre à jour des valeurs SAN personnalisées pour une instance existante, procédez comme suit :
gcloud
gcloud sql instances patch INSTANCE_NAME \ --custom-subject-alternative-names=CUSTOM_DNS_NAME
Effectuez les remplacements suivants :
INSTANCE_NAMEpar le nom de l'instance Cloud SQL que vous souhaitez mettre à jour.CUSTOM_DNS_NAMEpar jusqu'à trois noms DNS personnalisés, séparés par une virgule sans espace entre les valeurs. Par exemple,develop.example.com,new-test.example.com,production.example.com.
Terraform
Pour mettre à jour une instance qui comporte déjà des valeurs SAN personnalisées, utilisez une ressource Terraform.
Effacer toutes les valeurs SAN personnalisées d'une instance
Pour effacer toutes les valeurs SAN personnalisées d'une instance, procédez comme suit :
gcloud
gcloud sql instances patch INSTANCE_NAME \ --clear-custom-subject-alternative-names
Remplacez INSTANCE_NAME par le nom de l'instance Cloud SQL
que vous souhaitez mettre à jour.
Créer des enregistrements DNS personnalisés
Avant de pouvoir vous connecter à l'instance à l'aide du nom DNS personnalisé avec vos clients et applications, configurez le mappage entre le nom DNS et l'adresse IP. Ce mappage est appelé résolution DNS. Si vous vous connectez en privé, alors créez l'enregistrement DNS dans une zone DNS privée du réseau de cloud privé virtuel (VPC) correspondant.
Pour créer des enregistrements DNS personnalisés pour votre instance, procédez comme suit :
Récupérez l'adresse IP de votre instance. Exécutez la commande suivante :
gcloud sql instances describe INSTANCE_NAME \ --project=PROJECT_ID
Effectuez les remplacements suivants :
- INSTANCE_NAME : nom de l'instance Cloud SQL.
- PROJECT_ID : ID ou numéro de projet du Google Cloud projet contenant l'instance.
Dans la réponse, recherchez le champ
ipAddresses:.Exemple :
ipAddresses: - ipAddress: 192.0.2.4 type: PRIVATEVous pouvez récupérer l'adresse IP privée d'une instance configurée pour l'accès aux services privés, Private Service Connect ou les deux.
Ajoutez deux enregistrements DNS à une zone DNS utilisée par votre application. Vous pouvez utiliser un serveur DNS que vous gérez vous-même ou la zone privée Cloud DNS utilisée par votre application.
- Créez un enregistrement
Apour l'adresse IP de l'instance. - Créez un enregistrement
TXTcontenant le nom de connexion de l'instance.
Les clients de base de données standards utilisent l'enregistrement
Apour rechercher l'adresse IP afin d'établir la connexion. Les connecteurs de langage Cloud SQL et le proxy d'authentification Cloud SQL utilisent l'enregistrementTXTpour rechercher le nom de connexion de l'instance.Par exemple, la chaîne de connexion de votre instance est
my-project:region:my-instance, mais vous souhaitez vous connecter à l'aide du nom DNSprod-db.mycompany.example.com. Si l'adresse IP de l'instance sur le réseau de votre entreprise est192.0.2.4, créez les enregistrements DNS suivants :Record type: A Name: prod-db.mycompany.example.com Value: 192.0.2.4 TTL: 600 Record type: TXT Name: prod-db.mycompany.example.com Value: my-project:region:my-instance TTL: 600- Créez un enregistrement
Se connecter à une instance à l'aide d'un nom DNS personnalisé
Lorsque vous vous connectez à l'instance Cloud SQL pour SQL Server, configurez le nom DNS personnalisé comme nom d'hôte. Activez ensuite la validation de l'identité du serveur en spécifiant l'indicateur-N pour sqlcmd ou en sélectionnant l'option Encrypt Connection/Encryption (Chiffrer la connexion/Chiffrement) de SSMS.
D'autres pilotes SQL Server disposent d'indicateurs ou de configurations similaires.
Si vous vous connectez à une instance Cloud SQL privée à partir d'un réseau externe, vous devez configurer votre instance Cloud SQL et son réseau VPC (Virtual Private Cloud) pour autoriser les connexions externes et permettre à Cloud DNS de communiquer avec les systèmes sur site. Pour en savoir plus sur cette configuration, consultez Se connecter à partir d'une source externe et Configurer le DNS pour les systèmes sur site.
Limites
- Vous ne pouvez pas ajouter plus de trois noms DNS en tant que valeurs SAN personnalisées au certificat de serveur d'une instance Cloud SQL.
- La longueur maximale d'un nom DNS que vous pouvez ajouter au certificat en tant que valeur SAN personnalisée pour une instance est de 253 caractères.
- Les noms DNS que vous ajoutez au certificat d'une instance ne peuvent pas contenir de caractères génériques (
*) ni de points de suspension. Par exemple,test.example.com.n'est pas autorisé. - Les noms DNS doivent être valides, comme spécifié dans la RFC 1034.
- Vous ne pouvez spécifier des valeurs SAN personnalisées que pour les instances
CUSTOMER_MANAGED_CAS_CA.
Étape suivante
- Gérez les certificats SSL/TLS sur votre instance Cloud SQL.
- Découvrez comment le chiffrement est géré dans Google Cloud.