Para controlar el acceso a tus bases de datos de AlloyDB para PostgreSQL, puedes crear y administrar usuarios, roles y grupos de bases de datos con la autenticación integrada de PostgreSQL o la autenticación de Identity and Access Management (IAM).
Cómo funciona la administración de usuarios de bases de datos
AlloyDB comparte los mismos conceptos de roles, usuarios y grupos que PostgreSQL. Para obtener una explicación breve, consulta las siguientes descripciones:
Rol: Es la designación de nivel superior que describe tanto a los usuarios de la base de datos como a los grupos de usuarios de la base de datos en un clúster. Los roles proporcionan y restringen el acceso a los objetos de la base de datos, como tablas y funciones.
Usuario: Es el rol al que se le otorga el atributo
LOGIN. Los usuarios pueden autenticarse y acceder a los clústeres de bases de datos de AlloyDB.Grupo: Es el rol que se otorga a uno o más usuarios. El propósito de los grupos es controlar los privilegios que tienen muchos usuarios en conjunto.
Cómo funciona la autenticación de la base de datos
Para autenticarte y acceder a tus clústeres de bases de datos de AlloyDB, tienes dos opciones:
- Autenticación integrada basada en contraseñas de PostgreSQL:
Para verificar la identidad del usuario, AlloyDB compara las credenciales proporcionadas
con las contraseñas almacenadas con codificación hash. Los métodos admitidos
incluyen
md5,scram-sha-256ypassword. - Autenticación de IAM: permite que los usuarios de la base de datos se autentiquen con IAM. Esto proporciona una seguridad mejorada y centraliza el control de acceso en otros servicios deGoogle Cloud .
Roles predefinidos
PostgreSQL proporciona roles predefinidos con varios privilegios. Además de estos roles predefinidos, AlloyDB proporciona varios roles de usuario y de grupo predefinidos más.
En la siguiente tabla, se enumeran los roles y los privilegios de rol que proporciona AlloyDB:
| Nombre del rol | Privilegios |
|---|---|
alloydbsuperuser |
CREATEROLE, CREATEDB y LOGIN. |
postgres |
CREATEROLE, CREATEDB y LOGIN. |
alloydbadmin |
SUPERUSER (que incluye CREATEROLE, CREATEDB y LOGIN) |
alloydbimportexport |
CREATEROLE y CREATEDB. |
alloydbexport |
LOGIN y miembro de pg_read_all_data. |
alloydbagent |
CREATEROLE y CREATEDB. |
alloydbmetadata |
LOGIN. De forma predeterminada, este rol no tiene ningún privilegio
adicional. |
alloydbobservability |
LOGIN y miembro de pg_monitor. |
alloydbreplica |
REPLICATION |
alloydbiamuser |
De forma predeterminada, este rol no tiene ningún privilegio. |
alloydbiamgroupuser |
De forma predeterminada, este rol no tiene ningún privilegio. |
En las siguientes subsecciones, se explican los usos de estos roles.
Rol de grupo alloydbsuperuser
El rol alloydbsuperuser te permite configurar tu sistema de base de datos y realizar
otras tareas de superusuario. Este rol tiene los siguientes privilegios:
- Crear extensiones que requieran privilegios de superusuario
- Crea activadores de eventos
- Crea usuarios de replicación
- Crea suscripciones y publicaciones de replicación
Como servicio administrado, AlloyDB no te permite otorgar a los usuarios el
rol superuser de PostgreSQL. En cambio, puedes otorgar privilegios de superusuario de AlloyDB
a cualquier usuario de la base de datos si le asignas el
rol alloydbsuperuser.
Rol de usuario de postgres
El rol de usuario postgres es parte del rol alloydbsuperuser. Cuando creas
un clúster de AlloyDB, puedes asignar una contraseña al usuario postgres
para que puedas acceder a tu sistema con el usuario postgres y realizar
tareas, como crear bases de datos o roles adicionales.
Rol de usuario de alloydbadmin
El rol alloydbadmin es un rol interno predefinido del sistema que configura el
sistema de la base de datos, instala y actualiza extensiones, y realiza otras tareas internas
de superusuario. El servicio de AlloyDB administra este rol, y no
puedes usarlo para acceder ni otorgarlo de forma manual a las cuentas de base de datos.
Rol de usuario de alloydbimportexport
Cuando creas un clúster de AlloyDB, AlloyDB
crea el usuario alloydbimportexport con el conjunto mínimo de privilegios que
necesita para las operaciones de importación y exportación.
Puedes crear tus propios usuarios para realizar estas operaciones. Si no
creas un usuario alloydbimportexport personalizado, el sistema usará el usuario alloydbimportexport
predeterminado para las operaciones de importación y exportación.
El usuario alloydbimportexport es un usuario del sistema. Esto significa que no puedes
usar directamente el usuario alloydbimportexport para acceder o realizar otras
operaciones en tus bases de datos de PostgreSQL.
Rol de usuario de alloydbexport
El rol alloydbexport es un rol interno del sistema de AlloyDB con
privilegios de pg_read_all_data que usan las operaciones de exportación internas. El servicio de AlloyDB administra este rol, y no puedes otorgarlo de forma manual a las cuentas de base de datos.
Rol de usuario de alloydbagent
El rol alloydbagent es un rol interno del sistema de AlloyDB. El
servicio de AlloyDB administra el rol y no puedes otorgarlo de forma manual
a las cuentas de base de datos. Esta administración ayuda a que la base de datos y sus funciones
se ejecuten correctamente.
Rol de usuario de alloydbmetadata
El rol alloydbmetadata es un rol interno del sistema de AlloyDB
con privilegios mínimos que se usa para administrar tablas de metadatos internas. El servicio de AlloyDB administra este rol, y no puedes otorgarlo de forma manual a las cuentas de base de datos.
Rol de usuario de alloydbobservability
El rol alloydbobservability es un rol interno del sistema de AlloyDB
con privilegios pg_monitor que se usa para recopilar telemetría de la base de datos, estadísticas de consultas
y métricas de observabilidad. El servicio de AlloyDB administra
este rol, y no puedes otorgarlo de forma manual a las cuentas de base de datos.
Rol de usuario de alloydbreplica
El rol alloydbreplica es un rol interno del sistema de AlloyDB. El
servicio de AlloyDB administra el rol y no puedes otorgarlo de forma manual
a las cuentas de base de datos. Esta administración ayuda a que la base de datos y sus funciones
se ejecuten correctamente.
Rol de grupo alloydbiamuser
Los usuarios de la base de datos dentro del grupo alloydbiamuser se autentican con
una instancia de AlloyDB mediante IAM,
en lugar de usar la autenticación basada en contraseñas
integrada de PostgreSQL.
AlloyDB no te permite otorgar el rol alloydbiamuser a los usuarios
con el comando GRANT de PostgreSQL ni métodos similares. En su lugar, puedes usar
las herramientas administrativas de AlloyDB para crear y administrar
usuarios de bases de datos basados en IAM. Para obtener más información, consulta
Administra la autenticación de IAM.
Rol de grupo alloydbiamgroupuser
Los grupos de bases de datos y sus cuentas de miembros que usan la autenticación de grupos de IAM pertenecen al rol de grupo alloydbiamgroupuser. El
servicio de AlloyDB administra este rol automáticamente cuando agregas un
grupo de IAM a un clúster, y no puedes otorgarlo de forma manual con
el comando GRANT de PostgreSQL. Para obtener más información sobre cómo otorgar privilegios de base de datos
a los usuarios de IAM, consulta
Administra la autenticación de IAM.
¿Qué sigue?
Aprende a administrar roles, usuarios y grupos de PostgreSQL para AlloyDB con la autenticación integrada.
Obtén información para administrar la autenticación de IAM.