Google Cloud ofrece Gestión de Identidades y Accesos (IAM), que te permite dar acceso a recursos Google Cloud específicos e impedir el acceso no deseado a otros recursos. En esta página se describe cómo se integra Cloud SQL con IAM y cómo puedes usar IAM para gestionar el acceso a los recursos de Cloud SQL y para la autenticación de bases de datos. Para obtener una descripción detallada de Google Cloud IAM, consulta la documentación de IAM.
Cloud SQL proporciona un conjunto de roles predefinidos diseñados para ayudarte a controlar el acceso a tus recursos de Cloud SQL. También puedes crear tus propios roles personalizados si los roles predefinidos no te ofrecen los conjuntos de permisos que necesitas. Además, los roles básicos antiguos (Editor, Lector y Propietario) también están disponibles, aunque no proporcionan el mismo control detallado que los roles de Cloud SQL. En concreto, los roles básicos proporcionan acceso a los recursos de Google Cloud, en lugar de solo a los de Cloud SQL. Para obtener más información sobre los roles básicos, consulta Roles básicos. Google Cloud
Puedes definir una política de gestión de identidades y accesos en cualquier nivel de la jerarquía de recursos: a nivel de organización, de carpeta o de proyecto. Los recursos heredan las políticas de todos sus recursos superiores.
Referencias de gestión de identidades y accesos para Cloud SQL
- Permisos necesarios para realizar tareas habituales en la consola Google Cloud
- Permisos necesarios para los comandos de
gcloud sql
- Permisos necesarios para los métodos de la API Admin de Cloud SQL
- Roles de gestión de identidades y accesos de Cloud SQL predefinidos
- Permisos y sus roles
- Roles personalizados
Conceptos de autenticación de gestión de identidades y accesos
Cuando se usa la autenticación de IAM, el permiso para acceder a un recurso (una instancia de Cloud SQL) no se concede directamente al usuario final. En su lugar, los permisos se agrupan en roles, y los roles se asignan a principales. Para obtener más información, consulta la información general sobre gestión de identidades y accesos.
Los administradores que tengan usuarios que inicien sesión mediante la autenticación de bases de datos de gestión de identidades y accesos pueden usar la autenticación de gestión de identidades y accesos para gestionar de forma centralizada el control de acceso a sus instancias mediante políticas de gestión de identidades y accesos.
Las políticas de gestión de identidades y accesos implican las siguientes entidades:
- Directores. En Cloud SQL, puedes usar varios tipos de entidades principales: una cuenta de usuario, una cuenta de servicio (para aplicaciones) o un grupo. Para obtener más información, consulta Conceptos relacionados con la identidad.
- Roles. Un rol es un conjunto de permisos. Puedes asignar roles a principales para proporcionarles los privilegios necesarios para llevar a cabo tareas específicas.
Por ejemplo, con la autenticación de bases de datos de gestión de identidades y accesos, una entidad requiere el permiso
cloudsql.instances.login
para iniciar sesión en una instancia, que se incluye en el rol Usuario de instancia de Cloud SQL. Para obtener el permiso, debes vincular el usuario, la cuenta de servicio o el grupo al rol de Cloud SQL predefinido o a un rol personalizado que incluya el permiso. Para obtener más información sobre los roles de gestión de identidades y accesos, consulta el artículo Roles. - Recurso Los recursos a los que acceden las principales son instancias de Cloud SQL. De forma predeterminada, las vinculaciones de políticas de gestión de identidades y accesos se aplican a nivel de proyecto, de modo que las entidades reciben permisos de rol para todas las instancias de Cloud SQL del proyecto.
Autenticación de bases de datos de gestión de identidades y accesos
La autenticación de bases de datos es el proceso de verificar la identidad de un usuario que intenta acceder a bases de datos. En Cloud SQL, puedes usar los siguientes tipos de autenticación de bases de datos para los usuarios de bases de datos:
- La autenticación integrada de la base de datos usa un nombre de usuario y una contraseña para autenticar a un usuario de la base de datos.
- La autenticación de bases de datos de gestión de identidades y accesos usa la gestión de identidades y accesos para autenticar a un usuario mediante un token de acceso.
Comparar las opciones de autenticación de bases de datos
En la siguiente tabla se comparan los diferentes métodos de autenticación de bases de datos de Cloud SQL.
Función | Autenticación de bases de datos integrada | Autenticación de bases de datos de gestión de identidades y accesos (individual) | Autenticación de grupos de gestión de identidades y accesos |
---|---|---|---|
Método de autenticación | Contraseña | Token de autenticación temporal | Token de autenticación temporal |
Cifrado del tráfico de red | No se requiere SSL | SSL obligatorio | SSL obligatorio |
Gestión de usuarios | Manual | Centralizado mediante la gestión de identidades y accesos | Centralizada a través de grupos de IAM y Cloud Identity |
Autenticación de grupos de gestión de identidades y accesos
La autenticación de grupos de gestión de identidades y accesos te permite gestionar usuarios de Cloud SQL a nivel de grupo. Por ejemplo, un grupo puede ser un grupo de Cloud Identity. Esta función simplifica la gestión de usuarios de bases de datos. Puede gestionar el rol o los permisos de IAM de Cloud SQL de varias cuentas a la vez en lugar de tener que actualizar cada cuenta de usuario o de servicio por separado. También puedes conceder y revocar los privilegios de la base de datos a un grupo de Cloud Identity. Las cuentas que añadas al grupo de Cloud Identity heredarán los privilegios de ese grupo.
Con la autenticación de grupos de gestión de identidades y accesos, puedes hacer lo siguiente:
- Añade un usuario a un grupo para que herede automáticamente sus roles de gestión de identidades y accesos y sus privilegios de base de datos.
- Elimina a un usuario de un grupo para quitarle el acceso de inicio de sesión y los privilegios de base de datos de las bases de datos de Cloud SQL.
- Concede privilegios de inicio de sesión o de base de datos a un grupo una sola vez en lugar de tener que conceder los mismos privilegios varias veces a diferentes usuarios.
- Quitar los permisos de inicio de sesión o el acceso a un objeto de base de datos de un grupo a la vez.
Aunque los roles y permisos de gestión de identidades y accesos se asignan a nivel de grupo, los usuarios y las cuentas de servicio utilizan sus cuentas y credenciales de gestión de identidades y accesos individuales, y no una cuenta de grupo compartida, para iniciar sesión. Cloud SQL crea una cuenta de base de datos en la instancia para ese usuario o cuenta de servicio después de su primer inicio de sesión.
En los registros de auditoría se muestra la actividad de inicio de sesión y de base de datos de cada usuario o cuenta de servicio. Para fines de auditoría, puede ver qué cuenta ha realizado qué acción en su base de datos.
Para obtener más información sobre cómo trabajar con grupos de Cloud Identity, consulta el resumen de Cloud Identity.
Cuando añades un usuario o una cuenta de servicio a un grupo, se producen los siguientes cambios en Cloud SQL:
- Si ya has concedido permisos de inicio de sesión de gestión de identidades y accesos al grupo, el usuario o la cuenta de servicio podrán iniciar sesión en la instancia de Cloud SQL porque pertenecen al grupo.
- El usuario hereda automáticamente los privilegios de la base de datos que se hayan concedido al grupo.
Cuando quitas un usuario o una cuenta de servicio del grupo, se producen los siguientes cambios en Cloud SQL:
- El usuario pierde los privilegios de base de datos que haya heredado previamente por ser miembro del grupo.
- Es posible que el usuario siga pudiendo iniciar sesión si recibe permisos de inicio de sesión de IAM para la instancia de Cloud SQL a través de otras pertenencias a grupos. Sin embargo, el usuario no tendrá privilegios de base de datos de su antiguo grupo al iniciar sesión.
Prácticas recomendadas para la autenticación de grupos de gestión de identidades y accesos
- Cuando revoques el permiso de inicio de sesión (
cloudsql.instances.login
) de un grupo de gestión de identidades y accesos en Cloud Identity, asegúrate de eliminar también el grupo de la instancia de Cloud SQL. - Cuando elimines un grupo de Cloud Identity, asegúrate de eliminarlo también de la instancia de Cloud SQL.
- Usa grupos para configurar el control de acceso basado en roles en tu base de datos. Siempre proporciona los privilegios mínimos necesarios al grupo.
- No concedas roles de autenticación de grupos de gestión de identidades y accesos a usuarios integrados. Por ejemplo, si tienes un usuario integrado,
user-a
, y creas un usuario de autenticación de grupo de IAM,user-b@example.com
, no le asignes el roluser-b@example.com
auser-a
.
Restricciones de autenticación de grupos de gestión de identidades y accesos
- Cuando se usa la autenticación de grupos de gestión de identidades y accesos, si tienes una instancia de Cloud SQL con réplicas de lectura, primero debes iniciar sesión en la instancia principal antes de hacerlo en la instancia de réplica de lectura. Después de iniciar sesión por primera vez en la instancia principal, la información de los usuarios del grupo se replica en las réplicas de lectura. En los inicios de sesión posteriores, puedes iniciar sesión directamente en la réplica de lectura.
- Puedes añadir un máximo de 200 grupos de gestión de identidades y accesos a una instancia.
- No puedes añadir cuentas de usuario o de servicio de IAM individuales que pertenezcan a un grupo en la misma instancia. Es decir, no puedes añadir una cuenta de tipo
CLOUD_IAM_USER
oCLOUD_IAM_SERVICE_ACCOUNT
si ya existe una cuenta idéntica de tipoCLOUD_IAM_GROUP_USER
oCLOUD_IAM_GROUP_SERVICE_ACCOUNT
. - Si ya existe una cuenta individual en una instancia con el tipo
CLOUD_IAM_USER
oCLOUD_IAM_SERVICE_ACCOUNT
, la cuenta no se puede usar para la autenticación de grupos de gestión de identidades y accesos. Estos tipos de usuarios no heredan los roles de gestión de identidades y accesos ni los privilegios de la base de datos de un grupo.Para solucionar este problema y usar la cuenta con la autenticación de grupo de IAM, elimina el usuario o la cuenta de servicio de IAM concretos.
Para obtener más información, consulta Un usuario o una cuenta de servicio de IAM no hereda los privilegios de la base de datos concedidos a su grupo. - Los cambios en la pertenencia a grupos de Cloud Identity, como la adición de una cuenta, tardan unos 15 minutos en propagarse. Esto se suma al tiempo necesario para hacer cambios en IAM.
Autenticación de bases de datos de gestión de identidades y accesos automática y manual
Cloud SQL para PostgreSQL ofrece dos opciones para la autenticación de bases de datos de gestión de identidades y accesos: automática y manual.
Autenticación automática de bases de datos de gestión de identidades y accesos
La autenticación automática de bases de datos de gestión de identidades y accesos te permite delegar la solicitud y la gestión de tokens de acceso en un conector de Cloud SQL intermediario, como el proxy de autenticación de Cloud SQL o uno de los conectores de lenguaje de Cloud SQL. Con la autenticación de bases de datos de gestión de identidades y accesos automática, los usuarios solo tienen que enviar el nombre de usuario de la base de datos de gestión de identidades y accesos en una solicitud de conexión desde el cliente. El conector envía la información del token de acceso del atributo de contraseña en nombre del cliente.
Para usar la autenticación automática de la base de datos de gestión de identidades y accesos, se debe usar un conector de Cloud SQL. Esta autenticación es compatible con el proxy de autenticación de Cloud SQL, el conector de Go, el conector de Java y el conector de Python.
Para disfrutar de la experiencia más segura y fiable, te recomendamos que uses la autenticación automática de bases de datos de IAM. La autenticación de bases de datos de gestión de identidades y accesos usa tokens de acceso de OAuth 2.0, que tienen una duración breve y solo son válidos durante una hora. Los conectores de Cloud SQL pueden solicitar y actualizar estos tokens, lo que garantiza que los procesos o las aplicaciones de larga duración que dependen de la agrupación de conexiones puedan tener conexiones estables. Se recomienda encarecidamente la autenticación de bases de datos de gestión de identidades y accesos automática en lugar de la autenticación manual.
Para obtener más información, consulta Iniciar sesión con la autenticación automática de bases de datos de gestión de identidades y accesos.
Autenticación de bases de datos de gestión de identidades y accesos manual
La autenticación manual de la base de datos de IAM requiere que la principal de IAM transfiera explícitamente el token de acceso del atributo de contraseña en la solicitud de conexión del cliente. Los principales deben iniciar sesión en Google Cloud y solicitar explícitamente el token de acceso a IAM.
Con la CLI de gcloud, puedes solicitar explícitamente un token de OAuth 2.0 con el permiso de la API Cloud SQL Admin que se usa para iniciar sesión en la base de datos. Cuando inicias sesión como usuario de la base de datos con la autenticación de bases de datos de gestión de identidades y accesos, 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.
Solo se puede iniciar sesión con la autenticación de bases de datos de gestión de identidades y accesos a través de una conexión SSL.
Para obtener más información, consulta el artículo sobre cómo iniciar sesión con la autenticación manual de bases de datos de gestión de identidades y accesos.
Acceso contextual y autenticación de bases de datos de gestión de identidades y accesos
Si usas el acceso en función del contexto en tu configuración de IAM, no puedes usar un conector de Cloud SQL, como el proxy de autenticación de Cloud SQL o uno de los conectores de lenguaje de Cloud SQL, con la autenticación de bases de datos de IAM. Los intentos de iniciar sesión manualmente o automáticamente con la autenticación de gestión de identidades y accesos no se podrán llevar a cabo. Conéctate directamente a la instancia.
Gestió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 mediante la autenticación de bases de datos de gestión de identidades y accesos, debes añadirlos a la instancia o a un grupo que tenga acceso a la instancia. Para obtener más información, consulta Añadir un usuario o una cuenta de servicio que utilice IAM.
Si usas la Google Cloud consola para añadir usuarios o cuentas de servicio, Cloud SQL te pedirá que añadas el rol "Usuario de Cloud SQL" al usuario. Este rol es obligatorio para que los usuarios puedan iniciar sesión en la instancia.
Si añades usuarios congcloud
o la API, debes concederles privilegios de inicio de sesión manualmente. Usa el comando GRANT de PostgreSQL para conceder privilegios de base de datos.
Configuración de instancias para la autenticación de bases de datos de gestión de identidades y accesos de Cloud SQL
Puedes habilitar la autenticación de bases de datos de gestión de identidades y accesos en una instancia mediante la marca cloudsql.iam_authentication
. Una vez que habilites esta marca, la instancia permitirá iniciar sesión con cuentas configuradas para la autenticación de bases de datos de gestión de identidades y accesos.
Esta marca es obligatoria para la autenticación de grupos de gestión de identidades y accesos y la autenticación de bases de datos de gestión de identidades y accesos.
Si se define la marca, los usuarios que no sean de IAM podrán seguir usando sus nombres de usuario y contraseñas para iniciar sesión. Sin embargo, si inhabilitas esta marca en la instancia, cualquier usuario que hayas añadido anteriormente mediante la autenticación de bases de datos de gestión de identidades y accesos perderá el acceso a la instancia. Para obtener más información, consulta el artículo sobre cómo configurar instancias para la autenticación de bases de datos de gestión de identidades y accesos.
Autenticación de bases de datos de gestión de identidades y accesos de Cloud SQL en diferentes casos prácticos de instancias
Réplicas de lectura | La autenticación de bases de datos de gestión de identidades y accesos no se habilita automáticamente en una réplica de lectura, aunque esté habilitada en la instancia principal. Después de crear una réplica de lectura, debes añadir la autenticación de bases de datos de gestión de identidades y accesos. Para obtener más información, consulta Configurar inicios de sesión de réplicas de lectura para la autenticación de bases de datos de IAM. |
Instancias restauradas | Si se ha creado una copia de seguridad de una instancia y, posteriormente, se ha restaurado en la misma instancia o en otra del mismo proyecto, se aplicarán las autorizaciones de inicio de sesión del usuario actual. Si restauras una copia de seguridad en una instancia nueva de otro proyecto, debes configurar las autorizaciones de usuario de la instancia nueva. Para obtener más información, consulta el artículo Añadir un usuario o una cuenta de servicio que use la autenticación de bases de datos de gestión de identidades y accesos. |
Acerca de las condiciones de gestión de identidades y accesos
Las condiciones de gestión de identidades y accesos te permiten conceder roles en función de diversos atributos. Por ejemplo, puede permitir el acceso solo en determinadas fechas y horas, o bien conceder acceso únicamente a recursos de Cloud SQL con determinados nombres.
Para obtener más información sobre las condiciones de gestión de identidades y accesos, consulta la página Información general sobre las condiciones de gestión de identidades y accesos. También puedes consultar más información sobre cómo usar las condiciones de IAM con Cloud SQL, incluidos ejemplos.
Trabajar con registros de auditoría de Cloud
Para mantener registros de acceso a los datos, incluidos los inicios de sesión, puedes usar los registros de auditoría. Registros de auditoría de Cloud está desactivado de forma predeterminada. Para hacer un seguimiento de los inicios de sesión, debes activar los registros de auditoría de acceso a datos. Usar el registro de auditoría con este fin conlleva costes por el registro de datos. Para obtener más información, consulta Registros de auditoría, Configurar registros de auditoría de acceso a datos y Precios de los datos de registro.
Restricciones
- El nombre de inicio de sesión de una cuenta de usuario de autenticación de bases de datos de gestión de identidades y accesos debe estar en minúsculas. Por ejemplo,
example-user@example.com
.Example-User@example.com
no se permite. - Por motivos de seguridad, los inicios de sesión mediante la autenticación de bases de datos de gestión de identidades y accesos solo están disponibles en una conexión SSL. Se rechazan las conexiones no cifradas.
- Hay una cuota de inicios de sesión por minuto para cada instancia, que incluye tanto los inicios de sesión correctos como los incorrectos. Cuando se supera la cuota, los inicios de sesión no están disponibles temporalmente. Te recomendamos que evites iniciar sesión con frecuencia y que restrinjas los inicios de sesión mediante redes autorizadas. La cuota de autorización de inicios de sesión es de 12.000 por minuto y por instancia.
Siguientes pasos
- Consulte cómo configurar instancias para la autenticación de bases de datos de gestión de identidades y accesos.
- Consulta cómo añadir a tu base de datos un usuario o una cuenta de servicio que use la autenticación de bases de datos de gestión de identidades y accesos.
- Consulta cómo iniciar sesión en una base de datos de Cloud SQL con la autenticación de bases de datos de gestión de identidades y accesos.
- Consulta cómo ver información de inicio de sesión en los registros de auditoría.