Control de acceso

En esta página, se describen las opciones de control de acceso que están disponibles en Cloud Bigtable.

Descripción general

Bigtable usa Identity and Access Management (IAM) para el control de acceso.

En Bigtable puedes configurar el control de acceso a nivel del proyecto, la instancia y la tabla. Estos son algunos ejemplos del uso del control de acceso a nivel del proyecto:

  • Permitir a cualquier usuario leer las tablas del proyecto, pero no escribir en ellas.
  • Permitir a cualquier usuario leer las tablas del proyecto y escribir en ellas, pero no administrar las instancias.
  • Permitir a cualquier usuario leer las tablas del proyecto, escribir en ellas y administrar las instancias.

Estos son algunos ejemplos del uso del control de acceso a nivel de la instancia:

  • Permitir que un usuario lea desde cualquier tabla en una sola instancia de un proyecto de varias instancias
  • Permitir que un usuario administre solo una instancia en un proyecto de varias instancias

Los siguientes son algunos ejemplos del uso del control de acceso a nivel de tabla:

  • Permitir que un usuario escriba en una tabla, pero que no pueda leerla
  • Permitir que un usuario lea una tabla, pero que no pueda escribir en ella

Consulta la guía para desarrolladores de IAM a fin de obtener una descripción detallada de IAM y sus características. En particular, consulta Cómo otorgar, cambiar y revocar el acceso a los recursos.

En Bigtable, no puedes otorgar acceso a los siguientes tipos de miembros:

Para obtener una lista de los permisos y las funciones compatibles con Bigtable, consulta las siguientes secciones.

Habilita la API de Bigtable

Para ver y asignar funciones de IAM de Bigtable, debes habilitar la API de Bigtable en tu proyecto. No podrás ver las funciones de Bigtable en Cloud Console hasta que habilites la API.

Habilita la API

Permisos

En esta sección, se resumen los permisos que admite Bigtable.

Los permisos se usan para permitir que los usuarios realicen ciertas acciones en los recursos de Bigtable. Por ejemplo, los permisos bigtable.instances.list autorizan a los usuarios a enumerar todas las instancias de Bigtable dentro de un proyecto. Los permisos no se otorgan directamente a los usuarios; en cambio, se asigna a cada uno una función predefinida o función personalizada, que otorga uno o más permisos.

En las siguientes tablas, se enumeran los permisos de IAM asociados con Bigtable:

Nombre del permiso de ubicación Descripción
bigtable.locations.list Enumera ubicaciones de Bigtable
Nombre del permiso de instancias Descripción
bigtable.instances.create Crear una instancia de Bigtable.
bigtable.instances.delete Borra una instancia de Bigtable
bigtable.instances.get Obtén información sobre una instancia de Bigtable
bigtable.instances.getIamPolicy Leer las listas de control de acceso (LCA) de las instancias; se muestran como políticas de IAM
bigtable.instances.list Enumerar las instancias de Bigtable de un proyecto
bigtable.instances.setIamPolicy Actualizar las LCA
bigtable.instances.update Actualizar la configuración de una instancia de Bigtable
Nombre del permiso del perfil de la aplicación Descripción
bigtable.appProfiles.create Crea un perfil de la aplicación de Bigtable
bigtable.appProfiles.delete Borra un perfil de aplicación de Bigtable
bigtable.appProfiles.get Obtener información sobre un perfil de la aplicación de Bigtable
bigtable.appProfiles.list Enumerar los perfiles de la aplicación de Bigtable de una instancia
bigtable.appProfiles.update Actualizar la configuración de un perfil de la app de Bigtable
Nombre del permiso de las copias de seguridad Descripción
bigtable.backups.create Crea una copia de seguridad de Bigtable
bigtable.backups.get Obtén una copia de seguridad de Bigtable
bigtable.backups.list Enumera copias de seguridad de Bigtable
bigtable.backups.delete Borra una copia de seguridad de Bigtable
bigtable.backups.update Modificar el vencimiento de una copia de seguridad de Bigtable
bigtable.backups.restore Restablece 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 Borra un clúster de Bigtable
bigtable.clusters.get Obtén información sobre un clúster de Bigtable
bigtable.clusters.list Enumerar los clústeres de Bigtable de una instancia
bigtable.clusters.update Actualizar la configuración de un clúster de Bigtable
Nombre del permiso de la tabla Descripción
bigtable.tables.checkConsistency Revisar si una tabla replicada está actualizada
bigtable.tables.create Crear una tabla
bigtable.tables.delete Borrar una tabla
bigtable.tables.generateConsistencyToken Generar un token para revisar si la tabla replicada está actualizada
bigtable.tables.get Obtener información sobre una tabla, incluidas las familias de columnas y su configuración individual
bigtable.tables.getIamPolicy Leer las LCA de las tablas; se muestran como políticas de IAM
bigtable.tables.list Enumerar las tablas de una instancia
bigtable.tables.mutateRows Modificar las filas de una tabla o truncarla
bigtable.tables.readRows Leer las filas de una tabla
bigtable.tables.sampleRowKeys Obtener una muestra de las claves de fila que se usan en una tabla
bigtable.tables.setIamPolicy Actualizar las LCA de la tabla
bigtable.tables.update Actualizar la configuración de una tabla, incluidas las familias de columnas y su configuración individual

En la siguiente tabla, se enumeran los permisos de IAM asociados con Key Visualizer:

Nombre del permiso de Key Visualizer Descripción
bigtable.keyvisualizer.get Obtener información de Key Visualizer acerca de una tabla, incluidos los metadatos sobre los patrones de acceso y las distribuciones de claves de filas.
bigtable.keyvisualizer.list Ver la información disponible de una tabla de Key Visualizer.

Funciones predefinidas

Cada función predefinida es un conjunto de uno o más permisos. Por ejemplo, roles/bigtable.reader proporciona acceso de solo lectura a información sobre instancias, clústeres, tablas y familias de columnas de Bigtable, así como a los datos que contienen tus tablas. Asigna funciones a usuarios o grupos, lo que les permite realizar acciones en los recursos de tu proyecto.

En la siguiente tabla, se muestran las funciones predefinidas de Bigtable, incluida una lista de los permisos asociados con cada una:

Función Permisos Descripción
roles/bigtable.admin

Acceso a todas las características de Bigtable:

bigtable.*.*

Visualización del acceso a los grafos de supervisión en Cloud Console:

  • monitoring.metricDescriptors.get
  • monitoring.metricDescriptors.list
  • monitoring.timeSeries.list

Acceso a los metadatos a nivel de proyecto:

resourcemanager.projects.get

Administra todas las instancias de un proyecto, incluidos los datos almacenados en las tablas. Puede crear instancias nuevas. Está destinada a los administradores del proyecto. Incluye acceso a Key Visualizer.
roles/bigtable.user

Acceso de solo lectura a los metadatos de las instancias, los clústeres, las tablas y las familias de columnas:

  • bigtable.*.get
  • bigtable.*.list
  • bigtable.tables.checkConsistency
  • bigtable.tables.generateConsistencyToken

Acceso de lectura y escritura a las tablas:

  • bigtable.tables.mutateRows
  • bigtable.tables.readRows
  • bigtable.tables.sampleRowKeys

Visualización del acceso a los grafos de supervisión en Cloud Console:

  • monitoring.metricDescriptors.get
  • monitoring.metricDescriptors.list
  • monitoring.timeSeries.list

Acceso a los metadatos a nivel de proyecto:

resourcemanager.projects.get

Proporciona acceso de lectura y escritura a los datos almacenados en las tablas. Está destinada a los desarrolladores de aplicaciones o cuentas de servicio. Incluye acceso a Key Visualizer.
roles/bigtable.reader

Acceso de solo lectura a los metadatos de las instancias, los clústeres, las tablas y las familias de columnas:

  • bigtable.*.get
  • bigtable.*.list
  • bigtable.tables.checkConsistency
  • bigtable.tables.generateConsistencyToken

Acceso de solo lectura a las tablas:

  • bigtable.tables.readRows
  • bigtable.tables.sampleRowKeys

Visualización del acceso a los grafos de supervisión en Cloud Console:

  • monitoring.metricDescriptors.get
  • monitoring.metricDescriptors.list
  • monitoring.timeSeries.list

Acceso a los metadatos a nivel de proyecto:

resourcemanager.projects.get

Proporciona acceso de solo lectura a los datos almacenados en las tablas. Está destinada a científicos de datos, generadores de paneles y otras situaciones de análisis de datos. Incluye acceso a Key Visualizer.
roles/bigtable.viewer

Acceso de solo lectura a los metadatos de las instancias, los clústeres, las tablas y las familias de columnas:

  • bigtable.appProfiles.get
  • bigtable.appProfiles.list
  • bigtable.clusters.get
  • bigtable.clusters.list
  • bigtable.instances.get
  • bigtable.instances.list
  • bigtable.locations.list
  • bigtable.tables.checkConsistency
  • bigtable.tables.generateConsistencyToken
  • bigtable.tables.get
  • bigtable.tables.list

Visualización del acceso a los grafos de supervisión en Cloud Console:

  • monitoring.metricDescriptors.get
  • monitoring.metricDescriptors.list
  • monitoring.timeSeries.list

Acceso a los metadatos a nivel de proyecto:

resourcemanager.projects.get

No proporciona acceso a los datos. Diseñado como un conjunto mínimo de permisos a fin de acceder a Cloud Console para Bigtable. No incluye acceso a Key Visualizer.

Funciones personalizadas

Si las funciones predefinidas de Bigtable no satisfacen tus necesidades empresariales, puedes definir tus propias funciones personalizadas con los permisos que especifiques.

Si la función personalizada requiere compatibilidad de acceso con Cloud Console, debes identificar las tareas que realizarán los usuarios y asegurarte de que tengan los permisos necesarios para cada tarea, como se muestra en la siguiente tabla. Si una función personalizada no tiene todos los permisos necesarios para una tarea y un usuario intenta realizar esa tarea, Cloud Console no funcionará de forma correcta.

Tarea de Cloud Console Permisos necesarios
Acceso básico a Cloud Console
  • bigtable.appProfiles.get
  • bigtable.appProfiles.list
  • bigtable.clusters.get
  • bigtable.clusters.list
  • bigtable.instances.get
  • bigtable.instances.list
  • bigtable.locations.list
  • resourcemanager.projects.get
Crear una instancia o un clúster

Los permisos del acceso básico, además de los siguientes:

  • bigtable.clusters.create
  • bigtable.instances.create
Modificar una instancia o un clúster

Los permisos del acceso básico, además de los siguientes:

  • bigtable.clusters.update
  • bigtable.instances.update
Administrar la configuración de la replicación

Los permisos del acceso básico, además de los siguientes:

  • bigtable.appProfiles.create
  • bigtable.appProfiles.delete
  • bigtable.appProfiles.update
Borrar una instancia o un clúster

Los permisos del acceso básico, además de los siguientes:

  • bigtable.clusters.delete
  • bigtable.instances.delete
Ver grafos para supervisar una instancia

Los permisos del acceso básico, además de los siguientes:

  • monitoring.metricDescriptors.get
  • monitoring.metricDescriptors.list
  • monitoring.timeSeries.list

Administración de IAM a nivel de proyecto

A nivel de proyecto, puedes otorgar, cambiar y revocar funciones de IAM con Google Cloud Console, la API de IAM o la herramienta de línea de comandos de gcloud. Consulta Cómo otorgar, cambiar y revocar el acceso a los recursos para obtener instrucciones detalladas.

Administración de IAM a nivel de la instancia

En esta sección, se explica cómo administrar las funciones de IAM de Bigtable a nivel de la instancia.

Antes de comenzar

Antes de configurar las funciones de IAM a nivel de la instancia para un usuario, asegúrate de que este tenga, al menos, una de las siguientes funciones de IAM a nivel del proyecto:

  • Usuario de Bigtable sin acceso a datos (recomendada)
  • Lector de Bigtable
  • Usuario de Bigtable
  • Administrador de Bigtable

Selecciona una función a nivel de proyecto que no tenga más permisos que los que el usuario necesita en todas las instancias del proyecto. Por este motivo, en la mayoría de los casos, deberías otorgar la función Usuario de Bigtable sin acceso a datos.

Si el usuario no tiene al menos una de estas funciones a nivel de proyecto, no tendrá acceso a Bigtable a través de Cloud Console. Cloud Console requiere una de estas funciones a nivel de proyecto para poder recuperar información sobre instancias y clústeres en nombre del usuario.

Otorga funciones de IAM a nivel de instancia

A nivel de instancia, puedes otorgar cualquiera de las funciones predefinidas de Bigtable a un usuario o una cuenta de servicio. También puedes otorgar las funciones personalizadas que hayas definido.

Para otorgar una función predefinida o personalizada a un usuario o cuenta de servicio a nivel de instancia, sigue estos pasos:

Console

  1. Ve a la página Instancias de Bigtable en Cloud Console.

    Ir a la página Instancias

  2. Marca las casillas que aparecen al costado de las instancias cuyas funciones desees administrar. Aparecerá un panel de información.

  3. En el panel de información, haz clic en Permisos.

  4. En Agregar miembros, comienza a escribir la dirección de correo electrónico del usuario o la cuenta de servicio que desees agregar y haz clic en ella.

  5. Haz clic en la lista desplegable Seleccionar una función y, luego, en Bigtable, para seleccionar una función predefinida, o en Personalizada a fin de seleccionar una personalizada.

  6. Haz clic en el nombre de cada función que desees asignar.

  7. Haz clic en Agregar. Las funciones que indiques a nivel de instancia se otorgarán al usuario o a la cuenta de servicio.

gcloud

  1. Si no conoces 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
    
  2. Usa el comando bigtable instances set-iam-policy:

    gcloud bigtable instances set-iam-policy INSTANCE_ID POLICY_FILE
    

    Proporcione lo siguiente:

    • INSTANCE_ID: Identificador permanente de la instancia
    • POLICY_FILE: Ruta de acceso a un archivo local JSON o YAML que contiene una política de IAM válida.

Administración de IAM a nivel de tabla

En esta sección, se explica cómo administrar las funciones de IAM de Bigtable a nivel de tabla.

Antes de comenzar

Antes de establecer las funciones de IAM a nivel de tabla para un usuario, asegúrate de que ese usuario tenga al menos una de las siguientes funciones de IAM a nivel de proyecto:

  • Usuario de Bigtable sin acceso a datos (recomendada)
  • Lector de Bigtable
  • Usuario de Bigtable
  • Administrador de Bigtable

Elige una función a nivel de proyecto que no tenga más permisos de los que en realidad necesita el usuario. Por este motivo, debes otorgar la función de usuario de Bigtable sin acceso a datos en la mayoría de los casos.

Si el usuario no tiene al menos una de estas funciones a nivel de proyecto, no tendrá acceso a Bigtable a través de Cloud Console. Cloud Console requiere una de estas funciones a nivel de proyecto para poder recuperar información sobre instancias, clústeres y tablas.

Otorga funciones de IAM a nivel de tabla

A nivel de tabla, puedes otorgar cualquiera de las funciones predefinidas de Bigtable a una cuenta de usuario o de servicio. También puedes otorgar las funciones personalizadas que hayas definido.

Para otorgar una función predefinida o personalizada a una cuenta de usuario o de servicio a nivel de tabla, sigue estos pasos:

Console

  1. Ve a la página Instancias de Bigtable en Cloud Console.

    Ir a la página Instancias

  2. Haz clic en el nombre de la instancia que contiene la tabla cuya función de IAM deseas configurar.

  3. Selecciona Tablas en el panel de navegación izquierdo.

  4. Marca las casillas que aparecen junto a las tablas cuyas funciones desees administrar. Aparecerá un panel de información.

  5. En el panel de información, haz clic en Permisos.

  6. En Agregar miembros, comienza a escribir la dirección de correo electrónico del usuario o la cuenta de servicio que desees agregar y haz clic en ella.

  7. Haz clic en la lista desplegable Seleccionar una función y, luego, en Bigtable, para seleccionar una función predefinida, o en Personalizada a fin de seleccionar una personalizada.

  8. Haz clic en el nombre de cada función que desees asignar.

  9. Haz clic en Agregar. Las funciones que indiques a nivel de tabla se otorgarán al usuario o a la cuenta de servicio.

gcloud

  1. Si no conoces 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
    
  2. Si no conoces los ID de clúster de la instancia, usa el comando bigtable clusters list para ver una lista de clústeres de la instancia:

    gcloud bigtable clusters list --instances=INSTANCE_ID
    
  3. Usa el comando bigtable instances tables set-iam-policy:

    gcloud bigtable instances tables set-iam-policy TABLE_ID \
        --instance=INSTANCE_ID POLICY_FILE
    

    Proporcione lo siguiente:

    • INSTANCE_ID: Identificador permanente de la instancia
    • POLICY_FILE: Ruta de acceso a un archivo local JSON o YAML que contiene una política de IAM válida.

Condiciones de IAM

Las condiciones de IAM te permiten definir y aplicar el control de acceso condicional basado en atributos para algunos recursos de Google Cloud, incluidos los recursos de Bigtable.

En Bigtable, puedes aplicar el acceso condicional según los siguientes atributos:

  • Atributos de fecha y hora: Se usan para configurar el acceso temporal (que vence), 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 especificada.
  • Atributos de recursos: Se usa para configurar el acceso condicional según el nombre, el tipo o los atributos del servicio de recursos. En Bigtable, puedes usar atributos de instancias, clústeres y tablas para configurar el acceso condicional. Por ejemplo, puedes permitir que un usuario administre tablas solo en tablas que comienzan con un prefijo específico o puedes permitir que un usuario acceda solo a una tabla específica.

Para obtener más información sobre las Condiciones de IAM, consulta Descripción general de las Condiciones.

¿Qué sigue?

Obtén más información sobre IAM.