En esta página, se describe la autenticación de la base de datos de Identity and Access Management (IAM) individual y de grupo, que se usa para administrar el acceso a tus bases de datos de AlloyDB para PostgreSQL.
La autenticación de la base de datos de IAM ofrece las siguientes opciones:
- Autenticación individual de IAM: Agrega usuarios o cuentas de servicio específicos al clúster.
- Autenticación de grupos de IAM: Agrega un grupo de IAM al clúster. Todos los miembros de ese grupo heredan permisos para autenticarse, lo que simplifica la administración para varios usuarios.
La autenticación individual es útil cuando necesitas otorgar acceso directamente a cuentas específicas. Usa la autenticación de grupos cuando quieras administrar el acceso modificando la pertenencia a un grupo, lo que reduce la necesidad de agregar o quitar usuarios 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 los roles se otorgan a las principales autenticadas. 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:
Principales En AlloyDB, puedes usar una cuenta de usuario o una cuenta de servicio para las aplicaciones. Para obtener más información, consulta Principales.
Funciones Para la autenticación de la base de datos de IAM, un usuario necesita el permiso alloydb.instances.login. Este permiso se incluye en el rol de cliente de AlloyDB (
roles/alloydb.client). Para obtener este permiso, vincula el usuario, la cuenta de servicio o el grupo al rol predefinido o a un rol personalizado que incluya el permiso. Para obtener más información, consulta Permisos y funciones.Recurso Los recursos a los que acceden los principales son clústeres de AlloyDB. Las vinculaciones de políticas de IAM se aplican a nivel de proyecto, de modo que los principales reciban permisos de función para todas las instancias de AlloyDB en el proyecto. Para obtener más información, consulta Recursos.
Compara opciones de autenticación de base de datos
Usa la siguiente tabla para ayudarte a 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 y administrar tokens de acceso para 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 el 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 de 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 el seguimiento de acceso.
Autenticación de grupos de IAM
La autenticación de grupos de IAM te permite administrar usuarios de AlloyDB a nivel de grupo. Un ejemplo de un grupo incluye un grupo de Cloud Identity. Esta función simplifica la administración de usuarios de la base de datos. Puedes administrar los roles o permisos de PostgreSQL para varios usuarios de IAM al mismo tiempo en lugar de actualizar cada usuario o cuenta de servicio de forma individual. También puedes otorgar y revocar los roles de la base de datos para un grupo de Cloud Identity. Cualquier cuenta nueva que agregues al grupo de Cloud Identity hereda los privilegios y roles de ese grupo.
Con la autenticación de grupos de IAM, puedes hacer lo siguiente:
- Agregar un usuario a un grupo y hacer que herede sus privilegios de base de datos y roles de IAM automáticamente.
- Quitar un usuario de un grupo para quitar su información de acceso y los privilegios de la base de datos de los clústeres de AlloyDB.
- Otorgar privilegios de acceso o de base de datos a un grupo una sola vez en lugar de tener que otorgar los mismos privilegios varias veces a diferentes usuarios.
- Quitar los permisos de acceso o el acceso a un objeto de base de datos para un grupo a la vez.
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 y no una cuenta de grupo compartida para acceder. 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. Para las auditorías, obtienes el beneficio de ver 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.
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 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 pertenencias a un grupo. Sin embargo, el usuario no tendrá privilegios de base de datos de su pertenencia a un grupo anterior cuando acceda.
Prácticas recomendadas
- Cuando revoques el permiso de acceso (
alloydb.databaseUser) para un grupo de IAM en Cloud Identity, borra el grupo del clúster de AlloyDB. - Cuando borres un grupo de Cloud Identity, borra también ese grupo 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 está disponible en versión preliminar para los clústeres nuevos de AlloyDB. Para habilitar esta función en un clúster existente, comunícate con tu equipo de cuentas de Google Cloud.
- La autenticación de grupos de IAM solo es compatible con la versión de base de datos
POSTGRES_15y versiones posteriores en versión preliminar. - Para admitir la 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.
- 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 a través de las redes autorizadas.
- Cuando usas la autenticación de grupos de IAM, si tienes un clúster de AlloyDB con réplicas de lectura, primero debes acceder a la instancia principal antes de acceder a la instancia de réplica de lectura. Después de tu primer acceso a la instancia principal, la información del usuario del grupo se replica en las réplicas de lectura. Para los accesos posteriores, puedes acceder directamente a la réplica de lectura.
- Puedes agregar un máximo de 200 grupos de IAM a una instancia.
- No puedes agregar usuarios de IAM individuales o cuentas de servicio que pertenezcan a un grupo en la misma instancia. En otras palabras, no puedes agregar una cuenta con el tipo
ALLOYDB_IAM_USERsi ya existe una cuenta idéntica con el tipoALLOYDB_IAM_GROUP_USERoALLOYDB_IAM_GROUP_SERVICE_ACCOUNT. Si ya existe una cuenta individual en una instancia 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 autenticación de grupos de IAM, quita la cuenta de servicio o el usuario individual de IAM. Para obtener más información, consulta Un usuario o cuenta de servicio de IAM existente no hereda los privilegios de la base de datos otorgados a su grupo.Los cambios en la pertenencia a un grupo de Cloud Identity, como la adición de una cuenta, tardan unos 15 minutos en propagarse. Esto se suma al tiempo requerido para los cambios de IAM.
La autenticación de grupos de IAM no es compatible con el agrupamiento de conexiones administrado.
La autenticación de grupos de IAM no es compatible con las identidades federadas.