Usar Microsoft AD administrado con Cloud SQL

En esta página, se describen las formas de usar Cloud SQL para las siguientes acciones:

  • Integrar con el Servicio administrado para Microsoft Active Directory (también llamado Microsoft AD administrado)
  • Conectarse a una instancia con un usuario de AD

Una instancia de Cloud SQL integrada en Microsoft AD administrado admite la autenticación de Windows, además de la autenticación de SQL.

Antes de comenzar

  1. En Google Cloud Console, selecciona el nombre de tu proyecto.
  2. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud. Obtén información sobre cómo confirmar que tienes habilitada la facturación para tu proyecto.
  3. Instala e inicializa el SDK de Cloud.
  4. Asegúrate de tener la función de administrador de Cloud SQL en tu cuenta de usuario. Ve a la página IAM
  5. Revisa los requisitos previos para la integración.

Crea una instancia con autenticación de Windows

Puedes realizar la integración con Microsoft AD administrado durante la creación de instancias, lo que habilita la autenticación de Windows para la instancia. Para integrar, elige un dominio a fin de que la instancia se una. Si se une a un dominio, la creación de instancias falla.

A fin de prepararte para crear una instancia con autenticación de Windows, revisa las sugerencias y las limitaciones y alternativas.

Las siguientes son las opciones para crear una instancia que está integrada con Microsoft AD administrado.

Console

  1. Ve a la página Instancias de Cloud SQL en Google Cloud Console.
  2. Haga clic en Crear instancia.
  3. Haz clic en Elegir SQL Server.
  4. Ingresa un nombre para la instancia. No incluyas información sensible ni información de identificación personal en el nombre de la instancia, ya que es visible a nivel externo. No debes incluir el ID del proyecto en el nombre de la instancia. Este se creará de forma automática cuando corresponda (por ejemplo, en los archivos de registro).
  5. Ingresa la contraseña para el usuario 'sqlserver'.
  6. Configura la región de tu instancia. Consulta Recomendaciones para la integración con Microsoft AD administrado.
  7. En Opciones de configuración, configura tus opciones deseadas (pero espera hasta el siguiente paso para las opciones de autenticación).
  8. Haga clic en Autenticación. El menú desplegable para unirse a un dominio de Active Directory administrado muestra cualquier dominio de Microsoft AD administrado que se haya agregado previamente en tu proyecto.
  9. En el menú desplegable para unirte a un dominio administrado de Active Directory, selecciona un dominio.
  10. Cuando termines de seleccionar las opciones de configuración, haz clic en Crear. Cloud SQL crea de forma automática una cuenta de servicio por proyecto y por producto. Si la cuenta no tiene la función apropiada, se te pedirá que otorgues la función managedidentities.sqlintegrator.

gcloud

El siguiente comando crea una instancia que está integrada con Microsoft AD administrado y, por lo tanto, está habilitada para la autenticación de Windows. Si quieres obtener información sobre el comando básico para crear una instancia, consulta Crea instancias.

Especifica un parámetro de --active-directory-domain=[DOMAIN] en el comando de gcloud. Por ejemplo, especifica lo siguiente: --active-directory-domain=ad.mydomain.com

Este es un prototipo del comando de gcloud:

gcloud beta sql instances create [INSTANCE_NAME] \
--database-version=[EDITION] \
--root-password=[PASSWORD] \
--active-directory-domain=[DOMAIN] \
--cpu=[CPU] \
--memory=[MEMORY]  \
--network=[NETWORK]

REST

Con la API de REST, puedes crear una instancia que esté integrada con Microsoft AD administrado. Especifica un dominio, como subdomain.mydomain.com, para el campo domain, como se muestra en este prototipo de una solicitud:

{
   "databaseVersion":"database-version",
   "name":"instance-id",
   "region":"region",
   "rootPassword":"password",
   "settings":{
      "tier":"machine-type",
      "ipConfiguration":{
         "privateNetwork":"network"
      },
      "activeDirectoryConfig":{
         "domain":"domain"
      }
   }
}

Actualiza una instancia con autenticación de Windows

Puedes actualizar el dominio de una instancia existente, cambiar o agregar un dominio.

Para obtener información general sobre la actualización de una instancia, consulta Edita instancias.

Si una instancia se une con un dominio administrado de Active Directory, la instancia se une inicialmente del dominio, antes de unirse a este. Si la actualización falla, es posible que la instancia ya no se una a un dominio.

Console

  1. Ve a la página Instancias de Cloud SQL en Google Cloud Console.
  2. Selecciona una instancia que quieras editar. Para ello, haz clic en el nombre de la instancia.
  3. Haz clic en Edit.
  4. Haga clic en Autenticación. En el menú desplegable Unirse a un dominio de Active Directory, se muestra una lista de los dominios de Microsoft AD administrados que se crearon antes en tu proyecto.
  5. En el menú desplegable en el que puedes unirte a un dominio administrado de Active Directory, selecciona un dominio nuevo (reemplazo) para tu instancia.
  6. Haz clic en Guardar para aplicar los cambios.

gcloud

El siguiente es un prototipo de un comando para actualizar una instancia existente. El comando agrega o reemplaza un dominio. Pasa --active-directory-domain=[DOMAIN] al comando de la siguiente manera:

gcloud beta sql instances patch [INSTANCE_NAME] \
--active-directory-domain=[DOMAIN]

REST

Con la API de REST, puedes actualizar una instancia existente. Especifica un dominio, como subdomain.mydomain.com, en el campo domain. El siguiente es un prototipo de una solicitud:

{
   "settings":{
      "activeDirectoryConfig":{
         "domain":"domain"
      }
   }
}

Quita la autenticación de Windows de una instancia

Puedes quitar la autenticación de Windows y, por lo tanto, una integración administrada de Microsoft AD en una instancia existente.

Console

  1. Ve a la página Instancias de Cloud SQL en Google Cloud Console.
  2. Selecciona una instancia que quieras editar. Para ello, haz clic en el nombre de la instancia.
  3. Haz clic en Edit.
  4. Haga clic en Autenticación. El menú desplegable para unirse a un dominio administrado de Active Directory muestra una lista de los dominios administrados de Microsoft AD que se agregaron antes en tu proyecto.
  5. En el menú desplegable, selecciona No domain/Join Later para tu instancia.
  6. Lee el mensaje sobre el reinicio de la instancia y haz clic en Cerrar.
  7. Haz clic en Guardar para aplicar los cambios.

gcloud

Para quitar una instancia de un dominio y así quitar la autenticación de Windows, usa un valor en blanco para el dominio. Es decir, en tu comando usa un valor en blanco para el parámetro --active-directory-domain, de la siguiente manera:

    gcloud beta sql instances patch [INSTANCE_NAME] \
    --active-directory-domain=

REST

Con la API de REST, puedes quitar una instancia de un dominio. Especifica un valor en blanco en el campo domain, de la siguiente manera:

{
   "settings":{
      "activeDirectoryConfig":{
         "domain":""
      }
   }
}

Conéctate a una instancia con un usuario

En Cloud SQL para SQL Server, el usuario predeterminado es sqlserver.

Después de integrar una instancia con Microsoft AD administrado, puedes conectarte a la instancia con el usuario sqlserver, de la siguiente manera:

  1. Crea un acceso a SQL Server en función de un usuario o grupo de Windows, de la siguiente manera:

    CREATE LOGIN [domain\user_or_group] FROM WINDOWS
    
  2. Accede a la instancia con la autenticación de Windows, con el nombre DNS de la instancia. Estos son algunos ejemplos de nombres de DNS de instancia para especificar:

    • Para conectarte mediante una IP privada, sigue estos pasos:

      private.myinstance.us-central1.myproject.cloudsql.mydomain.com
      

    • Para conectarte mediante una IP pública, sigue estos pasos:

      public.myinstance.us-central1.myproject.cloudsql.mydomain.com
      

    • Para conectarte mediante el proxy de autenticación de Cloud SQL (también consulta a continuación):

      proxy.myinstance.us-central1.myproject.cloudsql.mydomain.com
      

    Si usas la dirección IP de la instancia, los clientes de Kerberos deben configurarse para admitir nombres de host IP. En los dominios conectados a través de una relación de confianza, no se admite el acceso con una dirección IP.

Usa el proxy de autenticación de Cloud SQL con la autenticación de Windows

Puedes usar el proxy de autenticación de Cloud SQL con la integración administrada de Microsoft AD.

Antes de comenzar, revisa:

Pasos para la autenticación de Windows

Para obtener más información sobre cómo iniciar el proxy de autenticación de Cloud SQL, consulta Inicia el proxy de autenticación de Cloud SQL.

Para la autenticación de Windows, el proxy de autenticación de Cloud SQL debe ejecutarse en el puerto 1433. Mapea una entrada de Nombre principal del servicio (SPN) predefinida a una dirección de proxy de autenticación de Cloud SQL:

proxy.[instance].[location].[project].cloudsql.[domain]

Ejecuta el proxy de autenticación de Cloud SQL de forma local

Si ejecutas el proxy de autenticación de Cloud SQL de manera local, usa tu archivo de hosts para asignar lo siguiente a 127.0.0.1:

proxy.[instance].[location].[project].cloudsql.[domain]

A modo de ejemplo, puedes agregar lo siguiente al archivo de hosts (por ejemplo, a c:\windows\system32\drivers\etc\hosts):

127.0.0.1 proxy.[instance].[location].[project].cloudsql.[domain]

En ese ejemplo, puedes ejecutar el proxy de autenticación de Cloud SQL con este comando y hacer que esté disponible en 127.0.0.1:1433:

cloud_sql_proxy_x64.exe -credential_file credential.json  -instances=project:name=tcp:1433

Ejecuta el proxy de autenticación de Cloud SQL de manera local

Para ejecutar el proxy de autenticación de Cloud SQL de manera local, sigue las instrucciones en Ejecuta el proxy de autenticación de Cloud SQL de manera local, pero usa una entrada diferente en el archivo de hosts.

En particular, si un host no local es, por ejemplo, MyOtherHost, puedes agregar lo siguiente al archivo de hosts:

127.0.0.1 MyOtherHost proxy.[instance].[location].[project].cloudsql.[domain]

Usuarios de AD locales: Cómo crear un acceso en Windows

Puedes usar un usuario de AD local con el fin de crear un acceso a Windows en Cloud SQL para SQL Server.

Por ejemplo, puedes conectarte con SQL Server Management Studio (SMSS), que se ejecuta en una VM de Windows alojada en la nube privada virtual (VPC) del proyecto de Google Cloud.

Para la autenticación de Windows en este contexto, Cloud SQL para SQL Server solo admite el protocolo Kerberos. Para la autenticación de Windows basada en Kerberos, el cliente debe resolver el nombre de DNS del AD local y el AD administrado de Microsoft.

Cómo configurar la confianza unidireccional o bidireccional

Inicialmente, decide si usarás una relación de confianza unidireccional o bidireccional.

Luego, sigue las instrucciones para establecer confianza entre el dominio de AD local y el dominio de Microsoft AD administrado.

Configure una VM de Windows y cree un acceso a Windows

Después de establecer la confianza entre el dominio de AD local y el dominio de Microsoft AD administrado, completa los siguientes pasos. Por ejemplo, en estos pasos se usa SQL Server Management Studio (SSMS) y se ejecuta en una VM de Windows alojada en la VPC de tu proyecto de Google Cloud:

  1. Crea una VM de Windows.
    • Crea una VM con una versión de Windows compatible con Microsoft AD administrado.
    • Crea la VM en el proyecto que aloja tu dominio de Microsoft AD administrado. Si hay una VPC compartida que sea una red autorizada, también puedes crear la VM en cualquiera de sus proyectos de servicio.
    • Crea la VM en una red de VPC que sea una red autorizada del dominio administrado de Microsoft AD y tenga configurado el acceso a servicios privados para Cloud SQL.
  2. Une la VM de Windows al dominio de Microsoft AD administrado.
  3. Instala SSMS en la VM de Windows.
  4. Resuelve el dominio local en la red de VPC.
    • En la red autorizada en la que se ejecuta la VM de Windows, habilita la resolución de DNS local mediante los pasos de la página Resuelve consultas para objetos de AD no administrados. Los pasos en esa página son requisitos previos para que la autenticación de Windows basada en Kerberos funcione para los usuarios locales.
  5. Crea un acceso a Windows para un usuario local.

    • Sigue las instrucciones CREATE LOGIN para crear un acceso de Windows para un usuario local. Por ejemplo, especifica un comando similar al siguiente:
    CREATE LOGIN [DOMAIN_NAME\USER_NAME] FROM WINDOWS
    
  6. Accede a tu instancia de Cloud SQL para SQL Server con las instrucciones específicas de la aplicación a fin de acceder a un usuario local. Por ejemplo, si usas SQL Server Management Studio, consulta estas instrucciones.

Si se produce un problema durante el acceso a una instancia de SQL Server, realiza las siguientes verificaciones:

  • Verifica las configuraciones del firewall de la red local y la VPC autorizada por el proyecto con las instrucciones para crear una relación de confianza con un dominio local.
  • Verifica el Enrutamiento de sufijo de nombre para la relación de confianza local.
  • Verifica que puedas realizar estas operaciones de resolución de DNS desde la VM de Windows que ejecuta SSMS:
    • nslookup fqdn-for-managed-ad-domain
    • nslookup fqdn-for-on-premises-ad-domain
    • nslookup fqdn-for-cloud-sql-server-instance

Sugerencias

  • Se admite una instancia con IP pública, siempre que también tenga una IP privada. La IP privada debe estar habilitada para la instancia. Luego, puedes usar una IP pública o privada para conectarte a la instancia, siempre que ambas estén disponibles.
  • Si recibes uno de los siguientes errores, confirma que cumples con todos los requisitos previos para la integración:
    • "No se encontró la cuenta de servicio por proyecto y por producto"
    • "Permiso insuficiente para integrarse con el servicio administrado para el dominio de Microsoft Active Directory"
  • Si recibes el error “Dominio no encontrado”, verifica que el nombre de dominio distinga entre mayúsculas y minúsculas.
  • Si Windows Authentication falla desde un dominio conectado a través de una relación de confianza, verifica que Windows Authentication funcione para un usuario desde un dominio administrado. En ese caso, haz lo siguiente:
    1. Verifica que usaste un nombre de DNS. Las direcciones IP no son compatibles con los dominios conectados mediante una relación de confianza.
    2. Asegúrate de haber seguido todos los pasos para crear una confianza con un dominio local, incluida la apertura de todos los puertos de firewall.
    3. Valida la confianza.
    4. Verifica que la dirección de la confianza permita a los usuarios del dominio (conectados a través de una relación de confianza) autenticarse en el dominio administrado.
    5. Verifica que el enrutamiento del sufijo de nombre se establezca en el dominio que se conecta mediante una relación de confianza.
    6. Verifica que la confianza funcione sin usar Cloud SQL para SQL Server:
      1. Crea una VM de Windows.
      2. Únete al dominio de Microsoft AD administrado.
      3. Intenta ejecutar, por ejemplo, Notepad como usuario del dominio que está conectado a través de una relación de confianza.
    7. Reinicia la VM de cliente y vuelve a probar la autenticación de Windows.
  • Puedes intentar crear un acceso a SQL Server, pero luego recibir el siguiente error: “Nodo de Windows NT o dominio de grupo\nno se encontró. Vuelve a verificar el nombre". Esto puede deberse a que no se admiten grupos locales de dominio. Si corresponde, usa grupos globales o universales.
  • Cuando un usuario lo emite desde un dominio conectado a través de una relación de confianza, las consultas de SQL Server pueden generar el siguiente error: "No se pudo obtener información sobre el grupo o usuario de Windows NT". Este error puede ocurrir, por ejemplo, si estás creando accesos desde dominios conectados a través de una relación de confianza. También puede ocurrir si estás otorgando privilegios para acceder a dominios desde dominios conectados a través de una relación de confianza. En estos casos, volver a intentar ejecutar la operación suele ser exitoso. Si vuelve a intentarlo, cierra la conexión y abre una nueva.
  • Si las consultas de SQL Server dan como resultado el error "El acceso es de un dominio no confiable", ten en cuenta que las direcciones IP no son compatibles con los usuarios de los dominios conectados a través de una relación de confianza. Además, las siguientes acciones pueden resolver este problema:
    • Si se usa una dirección IP para conectar a los usuarios desde un dominio administrado, sigue estas instrucciones.
    • Evita usar cualquier proxy y siempre usa el mismo nombre de DNS a fin de conectarte a Cloud SQL para SQL Server, como se ve en Google Cloud Console.
    • Borrar definitivamente los tickets de Kerberos existentes El error anterior puede ocurrir si tienes un cliente que se conectó recientemente a una instancia de SQL Server y se detuvo y se inició. De manera alternativa, el error puede ocurrir si la autenticación de Windows se inhabilitó y, luego, se volvió a habilitar para la instancia de SQL Server. Si el cliente usa la caché de credenciales de Windows, bloquea y desbloquea la estación de trabajo del cliente, o ejecuta klist purge.
  • Un intento de habilitar la autenticación de Windows puede generar el error “Esta instancia necesita una fecha más reciente de creación para admitir el Servicio administrado para Microsoft Active Directory”. Ten en cuenta lo siguiente:
    • En Cloud SQL, si se creó una instancia de SQL Server el 12 de marzo de 2021 o antes, no se puede integrar con Microsoft AD administrado.
  • Un intento de crear una instancia de SQL Server puede generar el error “Esta instancia no admite el Servicio administrado para Microsoft Active Directory”. Si recibes este error, es posible que el proyecto no sea compatible. Intenta utilizar otro.
  • Si una instancia tiene problemas en curso con la autenticación de Windows (ya sea que la instancia se haya actualizado o no recientemente), intenta unir el dominio de Active Directory administrado y, luego, volver a unirte. Para hacerlo, usa el procedimiento de actualización a fin de anular la unión y volver a unirte al dominio. Si lo haces, no se quitarán los usuarios que hayan accedido a Windows ni los accesos ya existentes de la base de datos. Quitar la autenticación de Windows hace que una instancia se reinicie.

Soluciona problemas

Haz clic en los vínculos de la tabla para obtener más información:

Para este error… El problema podría ser… Solución
Per-product, per-project service account not found. El nombre de la cuenta de servicio es incorrecto. En la página Cuentas de servicio, asegúrate de haber creado una cuenta de servicio para el proyecto de usuario correcto.
Insufficient permission to integrate with Managed Service for Microsoft Active Directory domain. Falta la función managedidentities.sqlintegrator en la cuenta de servicio. En la página IAM y administración, agrega la función managedidentities.sqlintegrator a tu cuenta de servicio.
Domain not found. El dominio no existe o está mal escrito. Asegúrate de que el nombre de dominio sea correcto y que exista en el mismo proyecto de usuario. Distingue mayúsculas de minúsculas.
The domain is busy with another operation. Please retry. Otra instancia de Cloud SQL ejecuta una operación en el mismo dominio de Active Directory administrado. Vuelve a intentar la operación. Si realizas un lote de actualizaciones en instancias de Cloud SQL conectadas al mismo dominio, limita cuántas se realizan en paralelo.
The operation completed but an update to Active Directory failed. You may experience issues with Windows Authentication on this instance, please see https://cloud.google.com/sql/docs/sqlserver/configure-ad for tips. No se pudieron realizar las actualizaciones requeridas en el dominio de Active Directory administrado. Si tienes problemas con Windows Authentication, puedes intentar unir el dominio de Active Directory administrado y, luego, volver a unirte. Para hacerlo, usa el procedimiento de actualización a fin de anular la unión y volver a unirte al dominio. Si lo haces, no se quitarán los usuarios que hayan accedido a Windows ni los accesos ya existentes de la base de datos. Quitar la autenticación de Windows hace que una instancia se reinicie.
This instance would need a more recent creation date to support Managed Service for Microsoft Active Directory. En Cloud SQL, si se creó una instancia de SQL Server el 12 de marzo de 2021 o antes, no se puede integrar con Microsoft AD administrado. Prueba la operación en una instancia creada después del 12 de marzo de 2021.

¿Qué sigue?

  • Confirma que revisaste por completo la página de descripción general, que incluye limitaciones y características no compatibles. Esa página también incluye vínculos a documentación adicional.