Autenticación de la base de datos de IAM de Cloud SQL

En esta página, se describe cómo funciona la autenticación de la base de datos de IAM en instancias de Cloud SQL y cómo afecta la creación de usuarios y cuentas de servicio, y los accesos desde esas cuentas.

Introducción

Cloud SQL está integrado a Identity and Access Management (IAM) para ayudarte a administrar mejor el acceso de los usuarios y las cuentas de servicio a las bases de datos. Esta característica se llama autenticación de base de datos de IAM.

La autenticación es el proceso de verificar la identidad de un usuario que intenta acceder a una instancia. Cloud SQL usa los siguientes tipos de autenticación para los usuarios de bases de datos:

  • La autenticación integrada de la base de datos, que usa un nombre de usuario y una contraseña para autenticar a un usuario de la base de datos
  • La autenticación de la base de datos de IAM usa IAM para autenticar a un usuario mediante un token de acceso.

Autenticación de IAM para Cloud SQL

Cuando se usa la autenticación de IAM, el permiso para acceder a un recurso (una instancia de Cloud SQL) no se otorga directamente al usuario final. En su lugar, los permisos se agrupan en funciones, y las funciones se otorgan a los miembros o grupos. Para obtener más información, consulta la descripción general de IAM.

Los administradores que tienen usuarios que acceden a través de la autenticación de la base de datos de IAM pueden usar IAM para administrar de forma centralizada el control de acceso a sus instancias con políticas de IAM. Las políticas de IAM involucran las siguientes entidades:

  • Miembros. En Cloud SQL, puedes usar dos tipos de miembros: una cuenta de usuario y una cuenta de servicio (para aplicaciones). Otros tipos de miembros, como los grupos de Google, los dominios de G Suite o los dominios de Cloud Identity, no son compatibles con la autenticación de la base de datos de IAM. Si quieres obtener más información, consulta Conceptos relacionados con la identidad.
  • Funciones. Para la autenticación de la base de datos de IAM, un usuario necesita el permiso cloudsql.instances.login a fin de acceder a una instancia. Para obtener este permiso, debes vincular la cuenta de servicio o usuario a la función predefinida Usuario de instancias de Cloud SQL o a una función personalizada que agrupe el permiso. Para obtener más información sobre las funciones de IAM, consulta Funciones.
  • Recurso. Los recursos a los que acceden los miembros son instancias de Cloud SQL. De forma predeterminada, las vinculaciones de políticas de IAM se aplican a nivel de proyecto, de modo que los miembros reciban permisos de función para todas las instancias de Cloud SQL en el proyecto.

Opciones de autenticación de la base de datos de IAM

Cloud SQL para MySQL admite la autenticación manual de la base de datos de IAM.

Autenticación manual de la base de datos de IAM

La autenticación manual de la base de datos de IAM requiere que el miembro de IAM pase de forma explícita el token de acceso para el atributo de contraseña en la solicitud de conexión del cliente. Los miembros primero deben acceder a Google Cloud y solicitar de forma explícita el token de acceso a IAM.

Con el SDK de Cloud, puedes solicitar de forma explícita un token de OAuth 2.0 con el permiso de la API de Cloud SQL que se usa para acceder a la base de datos a través del cliente . Cuando accedes como un usuario de la base de datos con la autenticación de la base de datos de IAM, usas tu dirección de correo electrónico como nombre de usuario y el token de acceso como contraseña. Puedes usar este método con una conexión directa a la base de datos o con un conector de Cloud SQL.

El acceso con la autenticación de la base de datos de IAM solo se puede realizar a través de una conexión SSL.

Para obtener más información, consulta Accede con la autenticación de la base de datos de IAM.

Administración de usuarios y cuentas de servicio

Para proporcionar a los usuarios y a las cuentas de servicio acceso a las bases de datos de una instancia con la autenticación de la base de datos de IAM, debes agregarlas a la instancia. Para obtener más información, consulta Agrega un usuario o una cuenta de servicio que use IAM.

Si usas Google Cloud Console para agregar usuarios o cuentas de servicio, Cloud SQL te pedirá que agregues la función “Usuario de Cloud SQL” al usuario. Esta función es necesaria para que los usuarios accedan a la instancia.

Después de agregar el usuario de IAM a la base de datos, debes otorgar privilegios de base de datos de forma manual. Usa el comando GRANT de MySQL para otorgar otros privilegios de base de datos.

Configuración de las instancias para la autenticación de la base de datos de IAM de Cloud SQL

Puedes habilitar la autenticación de la base de datos de IAM en una instancia mediante la marca cloudsql_iam_authentication. Una vez que habilitas esta marca, la instancia habilita los accesos desde las cuentas configuradas para la autenticación de la base de datos de IAM.

Establecer la marca no evita que los usuarios existentes que no sean de IAM usen sus nombres de usuario y contraseñas para acceder. Sin embargo, si inhabilitas esta marca en la instancia, cualquier usuario que hayas agregado previamente con la autenticación de la base de datos de IAM pierde acceso a la instancia. Si quieres obtener más información, consulta Configura instancias para la autenticación de la base de datos de IAM.

Autenticación de la base de datos de IAM de Cloud SQL para diferentes situaciones de instancias

Réplicas de lectura La autenticación de la base de datos de IAM no está habilitada en una réplica de lectura de forma automática, incluso cuando está habilitada en la instancia principal. Después de crear una réplica de lectura, debes agregar la autenticación de la base de datos de IAM. Si deseas obtener más información, consulta Configura los accesos de réplica de lectura para la autenticación de la base de datos de IAM.
Instancias restauradas Si antes se creó una copia de seguridad de una instancia y, luego, se restableció a la misma instancia o a una diferente en el mismo proyecto, se aplican las autorizaciones vigentes de acceso de usuarios. Si restableces una copia de seguridad en una instancia nueva en otro proyecto, debes configurar las autorizaciones de usuarios para la instancia nueva. Para obtener más información, consulta Agrega un usuario o una cuenta de servicio que use la autenticación de la base de datos de IAM.

Trabaja con registros de auditoría de Cloud

Para mantener registros de acceso a los datos, incluidos los accesos, puedes usar registros de auditoría. Los registros de auditoría de Cloud están desactivados de forma predeterminada. Debes activar los registros de auditoría de acceso a los datos para el seguimiento del acceso. Usar los registros de auditoría para este propósito genera costos por el registro de datos. Para obtener más información, consulta Registros de auditoría, Configura registros de auditoría de acceso a los datos y Precios del registro de datos.

Restricciones

  1. Por seguridad, los accesos que usan la autenticación de la base de datos de IAM solo están disponibles en una conexión SSL. Se rechazan las conexiones no encriptadas.
  2. Hay una cuota de acceso por minuto para cada instancia, que incluye accesos exitosos y no exitosos. Cuando se supera la cuota, los accesos no están disponibles por el momento. Recomendamos que evites accesos frecuentes y que restrinjas los accesos mediante las redes autorizadas. Nota: La cuota de autorización de accesos es de 3000 por minuto y por instancia.
  3. La autenticación de la base de datos de IAM no es compatible con las instancias que usan MySQL 5.6.

¿Qué sigue?