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:
|
|
Bigtable Reader( Provides read-only access to the data stored within Bigtable tables. Intended for data scientists, dashboard generators, and other data-analysis scenarios. Lowest-level resources where you can grant this role:
|
|
Bigtable User( Provides read-write access to the data stored within Bigtable tables. Intended for application developers or service accounts. Lowest-level resources where you can grant this role:
|
|
Bigtable Viewer( Provides no data access. Intended as a minimal set of permissions to access the Google Cloud console for Bigtable. Lowest-level resources where you can grant this role:
|
|
Roles personalizados
Si los roles predefinidos de Bigtable no se ajustan a tus requisitos empresariales, puedes definir tus propios roles personalizados con los permisos que especifiques.
Si tu rol personalizado debe admitir el acceso a la consola, debes identificar las tareas que realizarán los usuarios y, a continuación, asegurarte de que el rol personalizado tenga los permisos necesarios para cada tarea, tal como se muestra en la siguiente tabla. Google Cloud Si un rol personalizado no tiene todos los permisos necesarios para una tarea y un usuario intenta realizarla, la Google Cloud consola no funcionará correctamente.
Google Cloud tarea de consola | Permisos obligatorios |
---|---|
Acceso básico a la consola Google Cloud |
|
Crear una instancia o un clúster |
Permisos de acceso básicos, además de lo siguiente:
|
Modificar una instancia o un clúster |
Permisos de acceso básicos, además de lo siguiente:
|
Gestionar la configuración de la replicación |
Permisos de acceso básicos, además de lo siguiente:
|
Eliminar una instancia o un clúster |
Permisos de acceso básicos, además de lo siguiente:
|
Monitorizar una instancia viendo gráficos |
Permisos de acceso básicos, además de lo siguiente:
|
Crear y actualizar una tabla |
Permisos de acceso básicos, además de lo siguiente:
|
Restaurar una copia de seguridad |
Permisos de acceso básicos, además de lo siguiente:
|
Gestión de IAM
En esta sección se explica cómo gestionar los roles de gestión de identidades y accesos y los permisos relacionados a nivel de proyecto, instancia, tabla y copia de seguridad.
Gestión de identidades y accesos a nivel de proyecto
A nivel de proyecto, puedes conceder, cambiar y revocar roles de gestión de identidades y accesos mediante laGoogle Cloud consola, la API de gestión de identidades y accesos o la CLI de Google Cloud. Consulta Conceder, cambiar y revocar el acceso para obtener instrucciones detalladas.
Una vez que hayas creado un proyecto, podrás asignar roles de IAM a nivel de proyecto a los usuarios en función de los niveles de acceso específicos.
Roles obligatorios
Antes de definir los roles de gestión de identidades y accesos a nivel de instancia, nivel de tabla, nivel de copia de seguridad, nivel de vista autorizada o nivel de vista materializada continua para un usuario, asegúrate de que tenga al menos uno de los siguientes roles de gestión de identidades y accesos a nivel de proyecto:
- Visor de Bigtable (recomendado)
- Lector de Bigtable
- Usuario de Bigtable
- Administrador de Bigtable
Elige un rol a nivel de proyecto que no tenga más permisos de los que el usuario realmente necesita en todas las instancias, tablas, copias de seguridad, vistas autorizadas o vistas materializadas continuas del proyecto. Por este motivo, debe asignar el rol de lector de Bigtable en casi todos los casos.
Si el usuario no tiene al menos uno de estos roles a nivel de proyecto, no tendrá acceso a Bigtable a través de la consola de Google Cloud . La consola Google Cloud requiere uno de estos roles a nivel de proyecto para poder obtener información sobre instancias, clústeres, tablas o copias de seguridad en nombre del usuario.
Conceder roles de gestión de identidades y accesos a nivel de instancia
A nivel de instancia, puedes asignar cualquiera de los roles predefinidos de Bigtable a un usuario o a una cuenta de servicio. También puedes conceder cualquier rol personalizado que hayas definido.
Para asignar un rol predefinido o personalizado a un usuario o una cuenta de servicio a nivel de instancia, sigue estos pasos:
Consola
- Ve a la página Instancias de Bigtable de laGoogle Cloud consola.
- Marca las casillas situadas junto a las instancias cuyos roles quieras gestionar. Aparecerá un panel informativo.
- En el panel de información, haz clic en Permisos.
- En Añadir principales, empieza a escribir la dirección de correo del usuario o de la cuenta de servicio que quieras añadir y, a continuación, haz clic en ella.
- Haz clic en la lista desplegable Seleccionar un rol y, a continuación, en Bigtable para seleccionar un rol predefinido o en Personalizado para seleccionar un rol personalizado.
- Haz clic en el nombre de cada rol que quieras asignar.
- Haz clic en Añadir. Se asignan al usuario o a la cuenta de servicio los roles que hayas especificado a nivel de instancia.
gcloud
-
Si no sabes el ID de la instancia, usa el comando
bigtable instances list
para ver una lista de las instancias de tu proyecto:
gcloud bigtable instances list
- Usa el comando
bigtable instances set-iam-policy
:
gcloud bigtable instances set-iam-policy
INSTANCE_ID
POLICY_FILE
Proporciona lo siguiente:
+ <var>INSTANCE_ID</var>:
The permanent identifier for the instance.
+ <var>POLICY_FILE</var>: Path to a local JSON or YAML file containing
a [valid IAM policy][iam-policy].
Conceder roles de gestión de identidades y accesos a nivel de tabla
A nivel de tabla, puede asignar cualquiera de los roles predefinidos de Bigtable a un usuario o una cuenta de servicio. También puedes conceder cualquier rol personalizado que hayas definido.
Para asignar un rol predefinido o personalizado a un usuario o una cuenta de servicio a nivel de tabla, sigue estos pasos:
Consola
- Ve a la página Instancias de Bigtable de laGoogle Cloud consola.
Haga clic en el nombre de la instancia que contiene la tabla cuyo IAM va a configurar.
Seleccione Tablas en el panel de navegación de la izquierda.
Marca las casillas situadas junto a las tablas cuyos roles quieras gestionar. Aparecerá un panel informativo.
En el panel de información, haz clic en Permisos.
En Añadir principales, empieza a escribir la dirección de correo del usuario o de la cuenta de servicio que quieras añadir y, a continuación, haz clic en ella.
Haz clic en la lista desplegable Seleccionar un rol y, a continuación, en Bigtable para seleccionar un rol predefinido o en Personalizado para seleccionar un rol personalizado.
Haz clic en el nombre de cada rol que quieras asignar.
Haz clic en Añadir. Se asignan al usuario o a la cuenta de servicio los roles que hayas especificado a nivel de tabla.
gcloud
-
Si no sabes el ID de la instancia, usa el comando
bigtable instances list
para ver una lista de las instancias de tu proyecto:
gcloud bigtable instances list
- Si no conoces los IDs de tabla de la instancia, usa el comando
bigtable instances tables list
para ver una lista de las tablas de la instancia.
gcloud bigtable instances tables list --instances=INSTANCE_ID
Proporciona lo siguiente:
+ <var>INSTANCE_ID</var>:
The permanent identifier for the instance.
- Usa el comando
bigtable instances tables set-iam-policy
:
gcloud bigtable instances tables set-iam-policy \TABLE_ID
--instance=INSTANCE_ID
POLICY_FILE
Proporciona lo siguiente:
+ <var>TABLE_ID</var>: The permanent identifier for the table.
+ <var>INSTANCE_ID</var>:
The permanent identifier for the instance.
+ <var>POLICY_FILE</var>: Path to a local JSON or YAML file containing
a [valid IAM policy][iam-policy].
Conceder roles de gestión de identidades y accesos a nivel de copia de seguridad
En el nivel de la copia de seguridad, puedes asignar a un usuario o a una cuenta de servicio cualquiera de los roles predefinidos de Bigtable. También puedes conceder cualquier rol personalizado que hayas definido.
Para asignar un rol predefinido o personalizado a un usuario o una cuenta de servicio a nivel de copia de seguridad, sigue estos pasos:
gcloud
-
Si no sabes el ID de la instancia, usa el comando
bigtable instances list
para ver una lista de las instancias de tu proyecto:
gcloud bigtable instances list
- Si no conoces los IDs de las copias de seguridad de una instancia, usa el comando
bigtable instances backups list
para ver una lista de las copias de seguridad de la instancia.
gcloud bigtable backups list --instances=INSTANCE_ID
Proporciona lo siguiente:
+ <var>INSTANCE_ID</var>:
The permanent identifier for the instance.
- Usa el comando
gcloud bigtable backups set-iam-policy
:
gcloud bigtable backups set-iam-policy BACKUP_ID
--instance=INSTANCE_ID
--cluster=CLUSTER_ID
POLICY_FILE
Proporciona lo siguiente:
+ <var>BACKUP_ID</var>: The permanent identifier for the backup.
+ <var>INSTANCE_ID</var>:
The permanent identifier for the instance.
+ `TABLE_ID`: The permanent identifier for the table
+ `POLICY_FILE`: Path to a local JSON or YAML file containing a [valid
IAM policy][iam-policy].
Conceder roles de gestión de identidades y accesos a nivel de vista autorizada
A nivel de vista autorizada, puede conceder a un usuario o a una cuenta de servicio cualquiera de los roles predefinidos de Bigtable. También puedes conceder cualquier rol personalizado que hayas definido.
Para asignar un rol predefinido o personalizado a un usuario o una cuenta de servicio a nivel de vista autorizada, siga estos pasos:
Consola
- Abre la lista de instancias de Bigtable en la Google Cloud consola.
- Haga clic en la instancia que contenga la vista autorizada.
- En el panel de navegación, haga clic en Bigtable Studio.
- En el explorador, despliega la tabla y Vistas autorizadas.
- Junto a la vista autorizada que quieras modificar, haz clic en el menú de acciones more_vert y, a continuación, en Dar acceso.
- Añade al menos una principal y selecciona el rol que se le debe asignar a esa principal o grupo de principales.
- Opcional: Para conceder acceso a otros roles, haz clic en Añadir otro rol y, a continuación, introduce el principal y el rol de cada rol adicional.
- Haz clic en Guardar.
gcloud
-
Si no sabes el ID de la instancia, usa el comando
bigtable instances list
para ver una lista de las instancias de tu proyecto:
gcloud bigtable instances list
- Si no conoces los IDs de tabla de la instancia, usa el comando
bigtable instances tables list
para ver una lista de las tablas de la instancia.
gcloud bigtable instances tables list --instances=INSTANCE_ID
- Si no sabes el ID de la vista, usa el comando
bigtable authorized-views list
para ver una lista de todas las vistas autorizadas de la tabla.
gcloud bigtable instances tables authorized-views list
--instance=INSTANCE_ID
--table=TABLE_ID
- Usa el comando
bigtable authorized-views set-iam-policy
:
gcloud bigtable authorized-views set-iam-policy TABLE_ID
AUTHORIZED_VIEW_ID --instance=INSTANCE_ID POLICY_FILE
Proporciona lo siguiente:
+ `INSTANCE_ID`:
The permanent identifier for the instance.
+ `TABLE_ID`: The permanent identifier for the table
+ `AUTHORIZED_VIEW_ID`: The permanent identifier for the view
+ `POLICY_FILE`: Path to a local JSON or YAML file containing a [valid
IAM policy][iam-policy].
Condiciones de gestión de identidades y accesos
Las condiciones de gestión de identidades y accesos te permiten definir y aplicar controles de acceso condicionales y basados en atributos a algunos Google Cloud recursos, incluidos los de Bigtable.
En Bigtable, puedes aplicar el acceso condicional en función de los siguientes atributos:
- Atributos de fecha y hora: se usan para definir el acceso temporal (con fecha de vencimiento), programado o de duración limitada a los recursos de Bigtable. Por ejemplo, puedes permitir que un usuario acceda a una tabla hasta una fecha concreta.
- Atributos de recursos: se usan para configurar el acceso condicional en función de un nombre, un tipo o unos atributos de servicio de recursos. En Bigtable, puedes usar atributos de instancias, clústeres, tablas, copias de seguridad y vistas autorizadas para configurar el acceso condicional. Por ejemplo, puedes permitir que un usuario gestione solo las tablas que empiecen por un prefijo específico o que acceda únicamente a una tabla concreta.
Para obtener más información sobre las condiciones de gestión de identidades y accesos, consulta la descripción general de las condiciones.
Siguientes pasos
Obtén más información sobre la gestión de identidades y accesos.