Descripción general de la autenticación de la base de datos de IAM

La autenticación de la base de datos de Identity and Access Management (IAM) te permite controlar y administrar el acceso a tus bases de datos de AlloyDB para PostgreSQL con políticas de IAM centralizadas en lugar de contraseñas de bases de datos.

La autenticación de la base de datos de IAM ofrece las siguientes opciones:

  • Autenticación de IAM individual: Agregas usuarios o cuentas de servicio específicos al clúster.
  • Autenticación de IAM de grupo: Agregas un grupo de IAM al clúster, y todos los miembros de ese grupo heredan los permisos para autenticarse.

La autenticación individual es útil cuando necesitas otorgar acceso a cuentas específicas directamente. La autenticación de grupos te permite administrar el acceso a la base de datos modificando la membresía del grupo, lo que reduce la necesidad de agregar o quitar usuarios individuales a nivel del clúster.

Conceptos de autenticación de IAM

Cuando usas la autenticación de IAM, el permiso para acceder a una instancia de AlloyDB no se otorga directamente al usuario final. En su lugar, los permisos se agrupan en roles, y estos se otorgan a las principales. Para obtener más información sobre los roles y los permisos de IAM, 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:

  • Principales: En AlloyDB, puedes usar una cuenta de usuario, una cuenta de servicio para aplicaciones o un grupo de IAM. Para obtener más información sobre las principales, consulta Principales.

  • Roles: Para la autenticación de la base de datos de IAM, una principal requiere el permiso alloydb.users.login, que se incluye en el rol de usuario de la base de datos de AlloyDB (roles/alloydb.databaseUser) y el rol de consumidor de Service Usage (roles/serviceusage.serviceUsageConsumer). Para otorgar estos permisos, vincula el usuario, la cuenta de servicio o el grupo a estos roles predefinidos o a un rol personalizado que incluya los permisos requeridos. Para obtener más información sobre los roles y permisos, consulta Permisos y roles.

  • Recursos: Los recursos a los que acceden las principales son clústeres de AlloyDB. Las vinculaciones de políticas de IAM se aplican a nivel de proyecto, de modo que las principales reciban permisos de rol para todas las instancias de AlloyDB en el proyecto. Para obtener más información sobre los recursos, consulta Recursos.

Compara opciones de autenticación de base de datos

Usa la siguiente tabla para decidir qué método de autenticación es el más adecuado para tu caso de uso.

Función Autenticación de bases de datos integradas Autenticación de la base de datos de IAM
Método de autenticación Contraseña Token de autenticación temporal
Encriptación del tráfico de red No se requiere SSL SSL requerido
Administración de usuarios Manual Centralizado a través de IAM

Comparación entre la autenticación de bases de datos de IAM automática y manual

AlloyDB ofrece dos métodos para la autenticación de la base de datos de IAM: automática y manual.

Autenticación automática de la base de datos de IAM

La autenticación automática de la base de datos de IAM te permite transferir la solicitud y la administración de tokens de acceso a un conector de AlloyDB intermediario, como el proxy de autenticación o uno de los conectores de lenguaje.

Con la autenticación automática de la base de datos de IAM, una aplicación solo necesita pasar el nombre de usuario de la base de datos de IAM en una solicitud de conexión del cliente. El conector envía la información del token de acceso para el atributo de contraseña en nombre del cliente.

Autenticación manual de la base de datos de IAM

La autenticación manual de la base de datos de IAM requiere que la principal 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 principales primero deben acceder a Google Cloud y solicitar de forma explícita el token de acceso desde IAM.

Para mantener registros del acceso a los datos, incluidos los accesos, puedes usar los Registros de auditoría de Cloud. Los Registros de auditoría de Cloud están desactivados de forma predeterminada. Activa los registros de auditoría de acceso a los datos para hacer un seguimiento de los accesos.

Autenticación de grupos de IAM

La autenticación de grupos de IAM te permite administrar usuarios de AlloyDB a nivel de grupo en clústeres nuevos y existentes, por ejemplo, con un grupo de Cloud Identity. Puedes administrar los roles y permisos de PostgreSQL para varios usuarios de IAM al mismo tiempo, en lugar de actualizar cada usuario o cuenta de servicio de forma individual. Cuando otorgas o revocas roles de base de datos para un grupo de Cloud Identity, las cuentas que agregues a ese grupo heredan los privilegios y roles del grupo.

Para habilitar la autenticación de grupos de IAM en una instancia, establece las marcas de base de datos alloydb.iam_authentication y alloydb.iam_group_authentication en on.

Con la autenticación de grupos de IAM, puedes hacer lo siguiente:

  • Habilita la autenticación de grupos en clústeres nuevos y existentes sin aplicar parches manuales.

  • Agregar un usuario a un grupo para que herede los roles de IAM y los privilegios de la base de datos automáticamente.

  • Quitar un usuario de un grupo para revocar su acceso y los privilegios de la base de datos en los clústeres de AlloyDB.

  • Otorgar o revocar permisos de acceso y acceso a objetos de base de datos para un grupo completo a la vez, en lugar de actualizar cuentas individuales.

  • Accede directamente a AlloyDB Studio en la consola de Google Cloud , las instancias principales o las instancias de grupos de lectura, incluidos los accesos por primera vez directamente a las instancias de grupos de lectura sin conectarte primero a la instancia principal.

  • Restablece o migra un clúster de AlloyDB desde una copia de seguridad de Cloud SQL para PostgreSQL mientras asignas y conservas los parámetros de configuración de los usuarios individuales y de los grupos de IAM.

Aunque los permisos y los roles de IAM se asignan a nivel de grupo, los usuarios y las cuentas de servicio usan sus cuentas y credenciales de IAM individuales, no una cuenta de grupo compartida, para acceder a las instancias principales, las instancias de grupos de lectura o AlloyDB Studio. AlloyDB crea una cuenta de base de datos en el clúster para ese principal durante su primer acceso.

La actividad de acceso individual y de la base de datos de cada usuario o cuenta de servicio aparece en los registros de auditoría, lo que te permite verificar qué cuenta realizó cada acción en tu base de datos.

Para obtener más información sobre cómo trabajar con los grupos de Cloud Identity, consulta Descripción general de Cloud Identity. Para obtener más información sobre la migración desde una copia de seguridad de Cloud SQL para PostgreSQL, consulta Migra de Cloud SQL para PostgreSQL a AlloyDB.

Cuando agregas un usuario o una cuenta de servicio a un grupo, se producen los siguientes cambios en AlloyDB:

  • Si ya otorgaste permisos de acceso de IAM al grupo, la cuenta de usuario o servicio obtiene la capacidad de acceder al clúster de AlloyDB porque el usuario o la cuenta de servicio pertenecen al grupo.

  • El usuario hereda automáticamente los privilegios de base de datos o los roles que se otorgaron al grupo.

Cuando quitas un usuario o una cuenta de servicio del grupo, se producen los siguientes cambios en AlloyDB:

  • El usuario pierde todos los privilegios de la base de datos que heredó anteriormente como miembro del grupo.
  • Es posible que el usuario aún pueda crear sesiones nuevas si recibe permisos de acceso de IAM para el clúster de AlloyDB a través de otras membresías de grupo. Sin embargo, el usuario no tendrá privilegios de base de datos de su pertenencia a un grupo anterior cuando acceda.

Prácticas recomendadas

Sigue estas prácticas recomendadas cuando uses la autenticación de grupos de IAM:

  • Cuando revoques el rol roles/alloydb.databaseUser de un grupo de IAM en IAM, borra el grupo del clúster de AlloyDB.

  • Cuando borres un grupo de Cloud Identity, bórralo también del clúster de AlloyDB.

  • Usa grupos para configurar el control de acceso basado en roles en tu base de datos. Proporciona al grupo los privilegios mínimos necesarios.

Limitaciones

La autenticación de grupos de IAM tiene las siguientes limitaciones:

  • La autenticación de grupos de IAM solo se admite en la versión POSTGRES_15 y posteriores de la base de datos.

  • Para respaldar la seguridad, los accesos que usan la autenticación de la base de datos de IAM solo están disponibles a través de una conexión SSL. Se rechazan las conexiones sin encriptar.

  • 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 de forma temporal. Evita los accesos frecuentes y restringe los accesos con redes autorizadas.

  • La principal abreviada de una cuenta de servicio, que es la dirección de correo electrónico sin el sufijo ., no debe superar los 63 caracteres. PostgreSQL trunca los nombres de roles de más de 63 caracteres en el catálogo de la base de datos, lo que hace que falle la autenticación de IAM. Si no puedes acortar el nombre de la cuenta de servicio, consulta la solución alternativa de identidad temporal como cuenta de servicio.

  • Puedes agregar un máximo de 200 grupos de IAM a un clúster.

  • No puedes agregar usuarios de IAM individuales o cuentas de servicio que pertenezcan a un grupo en el mismo clúster. En otras palabras, no puedes agregar una cuenta con el tipo ALLOYDB_IAM_USER si ya existe una cuenta idéntica con el tipo ALLOYDB_IAM_GROUP_USER o ALLOYDB_IAM_GROUP_SERVICE_ACCOUNT.

  • Si ya existe una cuenta individual en un clúster con el tipo ALLOYDB_IAM_USER, no puedes usar la cuenta para la autenticación de grupos de IAM. Estos tipos de usuario no heredan los roles de IAM ni los privilegios de la base de datos de un grupo. Para solucionar este problema y usar la cuenta con la autenticación de grupos de IAM, quita la cuenta de servicio o el usuario individual de IAM. Para obtener más información sobre cómo resolver este problema, consulta Una cuenta existente no hereda privilegios.

  • Los cambios en la membresía de un grupo de Cloud Identity, como la adición de una cuenta, tardan unos 15 minutos en propagarse. Este tiempo de propagación se suma al tiempo requerido para los cambios de IAM.

  • La autenticación de grupos de IAM requiere que se flexibilicen o inhabiliten todas las marcas de base de datos relacionadas con las contraseñas que rigen la cantidad mínima de caracteres, los caracteres numéricos y la longitud mínima.

  • La autenticación de grupos de IAM no es compatible con la agrupación de conexiones administrada ni con las conexiones de PgBouncer.

  • La autenticación de grupos de IAM no es compatible con las identidades federadas.

¿Qué sigue?