L'intégration de Cloud SQL pour SQL Server à Microsoft Entra ID permet de gérer de manière centralisée les identités et les accès (IAM) pour vos bases de données à l'aide de votre locataire Microsoft Entra ID existant.
Cette intégration offre les avantages suivants :
Authentification centralisée : Permet aux utilisateurs et aux applications de se connecter à leurs instances Cloud SQL pour SQL Server à l'aide de leurs identités Microsoft Entra ID existantes sans avoir à saisir à nouveau un mot de passe. Cette fonctionnalité évite d'avoir à gérer des identifiants et mots de passe distincts spécifiques à SQL Server.
Sécurité renforcée. Vous aide à appliquer les règles de sécurité existantes de votre organisation, telles que l'authentification multifacteur (MFA) et les règles d'accès conditionnel (AC), au niveau de la base de données.
Gestion des utilisateurs simplifiée. Lorsqu'un compte Microsoft Entra ID d'utilisateur est désactivé ou supprimé, l'accès de l'utilisateur à la base de données est automatiquement révoqué. Cette fonctionnalité permet de simplifier le désabonnement et les vérifications d'accès.
Conditions préalables à l'intégration
Pour utiliser l'intégration de Cloud SQL pour SQL Server avec Microsoft Entra ID, votre instance doit répondre aux exigences suivantes :
Vous devez disposer d'une instance SQL Server 2022 existante ou en créer une.
L'authentification Microsoft Entra ID n'est compatible qu'avec SQL Server 2022. Elle n'est pas disponible sur SQL Server 2017 ni SQL Server 2019.
Activez l'authentification Microsoft Entra ID.
Avant d'activer l'authentification Microsoft Entra ID, effectuez les étapes suivantes dans votre portail Azure :
- Trouvez votre ID de locataire Microsoft Entra.
Créez un enregistrement d'application dans Microsoft Entra ID.
Cloud SQL pour SQL Server utilise cette application pour communiquer avec votre ID de locataire Microsoft Entra. Lorsque vous créez l'application, notez son ID ou celui du client.
Accordez à l'application l'autorisation de lire les données du répertoire :
- Sélectionnez l'enregistrement d'application que vous venez de créer, puis cliquez sur Autorisations d'API.
- Sélectionnez Ajouter une autorisation > Microsoft Graph > Autorisations de l'application.
- Accordez l'un des ensembles d'autorisations suivants :
- Option 1.
- Directory.Read.All
- Option 2. Fournit des autorisations plus spécifiques.
- Application.Read.All
- Group.Read.All
- User.Read.All
- Option 1.
- Accordez le consentement de l'administrateur à l'ensemble du locataire pour autoriser l'application à utiliser ces autorisations.
Connectivité réseau
Microsoft Entra ID est un service public qui utilise des points de terminaison publics pour l'authentification. Pour que l'authentification Microsoft Entra ID fonctionne correctement, votre instance Cloud SQL doit pouvoir établir des connexions sortantes vers ces points de terminaison publics. Les sections suivantes décrivent les prochaines étapes, en fonction de la configuration de la connectivité réseau de votre instance :
Instances avec une adresse IP publique
Si votre instance Cloud SQL est configurée avec une adresse IP publique, elle dispose d'un accès sortant intégré à Internet.
Bien qu'aucune configuration réseau supplémentaire ne soit requise pour que l'authentification Microsoft Entra ID fonctionne, consultez les limitations avant de continuer.
Instances avec une adresse IP privée
Si votre instance Cloud SQL n'est configurée qu'avec une adresse IP privée, elle n'a pas d'accès direct à Internet. Vous devez configurer un chemin de sortie pour permettre à l'instance d'accéder aux points de terminaison d'identité publics de Microsoft. La configuration de l'intégration de Microsoft Entra ID dépend de la configuration de votre instance privée :
Private Service Connect
Si votre instance Cloud SQL est configurée pour utiliser une adresse IP privée, nous vous recommandons d'utiliser Private Service Connect pour activer Microsoft Entra ID, car cela élimine certaines tâches de maintenance générales, telles que les suivantes :
- Gérer les VM d'hôte bastion
- Entretenir les routes.
- Créer des routes trop larges, comme celles requises pour la connectivité PSA.
Avant de continuer, consultez les limites pour l'utilisation de Microsoft Entra ID.
Pour activer la connectivité, vous devez configurer Cloud NAT (Network Address Translation) dans le VPC consommateur. Cela permet à l'instance compatible avec PSC d'utiliser la passerelle Cloud NAT pour le trafic sortant vers les points de terminaison Microsoft publics. Une fois le routage interne activé, le trafic est limité de sorte que seul le trafic lié à Microsoft Entra ID atteigne votre instance Cloud NAT.
Pour activer la connectivité, procédez comme suit :
- Créez une instance compatible PSC.
- Configurez la connectivité sortante pour votre instance Cloud SQL.
- Créez une passerelle Cloud NAT.
Accès aux services privés
Si votre instance Cloud SQL est configurée pour utiliser une adresse IP privée et que vous utilisez l'accès aux services privés, vous devez suivre les étapes ci-dessous pour activer la connectivité à Microsoft Entra ID :
Déployez une VM d'hôte bastion dans votre VPC.
Lorsque vous créez une VM hôte bastion dans votre projet, le transfert IP doit être activé. Si vous avez créé une VM d'hôte bastion basée sur Linux, configurez-la pour effectuer le transfert IP :
sudo sysctl net.ipv4.conf.all.forwarding=1 sudo iptables --table nat --append POSTROUTING --out-interface ens4 -j MASQUERADEConfigurez les routes réseau nécessaires pour diriger le trafic d'authentification Microsoft Entra ID depuis votre instance Cloud SQL vers Internet via l'hôte de VM hôte bastion.
Ajoutez les routes correspondantes pour chaque point de terminaison Microsoft Entra ID. Vous trouverez les plages d'adresses IP actuelles dans la section
AzureActiveDirectory.ServiceEndpointdu fichier de ressources Plages d'adresses IP et balises de service Azure.gcloud
Pour chaque plage d'adresses IP Microsoft Entra ID, créez deux routes en remplaçant
VM_NAMEetVM_ZONEpar le nom et la zone réels de votre VM hôte bastion :gcloud --project=PROJECT_ID compute routes create NAME \ --network=NETWORK --destination-range=RANGE \ --priority=998 --next-hop-gateway=default-internet-gateway gcloud --project=PROJECT_ID compute routes create NAME \ --network=NETWORK --destination-range=RANGE --priority=999 \ --next-hop-instance=VM_NAME --next-hop-instance-zone=VM_ZONE \ --next-hop-ilb=ILB_VALUERemplacez les éléments suivants :
- PROJECT_ID : ID du projet dans lequel réside votre instance Cloud SQL.
- NAME : nom de la route que vous souhaitez créer.
- NETWORK : nom du réseau sur lequel réside votre instance Cloud SQL.
- RANGE : plage d'adresses IP que vous souhaitez utiliser.
- VM_NAME : nom de la VM hôte bastion que vous souhaitez inclure.
- VM_ZONE : zone de la VM de l'hôte bastion que vous souhaitez inclure, par exemple
us-central1. ILB_VALUE : facultatif. Nom ou adresse IP d'une règle de transfert pour un équilibreur de charge TCP/UDP interne. Si vous avez configuré un équilibreur de charge devant vos VM hôtes bastion, vous devez inclure l'indicateur
--next-hop-ilbdans cette commande.Pour en savoir plus, consultez Équilibreurs de charge réseau passthrough internes comme sauts suivants.
Voici un exemple :
gcloud --project=my-customer-project compute routes create my-route-1 --network=default --destination-range=20.20.32.0/27 --priority=998 --next-hop-gateway=default-internet-gateway gcloud --project=my-customer-project compute routes create my-route-2 --network=default --destination-range=20.20.32.0/27 --priority=999 --next-hop-instance=my-bastion-vm --next-hop-instance-zone=us-central1-c --next-hop-ilb=fr-ilb1Utilisez la même commande que celle de l'étape précédente pour appliquer la même configuration afin d'autoriser le trafic pour les vérifications de révocation de certificat Microsoft Entra ID. Utilisez les plages d'adresses IP listées sur la page Adresse IP de l'état du certificat DigiCert.
Si vous ne suivez pas cette étape, l'authentification Microsoft Entra ID peut toujours fonctionner, mais vous risquez également de rencontrer des retards lors de l'ouverture de nouvelles connexions.
Gérer l'authentification Microsoft Entra ID
Vous pouvez activer l'authentification Entra ID pour une instance nouvelle ou existante.
Créer une instance avec l'authentification Microsoft Entra ID activée
Vous pouvez activer l'authentification Microsoft Entra ID lorsque vous créez une instance Cloud SQL pour SQL Server. Vous devez fournir l'ID de locataire Microsoft Entra et l'ID application (ID client) spécifiques de l'enregistrement d'application que vous avez configuré dans le portail Azure.
Pour en savoir plus, consultez Conditions préalables.
gcloud
gcloud beta sql instances create INSTANCE_NAME \
--database-version=EDITION \
--tier=TIER \
--network=NETWORK
--root-password=PASSWORD
--entra-id-tenant-id=TENANT_ID \
--entra-id-application-id=APPLICATION_ID
Remplacez les éléments suivants :
- INSTANCE_NAME : nom de l'instance que vous souhaitez créer.
- EDITION : édition de l'instance que vous souhaitez utiliser, par exemple
SQLSERVER_2022_STANDARD. - TIER : niveau ou type de machine de l'instance que vous souhaitez utiliser, par exemple
db-custom-2-3840. - NETWORK : nom du réseau que vous souhaitez utiliser.
- PASSWORD : mot de passe de l'instance.
- TENANT_ID : ID du locataire Microsoft Entra.
- APPLICATION_ID : ID de l'application ou du client.
Voici un exemple :
gcloud beta sql instances create my-entraid-instance \
--database-version=SQLSERVER_2022_STANDARD \
--tier=db-custom-2-3840 \
--assign-ip \
--root-password=D61Xv36f!0lE \
--entra-id-tenant-id=7e281aab-e994-4c83-88ed-d1674477a39c \
--entra-id-application-id=4c5ed2da-0478-4aaa-ab65-6dfd33ba8bfd
REST v1
Tous les champs possibles ne sont pas affichés dans l'appel d'API de base ci-dessous. Pour obtenir un prototype de requête JSON, consultez la section Paramètres.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : nom du projet dans lequel se trouvera l'instance que vous souhaitez créer.
- INSTANCE_ID : ID de l'instance que vous souhaitez créer.
- EDITION : édition de l'instance que vous souhaitez utiliser, par exemple
SQLSERVER_2022_STANDARD. - REGION : région dans laquelle vous souhaitez que l'instance réside, par exemple
us-central1. - PASSWORD : mot de passe de l'instance.
- TIER : niveau ou type de machine de l'instance que vous souhaitez utiliser, par exemple
db-custom-2-3840. - NETWORK : nom du réseau que vous souhaitez utiliser.
- TENANT_ID : ID du locataire Microsoft Entra.
- APPLICATION_ID : ID de l'application ou du client.
Méthode HTTP et URL :
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
Corps JSON de la requête :
{
"databaseVersion":"EDITION",
"name":"INSTANCE_ID",
"region":"REGION",
"rootPassword":"PASSWORD",
"settings":
{
"tier":"TIER",
"ipConfiguration":
{
"privateNetwork":"NETWORK"
},
"entraidConfig":
{
"tenantId": "TENANT_ID",
"applicationId": "APPLICATION_ID"
}
}
}
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_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-01T19:13:21.834Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
REST v1beta4
Tous les champs possibles ne sont pas affichés dans l'appel d'API de base ci-dessous. Pour obtenir un prototype de requête JSON, consultez la section Paramètres.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : nom du projet dans lequel se trouvera l'instance que vous souhaitez créer.
- INSTANCE_ID : ID de l'instance que vous souhaitez créer.
- EDITION : édition de l'instance que vous souhaitez utiliser, par exemple
SQLSERVER_2022_STANDARD. - REGION : région dans laquelle vous souhaitez que l'instance réside, par exemple
us-central1. - PASSWORD : mot de passe de l'instance.
- TIER : niveau ou type de machine de l'instance que vous souhaitez utiliser, par exemple
db-custom-2-3840. - NETWORK : nom du réseau que vous souhaitez utiliser.
- TENANT_ID : ID du locataire Microsoft Entra.
- APPLICATION_ID : ID de l'application ou du client.
Méthode HTTP et URL :
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances
Corps JSON de la requête :
{
"databaseVersion":"EDITION",
"name":"INSTANCE_ID",
"region":"REGION",
"rootPassword":"PASSWORD",
"settings":
{
"tier":"TIER",
"ipConfiguration":
{
"privateNetwork":"NETWORK"
},
"entraidConfig":
{
"tenantId": "TENANT_ID",
"applicationId": "APPLICATION_ID"
}
}
}
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/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-01T19:13:21.834Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
Gérer l'authentification Microsoft Entra ID sur une instance existante
Vous pouvez activer, modifier ou désactiver la configuration Microsoft Entra ID sur une instance existante à tout moment.
Pour modifier la configuration de votre instance, vous devez la corriger avec les nouvelles valeurs d'ID de locataire et d'ID d'application (client) ou les valeurs supprimées.
Ce processus n'implique pas de rejoindre un domaine ni de le quitter.
Vous pouvez mettre à jour les valeurs de l'ID de locataire et de l'ID application sans activer ni désactiver l'intégration à Microsoft Entra ID.
gcloud
gcloud beta sql instances patch INSTANCE_NAME \
--entra-id-tenant-id="NEW_TENANT_ID" \
--entra-id-application-id="NEW_APPLICATION_ID"
Remplacez les éléments suivants :
- INSTANCE_NAME : nom de l'instance que vous souhaitez modifier.
- NEW_TENANT_ID : nouvel ID de locataire Microsoft Entra. Pour désactiver Microsoft Entra ID, laissez cette chaîne vide.
- NEW_APPLICATION_ID : nouvel ID d'application ou de client. Pour désactiver Microsoft Entra ID, laissez cette chaîne vide.
Voici un exemple :
gcloud beta sql instances patch my-existing-instance \
--entra-id-tenant-id=7e281aab-e994-4c83-88ed-d1674477a39c \
--entra-id-application-id=4c5ed2da-0478-4aaa-ab65-6dfd33ba8bfd
REST v1
Tous les champs possibles ne sont pas affichés dans l'appel d'API de base ci-dessous. Pour obtenir un prototype de requête JSON, consultez la section Paramètres.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID du projet dans lequel se trouve l'instance que vous souhaitez modifier.
- INSTANCE_ID : ID de l'instance que vous souhaitez modifier.
- TENANT_ID : ID du locataire Microsoft Entra. Pour désactiver Microsoft Entra ID, laissez cette chaîne vide.
- APPLICATION_ID : ID de l'application ou du client. Pour désactiver Microsoft Entra ID, laissez cette chaîne vide.
Méthode HTTP et URL :
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
Corps JSON de la requête :
{
"settings":
{
"entraidConfig":
{
"tenantId": "NEW_TENANT_ID",
"applicationId": "NEW_APPLICATION_ID"
}
}
}
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_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-01T19:13:21.834Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
REST v1beta4
Tous les champs possibles ne sont pas affichés dans l'appel d'API de base ci-dessous. Pour obtenir un prototype de requête JSON, consultez la section Paramètres.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID du projet dans lequel se trouve l'instance que vous souhaitez modifier.
- INSTANCE_ID : ID de l'instance que vous souhaitez modifier.
- TENANT_ID : ID du locataire Microsoft Entra. Pour désactiver Microsoft Entra ID, laissez cette chaîne vide.
- APPLICATION_ID : ID de l'application ou du client. Pour désactiver Microsoft Entra ID, laissez cette chaîne vide.
Méthode HTTP et URL :
PATCH https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances
Corps JSON de la requête :
{
"settings":
{
"entraidConfig":
{
"tenantId": "NEW_TENANT_ID",
"applicationId": "NEW_APPLICATION_ID"
}
}
}
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/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-01T19:13:21.834Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
Ajouter le certificat à l'application
Pour que votre instance Microsoft Entra ID authentifie votre instance Cloud SQL pour SQL Server, vous devez importer le certificat public de l'instance Cloud SQL pour SQL Server dans l'enregistrement de votre application Microsoft Entra ID.
Après avoir activé l'authentification Microsoft Entra ID sur votre instance, créez un certificat spécifique à l'instance pour Microsoft Entra ID.
gcloud
gcloud beta sql ssl entraid-certs create --instance=INSTANCE_NAMERemplacez les éléments suivants :
- INSTANCE_NAME : nom de l'instance pour laquelle vous souhaitez créer un certificat.
REST v1
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID du projet dans lequel se trouve votre instance.
- INSTANCE_ID : ID de l'instance
Méthode HTTP et URL :
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/addEntraIdCertificate
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_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }REST v1beta4
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID du projet dans lequel se trouve votre instance.
- INSTANCE_ID : ID de l'instance
Méthode HTTP et URL :
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/addEntraIdCertificate
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/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }Obtenez les détails du certificat que vous venez de créer en récupérant les détails de l'instance :
gcloud
gcloud beta sql ssl entraid-certs list --instance=INSTANCE_NAME --format="value(ssl_cert.cert)"Remplacez les éléments suivants :
- INSTANCE_NAME : nom de l'instance associée au certificat que vous venez de créer.
REST v1
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID du projet dans lequel se trouve votre instance.
- INSTANCE_ID : ID de l'instance
Méthode HTTP et URL :
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/listEntraIdCertificates
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir un code d'état indiquant le succès de l'opération (2xx), ainsi qu'une réponse vide.
Cette commande affiche un certificat que vous pouvez enregistrer dans un fichier, puis importer ultérieurement sur le portail Azure.
Vous devez supprimer tous les caractères de nouvelle ligne intégrés au fichier et séparer manuellement chaque nouvelle ligne. Dans le cas contraire, l'importation du fichier échouera.
Par exemple, vous pouvez recevoir une chaîne de texte semblable à celle-ci :
Line1\Line2\Line3Vous devez séparer manuellement chaque ligne, comme suit :
Line1 Line2 Line3Si vous ne souhaitez pas effectuer cette tâche manuellement, vous pouvez utiliser la commande suivante :
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -H "x-goog-user-project: PROJECT_ID" "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME/listEntraIdCertificates" -s | jq -r '.certs[0].cert'Remplacez les éléments suivants :
- PROJECT_ID : ID du projet dans lequel se trouve votre instance.
- INSTANCE_NAME : nom de l'instance associée au certificat que vous venez de créer.
REST v1beta4
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID du projet dans lequel se trouve votre instance.
- INSTANCE_ID : ID de l'instance
Méthode HTTP et URL :
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/listEntraIdCertificates
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir un code d'état indiquant le succès de l'opération (2xx), ainsi qu'une réponse vide.
Cette commande affiche un certificat que vous pouvez enregistrer dans un fichier, puis importer ultérieurement sur le portail Azure.
Vous devez supprimer tous les caractères de nouvelle ligne intégrés au fichier et séparer manuellement chaque nouvelle ligne. Dans le cas contraire, l'importation du fichier échouera.
Par exemple, vous pouvez recevoir une chaîne de texte semblable à celle-ci :
Line1\Line2\Line3Vous devez séparer manuellement chaque ligne, comme suit :
Line1 Line2 Line3Si vous ne souhaitez pas effectuer cette tâche manuellement, vous pouvez utiliser la commande suivante :
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -H "x-goog-user-project: PROJECT_ID" "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME/listEntraIdCertificates" -s | jq -r '.certs[0].cert'Remplacez les éléments suivants :
- PROJECT_ID : ID du projet dans lequel se trouve votre instance.
- INSTANCE_NAME : nom de l'instance associée au certificat que vous venez de créer.
Ajoutez votre certificat au portail Azure.
- Accédez à App Registration (Enregistrement de l'application) sur le portail Azure.
- Ouvrez Certificats et codes secrets.
- Sélectionnez Importer un certificat. Accédez au fichier de certificat que vous avez récupéré depuis votre instance, puis ajoutez-le.
- Cliquez sur OK.
Faire la rotation du certificat Microsoft Entra ID
Vous devez effectuer une rotation du certificat Microsoft Entra ID avant son expiration. Nous vous recommandons de commencer ce processus au moins une semaine avant la date d'expiration prévue :
Suivez les étapes décrites dans Ajouter le certificat à l'application pour créer un certificat inactif sur votre instance Cloud SQL pour SQL Server, puis importez-le dans Microsoft Entra ID à l'aide du portail Azure. Cela n'a aucune incidence sur le certificat actif actuel.
Activez le nouveau certificat sur l'instance Cloud SQL pour SQL Server. Cloud SQL pour SQL Server commencera alors à utiliser le nouveau certificat pour toutes les nouvelles authentifications.
gcloud
gcloud beta sql ssl entraid-certs rotate --instance=INSTANCE_NAMERemplacez les éléments suivants :
- INSTANCE_NAME : nom de l'instance associée au certificat que vous souhaitez alterner.
REST v1
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID du projet dans lequel se trouve votre instance.
- INSTANCE_ID : ID de l'instance
Méthode HTTP et URL :
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/rotateEntraIdCertificate
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir un code d'état indiquant le succès de l'opération (2xx), ainsi qu'une réponse vide.
REST v1beta4
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID du projet dans lequel se trouve votre instance.
- INSTANCE_ID : ID de l'instance
Méthode HTTP et URL :
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/rotateEntraIdCertificate
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir un code d'état indiquant le succès de l'opération (2xx), ainsi qu'une réponse vide.
Votre instance utilise désormais le nouveau certificat.
Vous pouvez supprimer l'ancien certificat de l'enregistrement de votre application Microsoft Entra ID et de l'instance Cloud SQL pour SQL Server sans risque. Pour en savoir plus, consultez Ajouter et gérer des identifiants d'application dans Microsoft Entra ID.
Annuler la rotation du certificat Microsoft Entra ID
Si vous rencontrez des problèmes après avoir remplacé un certificat par un nouveau, vous pouvez revenir au certificat précédent.
Pour effectuer une restauration, le certificat précédent doit toujours être valide et approuvé par l'enregistrement de votre application Microsoft Entra ID.
Les commandes suivantes réactivent immédiatement le certificat précédent spécifié sur votre instance Cloud SQL pour SQL Server.
gcloud
gcloud beta sql ssl entraid-certs rollback --instance=INSTANCE_NAME
Remplacez les éléments suivants :
- INSTANCE_NAME : nom de l'instance associée au certificat que vous souhaitez annuler.
REST v1
Tous les champs possibles ne sont pas affichés dans l'appel d'API de base ci-dessous. Pour obtenir un prototype de requête JSON, consultez la section Paramètres.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID du projet dans lequel se trouve l'instance.
- INSTANCE_ID : ID de l'instance pour laquelle vous souhaitez rétablir le certificat.
- CERTIFICATE_NAME : nom du nouveau certificat que vous souhaitez utiliser pour remplacer l'ancien, par exemple
sha1Fingerprint.
Méthode HTTP et URL :
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/rollbackEntraIdCertificate
Corps JSON de la requête :
{
{
"RotateEntraIdCertificateContext": {"nextVersion": "CERTIFICATE_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#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-01T19:13:21.834Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
REST v1beta4
Tous les champs possibles ne sont pas affichés dans l'appel d'API de base ci-dessous. Pour obtenir un prototype de requête JSON, consultez la section Paramètres.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID du projet dans lequel se trouve l'instance.
- INSTANCE_ID : ID de l'instance pour laquelle vous souhaitez rétablir le certificat.
- CERTIFICATE_NAME : nom du nouveau certificat que vous souhaitez utiliser pour remplacer l'ancien, par exemple
sha1Fingerprint.
Méthode HTTP et URL :
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/rollbackEntraIdCertificate
Corps JSON de la requête :
{
{
"RotateEntraIdCertificateContext": {"nextVersion": "CERTIFICATE_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#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-01T19:13:21.834Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
Créer la connexion Microsoft Entra ID initiale
Après avoir activé l'authentification Microsoft Entra ID sur l'instance, vous devez créer vos identifiants Microsoft Entra ID.
Créez la première connexion Microsoft Entra ID.
Cette connexion initiale, qui représente un utilisateur ou un groupe Microsoft Entra ID, ne peut pas être créée à l'aide de T-SQL. Vous devez la créer à l'aide de gcloud CLI ou de l'API Cloud SQL Admin :
gcloud
gcloud sql users create USER_NAME --instance=INSTANCE_NAME --type=ENTRAID_USERRemplacez les éléments suivants :
- USER_NAME : nom de l'utilisateur Cloud SQL pour SQL Server que vous souhaitez créer.
- INSTANCE_NAME : nom de l'instance pour laquelle vous souhaitez créer des identifiants Microsoft Entra ID.
- ENTRAID_USER : nom d'utilisateur Microsoft Entra ID.
Voici un exemple :
gcloud sql users create myentraiduser@mytenant.com --instance=my-entraid-instance --type=ENTRAID_USERREST v1
Tous les champs possibles ne sont pas affichés dans l'appel d'API de base ci-dessous. Pour obtenir un prototype de requête JSON, consultez la section Paramètres.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID du projet dans lequel se trouve l'instance.
- INSTANCE_ID : ID de l'instance que vous souhaitez mettre à jour.
- USER_NAME : nom de l'utilisateur Cloud SQL pour SQL Server que vous souhaitez créer.
- ENTRAID_USER : nom d'utilisateur Microsoft Entra ID.
Méthode HTTP et URL :
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users
Corps JSON de la requête :
{ "name": "USER_NAME" "type": "ENTRAID_USER" }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_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }REST v1beta4
Tous les champs possibles ne sont pas affichés dans l'appel d'API de base ci-dessous. Pour obtenir un prototype de requête JSON, consultez la section Paramètres.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID du projet dans lequel se trouve l'instance.
- INSTANCE_ID : ID de l'instance que vous souhaitez mettre à jour.
- USER_NAME : nom de l'utilisateur Cloud SQL pour SQL Server que vous souhaitez créer.
- ENTRAID_USER : nom d'utilisateur Microsoft Entra ID.
Méthode HTTP et URL :
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users
Corps JSON de la requête :
{ "name": "USER_NAME" "type": "ENTRAID_USER" }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/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }Une fois la connexion Microsoft Entra ID initiale créée, vous pouvez vous connecter à la base de données en tant qu'utilisateur.
Créez d'autres identifiants de connexion Microsoft Entra ID.
Vous pouvez créer et gérer des identifiants Microsoft Entra ID supplémentaires, comme indiqué à l'étape précédente.
Si vous préférez utiliser un autre outil tel que SQL Server Management Studio (SSMS), vous devez d'abord accorder à la connexion initiale l'autorisation de gérer d'autres connexions :
GRANT ALTER ANY LOGIN TO [ENTRA_ID_USER] AS CustomerDbRootRoleRemplacez ENTRAID_USER par le nom d'utilisateur Microsoft Entra ID.
Une fois les autorisations accordées, cette connexion peut créer et gérer d'autres connexions Microsoft Entra ID à l'aide des commandes T-SQL standards. Voici un exemple de commande :
CREATE LOGIN [<<ENTRA_ID_USER>>] FROM EXTERNAL PROVIDERRemplacez ENTRAID_USER par le nom d'utilisateur Microsoft Entra ID.
Pour créer des utilisateurs en fonction des identifiants Microsoft Entra ID ou pour accorder des autorisations, utilisez les commandes T-SQL standards.
Pour en savoir plus, y compris sur la création d'un identifiant à l'aide de la syntaxe appropriée, consultez Configurer l'authentification Microsoft Entra pour SQL Server avec l'enregistrement d'application.
Bonnes pratiques
Pour isoler les autorisations et mieux définir les limites de sécurité, nous vous recommandons vivement de créer un enregistrement d'application Microsoft Entra ID unique pour chaque instance Cloud SQL pour SQL Server. La révocation des identifiants de l'application n'aura pas d'incidence sur les autres instances non associées.
Pour en savoir plus, consultez Enregistrer une application dans Microsoft Entra ID.
Dépannage
Les sections suivantes vous aident à résoudre les problèmes que vous pouvez rencontrer lors de la gestion de l'intégration de Microsoft Entra ID.
Problèmes de connectivité réseau avec les instances IP privées
Vous pouvez rencontrer certains des problèmes suivants lors de la configuration de l'intégration :
- Opérations lentes pour créer des identifiants Microsoft Entra ID
- Impossible de créer des identifiants Microsoft Entra ID
- Impossible de se connecter à l'instance à l'aide de l'authentification Microsoft Entra ID
Pour résoudre ces problèmes, effectuez le test de connectivité suivant :
Dans le même projet Google Cloud et le même VPC, et dans la même région que votre instance Cloud SQL pour SQL Server, créez une VM de test configurée avec une adresse IP privée uniquement.
Connectez-vous à la VM que vous venez de créer à l'aide du protocole RDP (Remote Desktop Protocol) ou du protocole SSH (Secure Shell). Exécutez ensuite les commandes suivantes pour tester l'accessibilité. Ces étapes peuvent être appliquées aux VM Linux et Windows :
curl -4iv login.microsoftonline.com curl -4iv graph.microsoft.com curl -4iv ocsp.digicert.com
Si vous ne parvenez pas à accéder à l'un de ces points de terminaison, que ce soit en raison de délais d'inactivité ou d'erreurs de connexion refusée, vérifiez les points suivants dans la configuration de votre réseau :
- Pour Private Service Connect, assurez-vous que Cloud NAT est correctement configuré pour autoriser l'accès Internet sortant.
- Pour l'accès aux services privés, vérifiez la configuration de vos routes personnalisées et de vos hôtes bastion.
- Vérifiez vos règles de pare-feu VPC pour vous assurer que le trafic sortant vers ces domaines n'est pas bloqué.
Messages d'erreur fréquents
L'erreur de connexion suivante peut s'afficher lors de l'authentification Microsoft Entra ID :
Login failed for user ""
Pour résoudre ce problème, assurez-vous qu'une connexion SQL Server existe pour cet utilisateur Microsoft Entra ID.
Migration depuis Microsoft Active Directory
Dans les scénarios suivants, vous pouvez activer l'authentification Microsoft Entra ID sans désactiver l'authentification Microsoft Active Directory existante :
- Effectuer une migration par étapes. Transférer l'autorité d'authentification de Microsoft Active Directory vers Microsoft Entra ID à l'aide de Customer-Managed Active Directory (CMAD) ou du service géré pour Microsoft Active Directory.
- Utiliser un environnement hybride Conserver Microsoft Active Directory et Microsoft Entra ID activés simultanément.
Instances dupliquées avec accès en lecture
- Si vous ajoutez une instance répliquée avec accès en lecture à une instance principale pour laquelle Microsoft Entra ID est activé, l'instance répliquée avec accès en lecture est automatiquement configurée pour utiliser Microsoft Entra ID.
- Si Microsoft Entra ID est activé sur l'instance principale et que vous restaurez une sauvegarde sur cette instance, sa réplique en lecture associée est automatiquement configurée pour utiliser Microsoft Entra, car l'identité ne change pas.
Instances clonées et restauration sur une autre instance
L'intégration de Microsoft Entra ID n'est pas automatiquement configurée pour la nouvelle instance dans les scénarios suivants :
- Clone de l'instance principale.
- Sauvegarde restaurée sur une instance qui n'est pas l'instance principale.
Dans ce cas, vous devez activer manuellement Microsoft Entra ID sur la nouvelle instance, puis réimporter son certificat dans l'application Microsoft Entra ID. Cette exigence est une mesure de sécurité visant à empêcher plusieurs instances non liées d'utiliser la même identité d'application.
Limites
- L'authentification Microsoft Entra ID n'est compatible qu'avec SQL Server 2022. Elle n'est pas disponible sur SQL Server 2017 ni SQL Server 2019.
- Si vous clonez une instance ou restaurez une sauvegarde sur une autre instance, l'intégration de Microsoft Entra ID n'est pas configurée automatiquement sur la nouvelle instance. Pour en savoir plus, consultez Sauvegarde et récupération.
- L'authentification Microsoft Entra ID n'est pas compatible avec les instances à haute disponibilité configurées avec une adresse IP publique.
- L'authentification Microsoft Entra ID n'est pas compatible avec les instances principales PSC, ni avec leurs instances répliquées avec accès en lecture correspondantes.
- Évitez de faire tourner les certificats Microsoft Entra ID sur les instances principales auxquelles des réplicas sont associés. Si vous faites pivoter le certificat de l'instance principale, les certificats des instances répliquées ne seront pas mis à jour.
- Vous pouvez configurer l'intégration de Microsoft Entra ID à Cloud SQL pour SQL Server à l'aide de gcloud CLI ou de l'API Cloud SQL Admin. L'intégration ne peut pas être gérée à l'aide de Terraform.
Étapes suivantes
- En savoir plus sur Microsoft Entra ID