Descripción general de la 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.

Introducción

Cloud SQL está integrado a la IAM para ayudarte a supervisar y 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 un medio de control de acceso que verifica la identidad de un usuario. Para los usuarios finales, la autenticación se logra cuando el usuario ingresa credenciales (nombre de usuario y contraseña). Para las aplicaciones, la autenticación se logra cuando se asignan las credenciales de un usuario a una cuenta de servicio.

Diferencias entre la autenticación integrada y la autenticación de IAM

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 se autentica mediante un nombre de usuario y una contraseña
  • La autenticación de la base de datos de IAM, que usa IAM para autenticar a un usuario de la base de datos

En IAM, debes definir quién (identidad) tiene qué acceso (función) a qué recurso. 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 autenticados. Para obtener más información, consulta la descripción general de IAM.

Para la autenticación de la base de datos de IAM, debes trabajar de forma específica con lo siguiente:

  • Miembros. En Cloud SQL, puedes usar dos tipos de miembros de IAM: una cuenta de usuario y una cuenta de servicio (para aplicaciones). No se admiten otros tipos de miembros, como grupos de Google, dominios de G Suite o dominios de Cloud Identity. 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. Cloud SQL establece una política de IAM a nivel de proyecto cuando creas el proyecto. La política se aplica a todas las instancias y a otros recursos del proyecto. Para obtener más información, consulta la política de IAM.

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. Esta marca configura todas las bases de datos en la instancia. 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 agregado mediante 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 para la instancia nueva. Para obtener más información, consulta Otorga acceso a una cuenta de servicio o un usuario.

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. Crea una cuenta de servicio o un usuario nuevo en la instancia.
  2. Otorga el permiso de acceso de IAM al usuario o la cuenta de servicio para permitir la autenticación de la base de datos de IAM.

Una vez creado, puedes usar el comando de PostgreSQL GRANT para otorgar otros privilegios de base de datos.

Para obtener más información, consulta Crea 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 mediante gcloud auth login.
  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 es válido durante una hora. El token es un comprobante de la identidad del usuario. Cloud SQL usa el token para autenticar y autorizar al usuario antes de permitirle que acceda.

Para obtener más información, consulta Accede a una base de datos con 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.

Próximos pasos