Cette page explique comment configurer un nom de système de noms de domaine (DNS) personnalisé pour votre instance Cloud SQL.
Présentation
Vous pouvez configurer une instance Cloud SQL pour 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'utiliser une adresse IP, configurez un nom d'objet alternatif (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 serveur de l'instance. Cette personnalisation vous permet d'utiliser le nom DNS personnalisé avec la validation du nom d'hôte de manière sécurisée.
Vous pouvez ajouter une liste de 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
en tant que mode autorité de certification du serveur.
Une fois que vous avez configuré le nom DNS personnalisé pour votre instance, vous pouvez l'utiliser pour connecter vos clients de base de données ou applications, 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 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 des rôles et autorisations requis.
Si vous créez une instance Cloud SQL, votre instance doit également utiliser une autorité de certification (CA) gérée par le client pour son mode autorité de certification de 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_NAME
par le nom de l'instance Cloud SQL que vous souhaitez créer.DATABASE_VERSION
par leenum
de la version de l'instance Cloud SQL que vous souhaitez créer.PROJECT_ID
par l'ID du projet dans lequel vous prévoyez de créer vos instances Cloud SQL.PROJECT_ID_CAS
par l'ID du projet dans lequel vous avez créé votre CA_POOL_ID. Ce projet peut être identique ou différent de celui dans lequel vous souhaitez créer votre instance Cloud SQL.REGION
par 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_ID
par l'ID du pool d'autorités de certification que vous avez créé.CUSTOM_DNS_NAME
avec jusqu'à trois noms DNS personnalisés, séparés par une virgule et sans espace entre les valeurs. Par exemple,develop.example.com,test.example.com,production.example.com
.
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_NAME
par le nom de l'instance Cloud SQL que vous souhaitez mettre à jour.CUSTOM_DNS_NAME
avec jusqu'à trois noms DNS personnalisés, séparés par une virgule et sans espace entre les valeurs. Par exemple,develop.example.com,new-test.example.com,production.example.com
.
Supprimer 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é, créez l'enregistrement DNS dans une zone DNS privée dans le réseau 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 projet Google Cloud contenant l'instance.
Dans la réponse, recherchez le champ
ipAddresses:
.Exemple :
ipAddresses: - ipAddress: 192.0.2.4 type: PRIVATE
Vous 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éer un enregistrement
A
pour l'adresse IP de l'instance - Créez un enregistrement
TXT
contenant le nom de connexion de l'instance.
Les clients de base de données standards utilisent l'enregistrement
A
pour rechercher l'adresse IP permettant d'établir la connexion. Les connecteurs de langage Cloud SQL et le proxy d'authentification Cloud SQL utilisent l'enregistrementTXT
pour 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éer un enregistrement
Se connecter à une instance à l'aide d'un nom DNS personnalisé
Lorsque vous vous connectez à l'instance Cloud SQL pour PostgreSQL, configurez le nom DNS personnalisé comme nom d'hôte et activez la validation de l'identité du serveur dans votre client.Par exemple, lorsque vous utilisez le client psql
, spécifiez l'indicateur sslmode=verify-full
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 cloud privé virtuel (VPC) 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 les pages 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 doivent pas contenir de caractères génériques (
*
) ni de points à la fin. 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.
- Connectez-vous à votre instance Cloud SQL à l'aide de certificats SSL/TLS.
- Découvrez en détail comment PostgreSQL utilise les certificats SSL/TLS.