Control de acceso de Bigtable con gestión de identidades y accesos
En esta página se describen las opciones de control de acceso de Bigtable.
Información general
Bigtable usa Gestión de Identidades y Accesos (IAM) para el control de acceso. Puedes definir políticas de gestión de identidades y accesos en los recursos para controlar quién tiene acceso a qué recursos.
Los recursos de Bigtable se organizan en una jerarquía. Un proyecto es el elemento principal de una instancia de Bigtable, que a su vez es el elemento principal de sus clústeres y tablas.Google Cloud Una tabla es el elemento superior de sus vistas autorizadas, mientras que un clúster es el elemento superior de sus copias de seguridad. Puedes configurar el control de acceso en cada nivel.
Si tiene permisos en un nivel, automáticamente tendrá permisos en los niveles inferiores. Por ejemplo, si tienes acceso a nivel de proyecto, tendrás acceso a las instancias, los clústeres, las tablas, las vistas autorizadas y las vistas materializadas continuas de ese proyecto. Si se te concede acceso a una vista autorizada o a una vista materializada continua, no tendrás acceso automáticamente a los recursos de nivel superior que sean elementos principales de la vista autorizada o de la vista materializada continua, como la tabla y la instancia. Este comportamiento se denomina herencia de políticas.
Para obtener más información sobre la jerarquía de IAM, consulta el artículo sobre la herencia de políticas de IAM.
A continuación, te mostramos algunos ejemplos de cómo usar el control de acceso a nivel de proyecto:
- Permite que un usuario lea cualquier tabla del proyecto, pero no que escriba en ella.
- Permite que un usuario lea y escriba en cualquier tabla del proyecto, pero no que gestione instancias.
- Permite a un usuario leer y escribir en cualquier tabla del proyecto, así como gestionar instancias.
Estos son algunos ejemplos de cómo usar el control de acceso a nivel de instancia:
- Permite que un usuario lea cualquier tabla de una sola instancia de un proyecto que tenga varias instancias.
- Permite que un usuario gestione solo una instancia en un proyecto que tenga varias instancias.
Estos son algunos ejemplos de cómo usar el control de acceso a nivel de tabla:
- Permite que un usuario escriba en una tabla, pero no que lea de ella.
- Permite que un usuario lea una tabla, pero no que escriba en ella.
Estos son algunos ejemplos de cómo usar el control de acceso a nivel de copia de seguridad:
- Impedir que un usuario elimine una copia de seguridad.
- Impedir que un usuario restaure datos a partir de la copia de seguridad.
Estos son algunos ejemplos de cómo usar el control de acceso a nivel de vista autorizada:
- Permite que un usuario lea una vista autorizada, pero no que la modifique.
- Permite que un usuario vea los datos de una sola de las varias vistas autorizadas de una tabla.
Estos son algunos ejemplos de uso del control de acceso a nivel de vista materializada continua:
- Permite que un usuario lea una vista materializada continua, pero no que modifique la tabla subyacente.
Para obtener una descripción detallada de IAM y de sus características, consulta la guía para desarrolladores de IAM. En concreto, consulta Conceder, cambiar y revocar el acceso.
En Bigtable, no puedes conceder acceso a los siguientes tipos de principales:
Para ver las listas de permisos y roles que admite Bigtable, consulta las siguientes secciones.
Habilitar la API Bigtable
Para ver y asignar roles de IAM de Bigtable, debes habilitar la API Bigtable en tu proyecto. No podrás ver los roles de Bigtable en la consola de Google Cloud hasta que habilites la API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin), which
contains the serviceusage.services.enable permission. Learn how to grant
roles.
Permisos
En esta sección se resumen los permisos que admite Bigtable.
Los permisos permiten que los usuarios realicen acciones específicas en recursos de Bigtable. Por ejemplo, los permisos de bigtable.instances.list permiten a los usuarios enumerar todas las instancias de Bigtable de un proyecto. No se conceden permisos a los usuarios directamente, sino que se les asigna un rol predefinido o un rol personalizado, que les concede uno o varios permisos.
En las siguientes tablas se indican los permisos de gestión de identidades y accesos que están asociados con Bigtable:
| Nombre del permiso de perfil de aplicación | Descripción |
|---|---|
bigtable.appProfiles.create |
Crea un perfil de aplicación de Bigtable. |
bigtable.appProfiles.delete |
Elimina un perfil de aplicación de Bigtable. |
bigtable.appProfiles.get |
Obtiene información sobre un perfil de aplicación de Bigtable. |
bigtable.appProfiles.list |
Lista los perfiles de aplicación de Bigtable de una instancia. |
bigtable.appProfiles.update |
Actualiza la configuración de un perfil de aplicación de Bigtable. |
| Nombre del permiso de copias de seguridad | Descripción |
|---|---|
bigtable.backups.create |
Crea una copia de seguridad de Bigtable. |
bigtable.backups.delete |
Eliminar una copia de seguridad de Bigtable. |
bigtable.backups.get |
Obtiene información sobre una copia de seguridad de Bigtable. |
bigtable.backups.getIamPolicy |
Leer las listas de control de acceso (LCA) de una copia de seguridad. Se devuelven como políticas de gestión de identidades y accesos. |
bigtable.backups.list |
Muestra las copias de seguridad de Bigtable. |
bigtable.backups.restore |
Restaurar a partir de una copia de seguridad de Bigtable. |
bigtable.backups.testIamPermissions |
Obtiene los permisos de la persona que llama en una copia de seguridad específica. |
bigtable.backups.read |
Leer de una copia de seguridad de Bigtable. |
bigtable.backups.setIamPolicy |
Actualiza las LCAs de la copia de seguridad. |
bigtable.backups.update |
Modificar la fecha de vencimiento de una copia de seguridad de Bigtable. |
| Nombre del permiso del clúster | Descripción |
|---|---|
bigtable.clusters.create |
Crea un clúster de Bigtable. |
bigtable.clusters.delete |
Elimina un clúster de Bigtable. |
bigtable.clusters.get |
Obtiene información sobre un clúster de Bigtable. |
bigtable.clusters.list |
Lista los clústeres de Bigtable de una instancia. |
bigtable.clusters.update |
Actualiza la configuración de un clúster de Bigtable. |
| Nombre del permiso de tablets calientes | Descripción |
|---|---|
bigtable.hotTablets.list |
Lista las tablets activas de un clúster. |
| Nombre del permiso de instancia | Descripción |
|---|---|
bigtable.instances.create |
Crea una instancia de Bigtable. |
bigtable.instances.createTagBinding |
Crea una etiqueta. |
bigtable.instances.delete |
Elimina una instancia de Bigtable. |
bigtable.instances.deleteTagBinding |
Eliminar una etiqueta. |
bigtable.instances.get |
Obtener información sobre una instancia de Bigtable. |
bigtable.instances.getIamPolicy |
Leer las listas de control de acceso (LCA) de las instancias. Se devuelven como políticas de gestión de identidades y accesos. |
bigtable.instances.list |
Mostrar las instancias de Bigtable de un proyecto. |
bigtable.instances.listEffectiveTagBindings |
Lista de todas las etiquetas que están en vigor en una instancia. |
bigtable.instances.listTagBindings |
Lista las etiquetas de una instancia. |
bigtable.instances.ping |
Envía solicitudes de priming de canales. |
bigtable.instances.executeQuery |
Envía solicitudes ExecuteQuery y PrepareQuery a una instancia. |
bigtable.instances.setIamPolicy |
Actualiza las LCAs. |
bigtable.instances.update |
Actualiza la configuración de una instancia de Bigtable. |
| Nombre del permiso de Key Visualizer | Descripción |
|---|---|
bigtable.keyvisualizer.get |
Obtiene información de Key Visualizer sobre una tabla, incluidos metadatos sobre patrones de acceso y distribuciones de claves de fila. |
bigtable.keyvisualizer.list |
Lista la información de Key Visualizer disponible de una tabla. |
| Nombre del permiso de ubicación | Descripción |
|---|---|
bigtable.locations.list |
Lista de ubicaciones de Bigtable. |
| Nombre del permiso de la tabla | Descripción |
|---|---|
bigtable.tables.checkConsistency |
Comprueba si una tabla replicada está actualizada. |
bigtable.tables.create |
Crea una tabla. |
bigtable.tables.delete |
Elimina una tabla. |
bigtable.tables.generateConsistencyToken |
Genera un token para comprobar si una tabla replicada está actualizada. |
bigtable.tables.get |
Obtener información sobre una tabla, incluidas las familias de columnas y sus ajustes individuales. |
bigtable.tables.getIamPolicy |
Leer las LCAs de la tabla. Se devuelven como políticas de gestión de identidades y accesos. |
bigtable.tables.list |
Mostrar las tablas de una instancia. |
bigtable.tables.mutateRows |
Modificar las filas de una tabla o truncarla. |
bigtable.tables.readRows |
Leer filas de una tabla. Esto incluye información sobre la tabla, como las familias de columnas y sus ajustes individuales. |
bigtable.tables.sampleRowKeys |
Obtiene una muestra de las claves de las filas que se usan en una tabla. |
bigtable.tables.setIamPolicy |
Actualiza las listas de control de acceso de la tabla. |
bigtable.tables.undelete |
Recuperar una tabla eliminada. |
bigtable.tables.update |
Actualizar la configuración de una tabla, incluidas las familias de columnas y sus ajustes individuales. |
| Nombre del permiso de ubicación | Descripción |
|---|---|
bigtable.locations.list |
Lista de ubicaciones de Bigtable. |
| Nombre del permiso de vista autorizada | Descripción |
|---|---|
bigtable.authorizedViews.create |
Crea una vista autorizada. |
bigtable.authorizedViews.delete |
Elimina una vista autorizada. |
bigtable.authorizedViews.get |
Obtener información sobre una vista autorizada. |
bigtable.authorizedViews.getIamPolicy |
Consulta el control de acceso de una vista autorizada. Se devuelven como políticas de gestión de identidades y accesos. |
bigtable.authorizedViews.list |
Muestra las vistas autorizadas en una tabla. |
bigtable.authorizedViews.mutateRows |
Modificar filas en una vista autorizada. |
bigtable.authorizedViews.readRows |
Leer filas de una vista autorizada. |
bigtable.authorizedViews.sampleRowKeys |
Obtiene una muestra de las claves de las filas que se usan en una vista autorizada. |
bigtable.authorizedViews.setIamPolicy |
Actualiza las políticas de control de acceso de una vista autorizada. |
bigtable.authorizedViews.update |
Actualizar la configuración de una vista autorizada. |
| Nombre del permiso de vista materializada continua | Descripción |
|---|---|
bigtable.materializedViews.create |
Crea una vista materializada continua. |
bigtable.materializedViews.delete |
Elimina una vista materializada continua. |
bigtable.materializedViews.get |
Obtiene información sobre una vista materializada continua. |
bigtable.materializedViews.getIamPolicy |
Ver el control de acceso de una vista materializada continua. Se devuelven como políticas de gestión de identidades y accesos. |
bigtable.materializedViews.list |
Lista las vistas materializadas continuas de una instancia. |
bigtable.materializedViews.readRows |
Lee filas de una vista materializada continua. |
bigtable.materializedViews.sampleRowKeys |
Obtiene una muestra de las claves de fila que se usan en una vista materializada continua. |
bigtable.materializedViews.setIamPolicy |
Actualiza las políticas de control de acceso de una vista materializada continua. |
bigtable.materializedViews.update |
Actualiza los ajustes de una vista materializada continua. |
Funciones predefinidas
Cada rol predefinido es un conjunto de uno o varios permisos. Por ejemplo, roles/bigtable.reader proporciona acceso de solo lectura a la información sobre instancias, clústeres, tablas y familias de columnas de Bigtable, así como a los datos contenidos en tus tablas. Asigna roles a usuarios o grupos, lo que les permite realizar acciones en los recursos de tu proyecto.
En la siguiente tabla se enumeran los roles predefinidos de Bigtable, así como los permisos asociados a cada rol:
| Role | Permissions |
|---|---|
Bigtable Administrator( Administers all Bigtable instances within a project, including the data stored within tables. Can create new instances. Intended for project administrators. Lowest-level resources where you can grant this role:
|
|