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 un sistema. Cloud SQL realiza la autenticación cuando un usuario o una cuenta de servicio envía sus credenciales a la base de datos.

Cloud SQL usa dos 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, que usa IAM y tokens de acceso para autenticar un usuario de la base de datos.

Autenticación de IAM

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

Administración de usuarios y cuentas de servicio

Para otorgar acceso a las bases de datos en una instancia mediante la autenticación de la base de datos de IAM a las cuentas de servicio y los usuarios, debes hacer lo siguiente:

  1. Agrega un usuario o una cuenta de servicio que use IAM a la instancia.
  2. Usa el comando GRANT de PostgreSQL para otorgar 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 usuario 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.

Accesos a Cloud SQL para las cuentas de servicio y los usuarios

Cuando un usuario desea acceder a una base de datos mediante la autenticación de la base de datos de IAM de Cloud SQL, debes hacer lo siguiente:

  1. Autentica en IAM:
  2. Genera un token de acceso mediante gcloud auth print-access-token..
  3. Proporciona el token de acceso como una contraseña cuando accedas a la base de datos.

El token de acceso representa la credencial de usuario de IAM de la cuenta y prueba la identidad del usuario. Cloud SQL usa el token para autenticar y autorizar al usuario antes de permitirle que acceda. El token es válido durante una hora.

Para obtener más información, consulta Accede con la autenticación de la base de datos de IAM sin el proxy de autenticación de Cloud SQL.

Como alternativa, los usuarios pueden usar el proxy de autenticación de Cloud SQL, que solicita el token de acceso y lo pasa a la base de datos de forma automática en nombre del usuario. Para obtener más información, consulta Accede con la autenticación de la base de datos de IAM mediante el proxy de autenticación de Cloud SQL.

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.

¿Qué sigue?