Integración con Microsoft Entra ID

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:

  1. 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.

  2. 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:

    1. Busca tu ID de cliente de Microsoft Entra.
    2. 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.

    3. Concede permisos a la aplicación para leer datos del directorio:

      1. Seleccione el registro de la aplicación que acaba de crear y, a continuación, haga clic en Permisos de API.
      2. Selecciona Añadir un permiso > Microsoft Graph > Permisos de aplicación.
      3. 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
      4. 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:

  1. Crea una instancia habilitada para PSC.
  2. Configura la conectividad saliente de tu instancia de Cloud SQL.
  3. 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:

  1. 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 MASQUERADE
    
  2. Configura 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.ServiceEndpoint del 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_NAME y VM_ZONE por 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_VALUE
    

    Haz 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-ilb en 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-ilb1
    
  3. Usa 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.

  1. 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_NAME
    

    Haz 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"
    }
    
  2. 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\Line3
    

    Debes separar manualmente cada línea, como se muestra a continuación:

    Line1
    Line2
    Line3
    

    Si 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\Line3
    

    Debes separar manualmente cada línea, como se muestra a continuación:

    Line1
    Line2
    Line3
    

    Si 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.
  3. Añade tu certificado al portal de Azure.

    1. Ve a Registro de aplicaciones en el portal de Azure.
    2. Abre Certificados y secretos.
    3. Selecciona Subir certificado. Busca el archivo de certificado que has obtenido de tu instancia y añádelo.
    4. 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:

  1. 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.

  2. 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_NAME
    

    Haz 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.

  3. 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.

  1. 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_USER
    

    Haz 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_USER
    

    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 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.

  2. 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 CustomerDbRootRole
    

    Sustituye 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 PROVIDER
    

    Sustituye 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:

  1. 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.

  2. 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:

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.

Siguientes pasos