Gestion de l'authentification et des accès (IAM)

Google Cloud Platform offre la gestion de l'authentification et des accès (IAM), qui vous permet de définir de manière plus précise l'accès à des ressources spécifiques de Google Cloud Platform et d'empêcher tout accès indésirable à d'autres ressources. Cette page décrit les rôles IAM compatibles avec Cloud Firestore en mode Datastore. Pour une description détaillée de Cloud IAM, consultez la documentation IAM.

IAM vous permet d'adopter le principe de sécurité du moindre privilège afin de n'accorder que l'accès nécessaire à vos ressources.

Grâce à Cloud IAM, vous pouvez contrôler qui (utilisateurs) dispose de quelles autorisations d'accès (rôles) à quelles ressources en définissant des stratégies IAM. Ces stratégies permettent d'attribuer un ou plusieurs rôles spécifiques à un utilisateur afin de lui accorder certaines autorisations. Par exemple, vous pouvez attribuer le rôle datastore.indexAdmin à un utilisateur. Il sera ainsi autorisé à créer, modifier, supprimer, répertorier ou afficher des index.

Autorisations et rôles

Cette section présente un récapitulatif des autorisations et des rôles disponibles pour Cloud Firestore en mode Datastore.

Autorisations requises

Le tableau suivant répertorie les autorisations dont l'appelant doit disposer pour appeler chaque méthode :

Méthode Autorisation(s) requise(s)
allocateIds datastore.entities.allocateIds
beginTransaction datastore.databases.get
commit pour une opération "insert" (insertion) datastore.entities.create
commit pour une opération "upsert" (écrasement) datastore.entities.create
datastore.entities.update
commit pour une opération "update" (mise à jour) datastore.entities.update
commit pour une opération "delete" (suppression) datastore.entities.delete
commit pour une opération "lookup" (recherche) datastore.entities.get

Pour une recherche liée aux métadonnées ou aux statistiques, consultez la section Autorisations requises pour les métadonnées et les statistiques.
commit pour une opération "query" (requête) datastore.entities.list
datastore.entities.get (si la requête n'est pas une requête de type "keys-only").

Pour une requête liée aux métadonnées ou aux statistiques, consultez la section Autorisations requises pour les métadonnées et les statistiques.
lookup datastore.entities.get

Pour une recherche liée aux métadonnées ou aux statistiques, consultez la section Autorisations requises pour les métadonnées et les statistiques.
rollback datastore.databases.get
runQuery datastore.entities.list
datastore.entities.get (si la requête n'est pas une requête de type "keys-only").

Pour une requête liée aux métadonnées ou aux statistiques, consultez la section Autorisations requises pour les métadonnées et les statistiques.

Autorisations requises pour les métadonnées et les statistiques

Le tableau suivant répertorie les autorisations dont l'appelant doit disposer pour appeler des méthodes sur les métadonnées et les statistiques.

Méthode Autorisation(s) requise(s)
lookup d'entités dont les noms de genre correspondent à __Stat_*__ datastore.statistics.get
runQuery utilisant des genres dont les noms correspondent à __Stat_*__ datastore.statistics.get
datastore.statistics.list
runQuery utilisant le genre __namespace__ datastore.namespaces.get
datastore.namespaces.list

Rôles

Avec IAM, toutes les méthodes d'API de Cloud Datastore requièrent que le compte effectuant la requête API dispose des autorisations appropriées pour utiliser la ressource. Ces autorisations sont attribuées en définissant des stratégies qui accordent des rôles à un utilisateur, un groupe ou un compte de service. En plus des rôles primitifs (Propriétaire, Éditeur et Lecteur), vous pouvez attribuer les rôles Cloud Firestore en mode Datastore suivants aux utilisateurs de votre projet.

Le tableau suivant répertorie les rôles IAM compatibles avec Cloud Firestore en mode Datastore. Vous pouvez attribuer plusieurs rôles à un utilisateur, un groupe ou un compte de service.

Rôle Autorisations Description
roles/datastore.owner
par
roles/appengine.appAdmin
appengine.applications.get
datastore.databases.*
datastore.entities.*
datastore.indexes.*
datastore.namespaces.*
datastore.operations.*
datastore.statistics.*
resourcemanager.projects.get
resourcemanager.projects.list
Accès complet à l'instance de base de données.
roles/datastore.owner
sans
roles/appengine.appAdmin
appengine.applications.get
datastore.databases.*
datastore.entities.*
datastore.indexes.*
datastore.namespaces.*
datastore.operations.*
datastore.statistics.*
resourcemanager.projects.get
resourcemanager.projects.list
Accès complet à l'instance de base de données, en restreignant les opérations suivantes pour les utilisateurs, les groupes ou les comptes de service :
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
Accès en lecture/écriture aux données d'une base de données en mode Datastore. Destiné aux développeurs d'applications et aux comptes de service.
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
Accès en lecture à toutes les ressources d'une base de données en mode 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
Accès complet pour gérer les importations et les exportations.
roles/datastore.indexAdmin appengine.applications.get
datastore.indexes.*
resourcemanager.projects.get
resourcemanager.projects.list
Accès complet pour gérer les définitions des index.

Autorisations

Le tableau suivant répertorie les autorisations acceptées par Cloud Firestore en mode Datastore.

Nom de l'autorisation pour la base de données Description
datastore.databases.export Exporte des entités depuis une base de données.
datastore.databases.get Commence ou annule une transaction.
Lit les métadonnées depuis une base de données.
datastore.databases.import Importe des entités vers une base de données.
Nom de l'autorisation pour l'entité Description
datastore.entities.allocateIds Attribue des ID aux clés avec un chemin d'accès de clé incomplet.
datastore.entities.create Crée une entité.
datastore.entities.delete Supprime une entité.
datastore.entities.get Lit une entité.
datastore.entities.list Répertorie les clés d'entités dans un projet.
(datastore.entities.get est requis pour accéder aux données d'entité).
datastore.entities.update Met à jour une entité.
Nom de l'autorisation pour l'index Description
datastore.indexes.create Crée un index.
datastore.indexes.delete Supprime un index.
datastore.indexes.get Lit les métadonnées depuis un index.
datastore.indexes.list Répertorie les index dans un projet.
datastore.indexes.update Met à jour un index.
Nom de l'autorisation pour l'espace de noms Description
datastore.namespaces.get Récupère les métadonnées depuis un espace de noms.
datastore.namespaces.list Répertorie les espaces de noms dans un projet.
Nom de l'autorisation pour l'opération Description
datastore.operations.cancel Annule une opération de longue durée.
datastore.operations.delete Supprime une opération de longue durée.
datastore.operations.get Récupère le dernier état d'une opération de longue durée.
datastore.operations.list Répertorie les opérations de longue durée.
Nom de l'autorisation pour le projet Description
resourcemanager.projects.get Parcourt les ressources du projet.
resourcemanager.projects.list Répertorie les projets dont vous êtes propriétaire.
Nom de l'autorisation pour les statistiques Description
datastore.statistics.get Récupère des entités statistiques.
datastore.statistics.list Répertorie les clés d'entités statistiques.
(datastore.statistics.get est requis pour accéder aux données d'entités statistiques).
Nom de l'autorisation pour App Engine Description
appengine.applications.get Accès en lecture seule à tous les paramètres et à la configuration de l'application App Engine.

Rôles requis pour créer une instance de base de données en mode Datastore

Pour créer une instance de base de données en mode Datastore, vous devez disposer du rôle Propriétaire ou du rôle Propriétaire Cloud Datastore.

Les bases de données en mode Datastore requièrent une application App Engine active. Si le projet ne possède pas d'application, Cloud Firestore en mode Datastore en crée une pour vous. Dans ce cas, vous devez obtenir l'autorisation appengine.applications.create, octroyée par le rôle Propriétaire ou un rôle personnalisé IAM la comprenant.

Latence de modification d'un rôle

Cloud Firestore en mode Datastore met en cache les autorisations IAM pendant cinq minutes. La modification d'un rôle est appliquée dans ce même laps de temps.

Gérer IAM

Il est possible d'obtenir et de mettre en place des Stratégies IAM à l'aide de la Console Google Cloud Platform, des méthodes IAM ou de l'outil de ligne de commande gcloud.

Étapes suivantes

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Documentation Cloud Datastore