La integración de Cloud SQL para SQL Server con Microsoft Entra ID proporciona una gestión de identidades y accesos (IAM) centralizada para tus bases de datos mediante tu cliente de Microsoft Entra ID.
Esta integración ofrece las siguientes ventajas:
Autenticación centralizada. Permite que los usuarios y las aplicaciones inicien sesión en sus instancias de Cloud SQL para SQL Server con sus identidades de Microsoft Entra ID sin tener que volver a introducir una contraseña. Esta función elimina la necesidad de gestionar inicios de sesión y contraseñas específicos de SQL Server.
Seguridad mejorada. Te ayuda a aplicar las políticas de seguridad de tu organización, como la autenticación multifactor (MFA) y las reglas de acceso condicional (CA), a nivel de base de datos.
Gestión de usuarios simplificada. Cuando se inhabilita o se elimina la cuenta de Microsoft Entra ID de un usuario, se revoca automáticamente el acceso del usuario a la base de datos. Esta función ayuda a simplificar la baja de empleados y las revisiones de acceso.
Requisitos previos para la integración
Para usar la integración de Cloud SQL para SQL Server con Microsoft Entra ID, tu instancia debe cumplir los siguientes requisitos:
Debes tener una instancia de SQL Server 2022 o crear una.
La autenticación de Microsoft Entra ID solo se admite en SQL Server 2022. No está disponible en SQL Server 2017 ni en SQL Server 2019.
Habilita la autenticación de Microsoft Entra ID.
Antes de habilitar la autenticación de Microsoft Entra ID, sigue estos pasos en el portal de Azure:
- Busca tu ID de cliente de Microsoft Entra.
Crea un registro de aplicación en Microsoft Entra ID.
Cloud SQL para SQL Server usa esta aplicación para comunicarse con tu ID de tenant de Microsoft Entra. Cuando crees la aplicación, anota el ID de aplicación o de cliente.
Concede permisos a la aplicación para leer datos del directorio:
- Seleccione el registro de la aplicación que acaba de crear y, a continuación, haga clic en Permisos de API.
- Selecciona Añadir un permiso > Microsoft Graph > Permisos de aplicación.
- Concede uno de los siguientes conjuntos de permisos:
- Opción 1.
- Directory.Read.All
- Opción 2. Proporciona permisos más específicos.
- Application.Read.All
- Group.Read.All
- User.Read.All
- Opción 1.
- Concede el consentimiento de administrador a todo el cliente para permitir que la aplicación use estos permisos.
Conectividad de red
Microsoft Entra ID es un servicio público que usa endpoints públicos para la autenticación. Para que la autenticación de Microsoft Entra ID funcione correctamente, tu instancia de Cloud SQL debe poder establecer conexiones salientes con estos endpoints públicos. En las siguientes secciones se describen los pasos que debe seguir en función de la configuración de conectividad de red de su instancia:
Instancias con una IP pública
Si tu instancia de Cloud SQL está configurada con una dirección IP pública, tiene acceso saliente a Internet integrado.
Aunque no se necesita ninguna configuración de red adicional para que funcione la autenticación de Microsoft Entra ID, consulta las limitaciones antes de continuar.
Instancias con una IP privada
Si tu instancia de Cloud SQL solo tiene configurada una dirección IP privada, no tendrá acceso directo a Internet. Debes configurar una ruta de salida para permitir que la instancia llegue a los endpoints de identidad públicos de Microsoft. La configuración de la integración de Microsoft Entra ID depende de cómo esté configurada tu instancia privada:
Private Service Connect
Si tu instancia de Cloud SQL está configurada para usar una dirección IP privada, te recomendamos que uses Private Service Connect para habilitar Microsoft Entra ID, ya que elimina ciertas tareas de mantenimiento, como las siguientes:
- Gestionar máquinas virtuales de bastion host.
- Mantener las rutas.
- Crear rutas demasiado amplias, como las que se necesitan para la conectividad de PSA.
Antes de continuar, consulta las limitaciones de Microsoft Entra ID.
Para habilitar la conectividad, debes configurar Traducción de direcciones de red en la nube (Cloud NAT) en la VPC del consumidor. De esta forma, la instancia habilitada para PSC puede usar la pasarela Cloud NAT para el tráfico saliente a los endpoints públicos de Microsoft. Una vez habilitado, el enrutamiento interno restringe el tráfico para que solo el tráfico relacionado con el ID de Microsoft Entra llegue a tu instancia de Cloud NAT.
Para habilitar la conectividad, sigue estos pasos obligatorios:
- Crea una instancia habilitada para PSC.
- Configura la conectividad saliente de tu instancia de Cloud SQL.
- Crea una pasarela de Cloud NAT.
Acceso a servicios privados
Si tu instancia de Cloud SQL está configurada para usar una dirección IP privada y usas PSA, debes seguir estos pasos para habilitar la conectividad a Microsoft Entra ID:
Despliega una VM de pasarela de aplicaciones en tu VPC.
Cuando creas una VM de host bastion en tu proyecto, el reenvío de IP debe estar habilitado. Si has creado una VM de host bastion basada en Linux, configura la VM de host bastion que acabas de crear para que realice el reenvío de IP:
sudo sysctl net.ipv4.conf.all.forwarding=1 sudo iptables --table nat --append POSTROUTING --out-interface ens4 -j MASQUERADEConfigura las rutas de red necesarias para dirigir el tráfico de autenticación de Microsoft Entra ID desde tu instancia de Cloud SQL a Internet a través del host de la VM bastion host.
Añade las rutas correspondientes a cada endpoint de Microsoft Entra ID. Puedes consultar los intervalos de IP actuales en la sección
AzureActiveDirectory.ServiceEndpointdel archivo de recursos Intervalos de IP y etiquetas de servicio de Azure.gcloud
Crea dos rutas para cada intervalo de IPs de Microsoft Entra ID. Para ello, sustituye
VM_NAMEyVM_ZONEpor el nombre y la zona de tu máquina virtual host 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_VALUEHaz los cambios siguientes:
- PROJECT_ID: el ID del proyecto en el que reside tu instancia de Cloud SQL.
- NAME: el nombre de la ruta que quieras crear.
- NETWORK: el nombre de la red en la que reside tu instancia de Cloud SQL.
- RANGE: el intervalo de IPs que quieras usar.
- VM_NAME: el nombre de la VM de host bastion que quieras incluir.
- VM_ZONE: la zona de la VM del host bastion que quieras incluir, como
us-central1. ILB_VALUE: opcional. El nombre o la dirección IP de una regla de reenvío de un balanceador de carga TCP/UDP interno. Si has configurado un balanceador de carga delante de tus VMs de host bastion, debes incluir la marca
--next-hop-ilben este comando.Para obtener más información, consulta Balanceadores de carga de red de paso a través internos como siguientes saltos.
Por ejemplo, podría tener este aspecto:
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-ilb1Usa el mismo comando del paso anterior para aplicar la misma configuración y permitir el tráfico de las comprobaciones de revocación de certificados de Microsoft Entra ID. Usa los intervalos de IP que se indican en Dirección IP del estado del certificado de DigiCert.
Si no completas este paso, es posible que la autenticación de Microsoft Entra ID siga funcionando, pero también es posible que experimentes retrasos al abrir nuevas conexiones.
Gestionar la autenticación de Microsoft Entra ID
Puedes habilitar la autenticación de Entra ID en una instancia nueva o ya creada.
Crear una instancia con la autenticación de Microsoft Entra ID habilitada
Puedes habilitar la autenticación de Microsoft Entra ID al crear una instancia de Cloud SQL para SQL Server. Debe proporcionar el ID de cliente de Microsoft Entra y el ID de aplicación (ID de cliente) específicos del registro de aplicaciones que haya configurado en Azure Portal.
Para obtener más información, consulta los requisitos previos.
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
Haz los cambios siguientes:
- INSTANCE_NAME: el nombre de la instancia que quieres crear.
- EDITION: la edición de la instancia que quieras usar, como
SQLSERVER_2022_STANDARD. - TIER: el nivel de instancia o el tipo de máquina que quieras usar, como
db-custom-2-3840. - NETWORK: el nombre de la red que quieras usar.
- PASSWORD: la contraseña de la instancia.
- TENANT_ID: el ID de cliente de Microsoft Entra.
- APPLICATION_ID: el ID de la aplicación o del cliente.
Por ejemplo, podría tener este aspecto:
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
En la siguiente llamada básica a la API no se muestran todos los campos posibles. Para ver un prototipo de solicitud JSON, consulta Configuración.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el nombre del proyecto en el que se ubicará la instancia que quieras crear.
- INSTANCE_ID: el ID de la instancia que quieres crear.
- EDITION: la edición de la instancia que quieras usar, como
SQLSERVER_2022_STANDARD. - REGION: la región en la que quieres que se encuentre la instancia, como
us-central1. - PASSWORD: la contraseña de la instancia.
- TIER: el nivel de instancia o el tipo de máquina que quieras usar, como
db-custom-2-3840. - NETWORK: el nombre de la red que quieras usar.
- TENANT_ID: el ID de cliente de Microsoft Entra.
- APPLICATION_ID: el ID de la aplicación o del cliente.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
Cuerpo JSON de la solicitud:
{
"databaseVersion":"EDITION",
"name":"INSTANCE_ID",
"region":"REGION",
"rootPassword":"PASSWORD",
"settings":
{
"tier":"TIER",
"ipConfiguration":
{
"privateNetwork":"NETWORK"
},
"entraidConfig":
{
"tenantId": "TENANT_ID",
"applicationId": "APPLICATION_ID"
}
}
}
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{
"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
En la siguiente llamada básica a la API no se muestran todos los campos posibles. Para ver un prototipo de solicitud JSON, consulta Configuración.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el nombre del proyecto en el que se ubicará la instancia que quieras crear.
- INSTANCE_ID: el ID de la instancia que quieres crear.
- EDITION: la edición de la instancia que quieras usar, como
SQLSERVER_2022_STANDARD. - REGION: la región en la que quieres que se encuentre la instancia, como
us-central1. - PASSWORD: la contraseña de la instancia.
- TIER: el nivel de instancia o el tipo de máquina que quieras usar, como
db-custom-2-3840. - NETWORK: el nombre de la red que quieras usar.
- TENANT_ID: el ID de cliente de Microsoft Entra.
- APPLICATION_ID: el ID de la aplicación o del cliente.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances
Cuerpo JSON de la solicitud:
{
"databaseVersion":"EDITION",
"name":"INSTANCE_ID",
"region":"REGION",
"rootPassword":"PASSWORD",
"settings":
{
"tier":"TIER",
"ipConfiguration":
{
"privateNetwork":"NETWORK"
},
"entraidConfig":
{
"tenantId": "TENANT_ID",
"applicationId": "APPLICATION_ID"
}
}
}
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{
"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"
}
Gestionar la autenticación de Microsoft Entra ID en una instancia
Puedes habilitar, modificar o inhabilitar la configuración de Microsoft Entra ID en una instancia existente en cualquier momento.
Para modificar la configuración de tu instancia, debes aplicar un parche a la instancia con los valores nuevos o eliminados del ID de inquilino y del ID de aplicación (cliente).
Este proceso no implica unirse a un dominio ni dejar de pertenecer a él.
Puede actualizar los valores de ID de cliente e ID de aplicación sin habilitar ni inhabilitar la integración con 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"
Haz los cambios siguientes:
- INSTANCE_NAME: el nombre de la instancia que quieras modificar.
- NEW_TENANT_ID: el nuevo ID de cliente de Microsoft Entra. Para inhabilitar Microsoft Entra ID, deja esta cadena vacía.
- NEW_APPLICATION_ID: el nuevo ID de aplicación o de cliente. Para inhabilitar Microsoft Entra ID, deja esta cadena vacía.
Por ejemplo, podría tener este aspecto:
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
En la siguiente llamada básica a la API no se muestran todos los campos posibles. Para ver un prototipo de solicitud JSON, consulta Configuración.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID del proyecto en el que se encuentra la instancia que quieres modificar.
- INSTANCE_ID: el ID de la instancia que quieres modificar.
- TENANT_ID: el ID de cliente de Microsoft Entra. Para inhabilitar Microsoft Entra ID, deja esta cadena vacía.
- APPLICATION_ID: el ID de la aplicación o del cliente. Para inhabilitar Microsoft Entra ID, deja esta cadena vacía.
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
Cuerpo JSON de la solicitud:
{
"settings":
{
"entraidConfig":
{
"tenantId": "NEW_TENANT_ID",
"applicationId": "NEW_APPLICATION_ID"
}
}
}
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{
"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
En la siguiente llamada básica a la API no se muestran todos los campos posibles. Para ver un prototipo de solicitud JSON, consulta Configuración.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID del proyecto en el que se encuentra la instancia que quieres modificar.
- INSTANCE_ID: el ID de la instancia que quieres modificar.
- TENANT_ID: el ID de cliente de Microsoft Entra. Para inhabilitar Microsoft Entra ID, deja esta cadena vacía.
- APPLICATION_ID: el ID de la aplicación o del cliente. Para inhabilitar Microsoft Entra ID, deja esta cadena vacía.
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances
Cuerpo JSON de la solicitud:
{
"settings":
{
"entraidConfig":
{
"tenantId": "NEW_TENANT_ID",
"applicationId": "NEW_APPLICATION_ID"
}
}
}
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{
"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"
}
Añadir el certificado a la aplicación
Para que Microsoft Entra ID autentique tu instancia de Cloud SQL para SQL Server, debes subir el certificado público de la instancia de Cloud SQL para SQL Server a tu registro de aplicación de Microsoft Entra ID.
Después de habilitar la autenticación de Microsoft Entra ID en tu instancia, crea un certificado específico de la instancia para Microsoft Entra ID.
gcloud
gcloud beta sql ssl entraid-certs create --instance=INSTANCE_NAMEHaz los cambios siguientes:
- INSTANCE_NAME: el nombre de la instancia para la que quieres crear un certificado.
REST v1
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID del proyecto en el que se encuentra tu instancia.
- INSTANCE_ID: el ID de la instancia.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/addEntraIdCertificate
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID del proyecto en el que se encuentra tu instancia.
- INSTANCE_ID: el ID de la instancia.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/addEntraIdCertificate
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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" }Obtén los detalles del certificado que acabas de crear recuperando los detalles de la instancia:
gcloud
gcloud beta sql ssl entraid-certs list --instance=INSTANCE_NAME --format="value(ssl_cert.cert)"Haz los cambios siguientes:
- INSTANCE_NAME: el nombre de la instancia asociada al certificado que acabas de crear.
REST v1
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID del proyecto en el que se encuentra tu instancia.
- INSTANCE_ID: el ID de la instancia.
Método HTTP y URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/listEntraIdCertificates
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir un código de estado que indique que la operación se ha realizado correctamente (2xx) y una respuesta vacía.
Este comando imprime un certificado que puedes guardar en un archivo y, más adelante, subir al portal de Azure.
Debes eliminar todos los caracteres de salto de línea insertados del archivo y separar manualmente cada línea nueva. Si no lo hace, la subida del archivo fallará.
Por ejemplo, puedes recibir una cadena de texto similar a la siguiente:
Line1\Line2\Line3Debes separar manualmente cada línea, como se muestra a continuación:
Line1 Line2 Line3Si no quieres realizar esta tarea manualmente, puedes usar el siguiente comando:
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'Haz los cambios siguientes:
- PROJECT_ID: el ID del proyecto en el que se encuentra tu instancia.
- INSTANCE_NAME: el nombre de la instancia asociada al certificado que acabas de crear.
REST v1beta4
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID del proyecto en el que se encuentra tu instancia.
- INSTANCE_ID: el ID de la instancia.
Método HTTP y URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/listEntraIdCertificates
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir un código de estado que indique que la operación se ha realizado correctamente (2xx) y una respuesta vacía.
Este comando imprime un certificado que puedes guardar en un archivo y, más adelante, subir al portal de Azure.
Debes eliminar todos los caracteres de salto de línea insertados del archivo y separar manualmente cada línea nueva. Si no lo hace, la subida del archivo fallará.
Por ejemplo, puedes recibir una cadena de texto similar a la siguiente:
Line1\Line2\Line3Debes separar manualmente cada línea, como se muestra a continuación:
Line1 Line2 Line3Si no quieres realizar esta tarea manualmente, puedes usar el siguiente comando:
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'Haz los cambios siguientes:
- PROJECT_ID: el ID del proyecto en el que se encuentra tu instancia.
- INSTANCE_NAME: el nombre de la instancia asociada al certificado que acabas de crear.
Añade tu certificado al portal de Azure.
- Ve a Registro de aplicaciones en el portal de Azure.
- Abre Certificados y secretos.
- Selecciona Subir certificado. Busca el archivo de certificado que has obtenido de tu instancia y añádelo.
- Haz clic en Aceptar.
Rotar el certificado de Microsoft Entra ID
Debes rotar el certificado de Microsoft Entra ID antes de que caduque. Te recomendamos que inicies este proceso al menos una semana antes de la fecha de vencimiento programada:
Sigue los pasos que se indican en Añadir el certificado a la aplicación para crear un certificado nuevo e inactivo en tu instancia de Cloud SQL para SQL Server y, a continuación, súbelo a Microsoft Entra ID mediante el portal de Azure. Esto no afecta al certificado activo actual.
Activa el nuevo certificado en la instancia de Cloud SQL para SQL Server, lo que hará que Cloud SQL para SQL Server empiece a usar el nuevo certificado para todas las autenticaciones nuevas.
gcloud
gcloud beta sql ssl entraid-certs rotate --instance=INSTANCE_NAMEHaz los cambios siguientes:
- INSTANCE_NAME: el nombre de la instancia asociada al certificado que quieras rotar.
REST v1
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID del proyecto en el que se encuentra tu instancia.
- INSTANCE_ID: el ID de la instancia.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/rotateEntraIdCertificate
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir un código de estado que indique que la operación se ha realizado correctamente (2xx) y una respuesta vacía.
REST v1beta4
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID del proyecto en el que se encuentra tu instancia.
- INSTANCE_ID: el ID de la instancia.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/rotateEntraIdCertificate
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir un código de estado que indique que la operación se ha realizado correctamente (2xx) y una respuesta vacía.
Tu instancia ahora usa el nuevo certificado.
Puedes quitar el certificado antiguo de forma segura de tu registro de aplicación de Microsoft Entra ID y de la instancia de Cloud SQL para SQL Server. Para obtener más información, consulta el artículo Añadir y gestionar credenciales de aplicaciones en Microsoft Entra ID.
Restaurar el certificado de Microsoft Entra ID
Si tienes problemas después de cambiar a un nuevo certificado, puedes volver al certificado anterior.
Para realizar una reversión, el certificado anterior debe seguir siendo válido y tu registro de aplicación de Microsoft Entra ID debe seguir confiando en él.
Los siguientes comandos reactivan inmediatamente el certificado anterior especificado en tu instancia de Cloud SQL para SQL Server.
gcloud
gcloud beta sql ssl entraid-certs rollback --instance=INSTANCE_NAME
Haz los cambios siguientes:
- INSTANCE_NAME: el nombre de la instancia asociada al certificado al que quieras volver.
REST v1
En la siguiente llamada básica a la API no se muestran todos los campos posibles. Para ver un prototipo de solicitud JSON, consulta Configuración.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID del proyecto en el que se encuentra la instancia.
- INSTANCE_ID: el ID de la instancia para la que quieres restaurar el certificado.
- CERTIFICATE_NAME: el nombre del nuevo certificado que quieras usar
para sustituir el antiguo, como
sha1Fingerprint.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/rollbackEntraIdCertificate
Cuerpo JSON de la solicitud:
{
{
"RotateEntraIdCertificateContext": {"nextVersion": "CERTIFICATE_NAME"}
}
}
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{
"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
En la siguiente llamada básica a la API no se muestran todos los campos posibles. Para ver un prototipo de solicitud JSON, consulta Configuración.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID del proyecto en el que se encuentra la instancia.
- INSTANCE_ID: el ID de la instancia para la que quieres restaurar el certificado.
- CERTIFICATE_NAME: el nombre del nuevo certificado que quieras usar
para sustituir el antiguo, como
sha1Fingerprint.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/rollbackEntraIdCertificate
Cuerpo JSON de la solicitud:
{
{
"RotateEntraIdCertificateContext": {"nextVersion": "CERTIFICATE_NAME"}
}
}
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{
"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"
}
Crear el inicio de sesión inicial de Microsoft Entra ID
Después de habilitar la autenticación de Microsoft Entra ID en la instancia, debes crear tus inicios de sesión de Microsoft Entra ID.
Crea el primer inicio de sesión de Microsoft Entra ID.
Este inicio de sesión inicial, que representa un usuario o un grupo de Microsoft Entra ID, no se puede crear con T-SQL. Debes crearla con la CLI de gcloud o con la API Admin de Cloud SQL:
gcloud
gcloud sql users create USER_NAME --instance=INSTANCE_NAME --type=ENTRAID_USERHaz los cambios siguientes:
- USER_NAME: el nombre del usuario de Cloud SQL para SQL Server que quieres crear.
- INSTANCE_NAME: el nombre de la instancia para la que quieras crear inicios de sesión de Microsoft Entra ID.
- ENTRAID_USER: el nombre de usuario de Microsoft Entra ID.
Por ejemplo, podría tener este aspecto:
gcloud sql users create myentraiduser@mytenant.com --instance=my-entraid-instance --type=ENTRAID_USERREST v1
En la siguiente llamada básica a la API no se muestran todos los campos posibles. Para ver un prototipo de solicitud JSON, consulta Configuración.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID del proyecto en el que se encuentra la instancia.
- INSTANCE_ID: el ID de la instancia que quieres actualizar.
- USER_NAME: el nombre del usuario de Cloud SQL para SQL Server que quieres crear.
- ENTRAID_USER: el nombre de usuario de Microsoft Entra ID.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users
Cuerpo JSON de la solicitud:
{ "name": "USER_NAME" "type": "ENTRAID_USER" }Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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
En la siguiente llamada básica a la API no se muestran todos los campos posibles. Para ver un prototipo de solicitud JSON, consulta Configuración.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID del proyecto en el que se encuentra la instancia.
- INSTANCE_ID: el ID de la instancia que quieres actualizar.
- USER_NAME: el nombre del usuario de Cloud SQL para SQL Server que quieres crear.
- ENTRAID_USER: el nombre de usuario de Microsoft Entra ID.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users
Cuerpo JSON de la solicitud:
{ "name": "USER_NAME" "type": "ENTRAID_USER" }Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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" }Una vez que se haya creado el inicio de sesión inicial de Microsoft Entra ID, podrás conectarte a la base de datos como ese usuario.
Crea inicios de sesión posteriores en Microsoft Entra ID.
Puede crear y gestionar inicios de sesión adicionales de Microsoft Entra ID, tal como se indica en el paso anterior.
Si prefieres usar otra herramienta, como SQL Server Management Studio (SSMS), primero debes conceder al inicio de sesión inicial el permiso para gestionar otros inicios de sesión:
GRANT ALTER ANY LOGIN TO [ENTRA_ID_USER] AS CustomerDbRootRoleSustituye ENTRAID_USER por el nombre de usuario de Microsoft Entra ID.
Una vez que se hayan concedido los permisos, este inicio de sesión podrá crear y gestionar otros inicios de sesión de Microsoft Entra ID mediante comandos T-SQL estándar. Un comando de ejemplo podría ser similar al siguiente:
CREATE LOGIN [<<ENTRA_ID_USER>>] FROM EXTERNAL PROVIDERSustituye ENTRAID_USER por el nombre de usuario de Microsoft Entra ID.
Para crear usuarios basados en inicios de sesión de Microsoft Entra ID o para conceder permisos, usa comandos T-SQL estándar.
Para obtener más información, incluido cómo crear un inicio de sesión con la sintaxis adecuada, consulta Configurar la autenticación de Microsoft Entra para SQL Server con el registro de aplicaciones.
Prácticas recomendadas
Para aislar los permisos y definir mejor los límites de seguridad, te recomendamos que crees un registro de aplicación de Microsoft Entra ID único para cada instancia de Cloud SQL para SQL Server. Revocar las credenciales de la aplicación no afectará a otras instancias no relacionadas.
Para obtener más información, consulta el artículo Cómo registrar una aplicación en Microsoft Entra ID.
Solución de problemas
En las siguientes secciones se explica cómo solucionar los problemas que pueden surgir al gestionar la integración de Microsoft Entra ID.
Problemas de conectividad de red con instancias de IP privada
Puede que tengas algunos de los siguientes problemas durante la configuración de la integración:
- Operaciones lentas para crear inicios de sesión de Microsoft Entra ID
- No se pueden crear inicios de sesión de Microsoft Entra ID
- No se puede conectar a la instancia mediante la autenticación de Microsoft Entra ID
Para solucionar estos problemas, realiza la siguiente prueba de conectividad:
En el mismo Google Cloud proyecto y VPC, y en la misma región que tu instancia de Cloud SQL para SQL Server, crea una VM de prueba configurada solo con una IP privada.
Conéctate a la VM que acabas de crear mediante el protocolo de escritorio remoto (RDP) o el protocolo Secure Shell (SSH). A continuación, ejecuta los siguientes comandos para probar la accesibilidad. Estos pasos se pueden aplicar tanto a las máquinas virtuales basadas en Linux como a las basadas en Windows:
curl -4iv login.microsoftonline.com curl -4iv graph.microsoft.com curl -4iv ocsp.digicert.com
Si no puedes acceder a ninguno de estos endpoints, ya sea por tiempos de espera o por errores de conexión rechazada, comprueba la configuración de tu red para ver si se da alguna de las siguientes situaciones:
- En el caso de Private Service Connect, asegúrate de que Cloud NAT esté configurado correctamente para permitir el acceso saliente a Internet.
- En el caso del acceso privado a servicios, verifica la configuración de tus rutas personalizadas y hosts bastion.
- Comprueba las reglas de cortafuegos de tu VPC para asegurarte de que no se bloquee el tráfico saliente a estos dominios.
Mensajes de error habituales
Puede que se produzca el siguiente error de inicio de sesión durante la autenticación de Microsoft Entra ID:
Login failed for user ""
Para resolver este problema, asegúrese de que existe un inicio de sesión de SQL Server para este usuario de Microsoft Entra ID.
Migración desde Microsoft Active Directory
En los siguientes casos, puedes habilitar la autenticación de Microsoft Entra ID sin inhabilitar la autenticación de Microsoft Active Directory:
- Realizar una migración por fases. Transferir la autoridad de autenticación de Microsoft Active Directory a Microsoft Entra ID mediante Active Directory gestionado por el cliente (CMAD) o el Servicio gestionado de Microsoft Active Directory.
- Usar un entorno híbrido. Mantener habilitados Microsoft Active Directory y Microsoft Entra ID al mismo tiempo.
Réplicas de lectura
- Si añades una réplica de lectura a una instancia principal que tenga habilitado Microsoft Entra ID, la réplica de lectura se configurará automáticamente para usar Microsoft Entra ID.
- Si la instancia principal tiene habilitado Microsoft Entra ID y restauras una copia de seguridad en esa instancia, su réplica de lectura asociada se configurará automáticamente para usar Microsoft Entra, ya que la identidad no cambia.
Instancias clonadas y restauración en otra instancia
La integración de Microsoft Entra ID no se configura automáticamente en la nueva instancia en los siguientes casos:
- Un clon de la instancia principal.
- Una copia de seguridad restaurada en una instancia que no es la principal.
En estos casos, debes habilitar manualmente Microsoft Entra ID en la nueva instancia y, a continuación, volver a subir su certificado a la aplicación de Microsoft Entra ID. Este requisito es una medida de seguridad para evitar que varias instancias no relacionadas usen la misma identidad de aplicación.
Limitaciones
- La autenticación de Microsoft Entra ID solo se admite en SQL Server 2022. No está disponible en SQL Server 2017 ni en SQL Server 2019.
- Si clonas una instancia o restauras una copia de seguridad en otra instancia, la integración de Microsoft Entra ID no se configurará automáticamente en la nueva instancia. Para obtener más información, consulta Copia de seguridad y recuperación.
- La autenticación de Microsoft Entra ID no se admite en las instancias de alta disponibilidad configuradas con una IP pública.
- La autenticación de Microsoft Entra ID no se admite en las instancias principales con PSC ni en sus instancias de réplica de lectura correspondientes.
- No rote los certificados de Microsoft Entra ID en las instancias principales que tengan réplicas asociadas. Si rotas el certificado de la instancia principal, los certificados de la réplica no se actualizarán.
- La integración de Microsoft Entra ID con Cloud SQL para SQL Server se puede configurar mediante la CLI de gcloud o la API Cloud SQL Admin. La integración no se puede gestionar con Terraform.