Esta página se ha traducido con Cloud Translation API.
Switch to English

Identity and Access Management (IAM)

Google Cloud ofrece la función de administración de identidades y accesos (IAM), que te permite brindar acceso más detallado a recursos específicos de Google Cloud y evita el acceso no deseado a otros recursos. En esta página, se describen las funciones de IAM para Firestore en modo Datastore. Para ver una descripción detallada de IAM, lee la documentación de IAM.

IAM te permite adoptar el principio de seguridad de menor privilegio, de manera que solo otorgas el acceso necesario a tus recursos.

IAM te permite controlar las funciones de los usuarios y los permisos para los recursos mediante la configuración de políticas de IAM. Las políticas de IAM asignan funciones específicas a un usuario, lo que le otorga ciertos permisos. Por ejemplo, puedes otorgar la función datastore.indexAdmin a un usuario, de modo que pueda crear, modificar, borrar, enumerar o ver índices.

Permisos y funciones

En esta sección, se resumen los permisos y las funciones que admite Firestore en modo Datastore.

Permisos necesarios

En las siguientes tablas, se enumeran los permisos que debe tener el emisor para llamar a cada método:

Método Permisos necesarios
allocateIds datastore.entities.allocateIds
beginTransaction datastore.databases.get
commit para una inserción datastore.entities.create
commit para una inserción y actualización simultáneas datastore.entities.create
datastore.entities.update
commit para una actualización datastore.entities.update
commit para una eliminación datastore.entities.delete
commit para una búsqueda datastore.entities.get

Si quieres realizar una búsqueda relacionada con metadatos o estadísticas, consulta Permisos necesarios para metadatos y estadísticas.
commit para una consulta datastore.entities.list
datastore.entities.get (si la consulta no es una consulta de solo claves)

Para una consulta relacionada con metadatos o estadísticas, consulta Permisos necesarios para metadatos y estadísticas.
lookup datastore.entities.get

Si quieres realizar una búsqueda relacionada con metadatos o estadísticas, consulta Permisos necesarios para metadatos y estadísticas.
rollback datastore.databases.get
runQuery datastore.entities.list
datastore.entities.get (si la consulta no es una consulta de solo claves)

Para una consulta relacionada con metadatos o estadísticas, consulta Permisos necesarios para metadatos y estadísticas.
runQuery con una consulta sin categoría datastore.entities.get
datastore.entities.list
datastore.statistics.get
datastore.statistics.list

Permisos necesarios para metadatos y estadísticas

En la siguiente tabla, se muestran los permisos que debe tener el emisor para llamar a los métodos en Metadatos y Estadísticas.

Método Permisos necesarios
lookup de entidades con nombres de tipos que coincidan con __Stat_*__ datastore.statistics.get
runQuery que utiliza tipos con nombres que coinciden con __Stat_*__ datastore.statistics.get
datastore.statistics.list
runQuery que utiliza el tipo __namespace__ datastore.namespaces.get
datastore.namespaces.list

Funciones

Con la IAM, cada método de la API de Datastore requiere que la cuenta que realiza la solicitud a la API tenga los permisos adecuados para usar el recurso. Para otorgar los permisos, se configuran políticas que asignan funciones a un usuario, un grupo o una cuenta de servicio. Además de las funciones básicas, Propietario, Editor y Visualizador, puedes otorgar funciones de Firestore en modo Datastore a los usuarios de tu proyecto.

En la siguiente tabla, se enumeran las funciones de IAM de Firestore en modo Datastore. Puedes asignar varias funciones a un usuario, un grupo o una cuenta de servicio.

Función Permisos Descripción
roles/datastore.owner
con
roles/appengine.appAdmin
appengine.applications.get
datastore.databases.*
datastore.entities.*
datastore.indexes.*
datastore.namespaces.*
datastore.operations.*
datastore.statistics.*
resourcemanager.projects.get
resourcemanager.projects.list
Acceso completo a la instancia de la base de datos
roles/datastore.owner
sin
roles/appengine.appAdmin
appengine.applications.get
datastore.databases.*
datastore.entities.*
datastore.indexes.*
datastore.namespaces.*
datastore.operations.*
datastore.statistics.*
resourcemanager.projects.get
resourcemanager.projects.list
Acceso completo a la instancia de la base de datos, excepto que la cuenta de usuario, grupo o servicio no puede:
roles/datastore.user appengine.applications.get
datastore.databases.get
datastore.entities.*
datastore.indexes.list
datastore.namespaces.get
datastore.namespaces.list
datastore.statistics.get
datastore.statistics.list
resourcemanager.projects.get
resourcemanager.projects.list
Acceso de lectura y escritura a los datos de una base de datos del modo Datastore. Pensado para programadores de aplicaciones y cuentas de servicio.
roles/datastore.viewer appengine.applications.get
datastore.databases.get
datastore.entities.get
datastore.entities.list
datastore.indexes.get
datastore.indexes.list
datastore.namespaces.get
datastore.namespaces.list
datastore.statistics.get
datastore.statistics.list
resourcemanager.projects.get
resourcemanager.projects.list
Acceso de lectura a todos los recursos de la base de datos del modo Datastore
roles/datastore.importExportAdmin appengine.applications.get
datastore.databases.export
datastore.databases.import
datastore.operations.cancel
datastore.operations.get
datastore.operations.list
resourcemanager.projects.get
resourcemanager.projects.list
Acceso total para administrar importaciones y exportaciones
roles/datastore.indexAdmin appengine.applications.get
datastore.indexes.*
resourcemanager.projects.get
resourcemanager.projects.list
Acceso completo para administrar definiciones de índices

Permisos

En la siguiente tabla, se enumeran los permisos que admite Firestore en modo Datastore.

Nombre del permiso de la base de datos Descripción
datastore.databases.export Exporta entidades de una base de datos.
datastore.databases.get Inicia o revierte una transacción.
Lee los metadatos de una base de datos.
datastore.databases.import Importa entidades a una base de datos.
Nombre del permiso de la entidad Descripción
datastore.entities.allocateIds Asigna los ID para las claves con una ruta de clave incompleta.
datastore.entities.create Crea una entidad.
datastore.entities.delete Borra una entidad.
datastore.entities.get Lee una entidad.
datastore.entities.list Enumera las claves de las entidades de un proyecto.
(datastore.entities.get es obligatorio para acceder a los datos de la entidad).
datastore.entities.update Actualiza una entidad.
Nombre del permiso de índice Descripción
datastore.indexes.create Crea un índice.
datastore.indexes.delete Borra un índice.
datastore.indexes.get Lee metadatos de un índice.
datastore.indexes.list Muestra los índices de un proyecto.
datastore.indexes.update Actualiza un índice.
Nombre del permiso del espacio de nombres Descripción
datastore.namespaces.get Recupera metadatos de un espacio de nombres.
datastore.namespaces.list Muestra los espacios de nombres de un proyecto.
Nombre del permiso de la operación Descripción
datastore.operations.cancel Cancela una operación de larga duración.
datastore.operations.delete Borra una operación de larga duración.
datastore.operations.get Obtiene el último estado de una operación de larga duración.
datastore.operations.list Muestra las operaciones de larga duración.
Nombre del permiso de proyecto Descripción
resourcemanager.projects.get Busca recursos en el proyecto.
resourcemanager.projects.list Muestra los proyectos propios.
Nombre del permiso de las estadísticas Descripción
datastore.statistics.get Recupera las entidades de las estadísticas.
datastore.statistics.list Enumera las claves de las entidades de las estadísticas.
(datastore.statistics.get es obligatorio para acceder a los datos de las entidades de las estadísticas).
Nombre del permiso de App Engine Descripción
appengine.applications.get Acceso de solo lectura a toda la configuración de las aplicaciones de App Engine.

Funciones necesarias para crear una instancia de base de datos del modo Datastore

Para crear una nueva instancia de base de datos de modo Datastore, necesitas la función de propietario o la función de propietario de Datastore.

Las bases de datos del modo Datastore requieren una aplicación de App Engine activa. Si el proyecto no tiene una aplicación, Firestore en modo Datastore creará una por ti. En ese caso, necesitas el permiso appengine.applications.create de la función de propietario o de una función personalizada de IAM que contenga el permiso.

Latencia del cambio de función

Firestore en modo Datastore almacena en caché los permisos de IAM durante 5 minutos, por lo que el cambio de función tomará hasta 5 minutos en aplicarse.

Administra IAM

Puedes obtener y establecer políticas de IAM mediante Google Cloud Console, los métodos de IAM o la herramienta de línea de comandos de gcloud.

¿Qué sigue?