Administración de identidades y accesos (IAM)

Google Cloud Platform ofrece IAM (administración de identidades y accesos), que 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. En esta página, se describen las funciones de IAM en Cloud Firestore en modo Datastore. 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 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 y le permite crear, modificar, borrar, enumerar o ver índices.

Permisos y funciones

En esta sección, se resumen los permisos y las funciones que admite Cloud 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 o actualización 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)

Si quieres realizar una consulta relacionada con metadatos o estadísticas, revisa 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)

Si quieres realizar una consulta relacionada con metadatos o estadísticas, revisa Permisos necesarios para metadatos y estadísticas.

Permisos necesarios para metadatos y estadísticas

La siguiente tabla muestra 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 categorías que coincidan con __Stat_*__ datastore.statistics.get
runQuery que utiliza categorías con nombres que coinciden con __Stat_*__ datastore.statistics.get
datastore.statistics.list
runQuery con la categoría __namespace__ datastore.namespaces.get
datastore.namespaces.list

Funciones

Con la IAM, cada método de API de Cloud 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 Cloud Firestore en modo Datastore a los usuarios de tu proyecto.

En la siguiente tabla, se enumeran las funciones de IAM de Cloud 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

La siguiente tabla enumera los permisos que admite Cloud 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 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 Muestra las claves de las entidades en un proyecto.
(Es obligatorio datastore.entities.get 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 Muestra 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 obligatorias para crear una instancia de base de datos del modo Datastore

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

Las bases de datos del modo Datastore requieren una aplicación de App Engine activa. Si el proyecto no tiene una aplicación, Cloud Firestore en modo Datastore crea una para 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

Cloud Firestore en modo Datastore almacena en caché los permisos de IAM por 5 minutos, por lo que tomará hasta 5 minutos para que un cambio de función sea efectivo.

Administrar IAM

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

Pasos siguientes

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de Cloud Datastore