Ir a la consola

Seguridad para las bibliotecas cliente del servidor

Cuando usas las bibliotecas cliente del servidor para Cloud Firestore, puedes administrar tus recursos con Identity and Access Management (IAM). IAM te permite brindar un acceso más detallado a recursos específicos de Google Cloud Platform y evita el acceso no deseado a otros recursos. Esta página describe los permisos de IAM y otras funciones para Cloud Firestore. Para ver una descripción detallada de Cloud IAM, lee la documentación de IAM.

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

IAM te permite configurar políticas para controlar quién (usuario) tiene qué (función) permiso para qué recursos. Las políticas de IAM asignan una o más funciones a un usuario, lo que le otorga ciertos permisos. Por ejemplo, puedes asignar la función datastore.indexAdmin a un usuario, lo que le permite crear, modificar, borrar, mostrar o ver índices.

Permisos y funciones

Esta sección resume los permisos y las funciones que admite Cloud Firestore.

Permisos necesarios

La siguiente tabla muestra los permisos que debe tener el emisor para ejecutar cada acción:

Método Permisos necesarios
projects.databases.documents
batchGet datastore.entities.get
beginTransaction datastore.databases.get
Actualización o transformación de commit con la condición previa exists configurada como false datastore.entities.create
Actualización o transformación de commit con la condición previa exists configurada como true datastore.entities.update
Actualización o transformación de commit sin condición previa datastore.entities.create
datastore.entities.update
Eliminación de commit datastore.entities.delete
createDocument datastore.entities.create
delete datastore.entities.delete
get datastore.entities.get
list datastore.entities.get
datastore.entities.list
listCollectionIds datastore.entities.list
patch datastore.entities.update
rollback datastore.databases.get
runQuery datastore.entities.get
datastore.entities.list
Actualización o transformación de write con la condición previa exists configurada como false datastore.entities.create
Actualización o transformación de write con la condición previa exists configurada como true datastore.entities.update
Actualización o transformación de write sin condición previa datastore.entities.create
datastore.entities.update
Eliminación de write datastore.entities.delete
projects.databases.indexes
create datastore.indexes.create
delete datastore.indexes.delete
get datastore.indexes.get
list datastore.indexes.list

Funciones

Con IAM, cada método de API en Cloud Firestore exige que la cuenta que envía la solicitud a la API tenga los permisos apropiados 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 primitivas, propietario, editor y lector, puedes asignar funciones de Cloud Firestore a los usuarios de tu proyecto.

La siguiente tabla muestra las funciones de IAM de Cloud Firestore. Puedes asignar varias funciones a un usuario, un grupo o una cuenta de servicio.

Función Permisos Descripción
roles/datastore.owner appengine.applications.get

datastore.*

resourcemanager.projects.get
resourcemanager.projects.list
Acceso completo a Cloud Firestore.
roles/datastore.user appengine.applications.get

datastore.databases.get
datastore.entities.*
datastore.indexes.list
datastore.namespaces.get
datastore.namespaces.list

resourcemanager.projects.get
resourcemanager.projects.list
Acceso de lectura y escritura a los datos de una base de datos de Cloud Firebase. Pensado para programadores de aplicaciones y cuentas de servicio.
roles/datastore.viewer appengine.applications.get

datastore.databases.get
datastore.databases.list
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 Cloud Firestore.
roles/datastore.indexAdmin appengine.applications.get

datastore.indexes.*

resourcemanager.projects.get
resourcemanager.projects.list
Acceso completo para administrar definiciones de índices.

Permisos

La siguiente tabla muestra los permisos que admite Cloud Firestore.

Nombre del permiso de la base de datos Descripción
datastore.databases.create Crea una base de datos.
datastore.databases.delete Borra una base de datos.
datastore.databases.get Inicia o revierte una transacción.
Lee metadatos de una base de datos.
datastore.databases.getIamPolicy Lee la política de IAM para una base de datos.
datastore.databases.list Muestra las bases de datos de un proyecto.
datastore.databases.setIamPolicy Actualiza la política de IAM para una base de datos.
datastore.databases.update Actualiza una base de datos.
Nombre del permiso de la entidad Descripción
datastore.entities.create Crea un documento.
datastore.entities.delete Borra un documento.
datastore.entities.get Lee un documento.
datastore.entities.list Muestra los nombres de los documentos de un proyecto.
(datastore.entities.get es obligatorio para acceder a los datos del documento).
datastore.entities.update Actualiza un documento.
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 de proyecto Descripción
resourcemanager.projects.get Busca recursos en el proyecto.
resourcemanager.projects.list Muestra los proyectos propios.

Latencia del cambio de función

Cloud Firestore almacena los permisos de IAM en caché durante 5 minutos, por lo que tarda hasta 5 minutos en que un cambio de función se aplique.

Administración de Cloud Firestore IAM

Puedes obtener y configurar políticas de IAM con la consola de la API de Google, la API de IAM o la herramienta de línea de comandos gcloud. Consulta cómo otorgar, cambiar y revocar el acceso de los miembros del proyecto para ver detalles.

¿Qué sigue?