Rôles IAM pour Dataproc Metastore

Dataproc Metastore définit plusieurs rôles Identity and Access Management (IAM). Chaque rôle prédéfini contient un ensemble d'autorisations IAM qui permettent aux comptes principaux d'effectuer certaines actions. Vous pouvez utiliser une stratégie IAM pour attribuer un ou plusieurs rôles IAM à un compte principal.

Cloud Identity and Access Management (IAM) permet également de créer des rôles IAM personnalisés. Vous pouvez créer des rôles IAM personnalisés et leur attribuer une ou plusieurs autorisations. Ensuite, vous pouvez accorder le nouveau rôle à vos comptes principaux. Pour créer un modèle de contrôle des accès correspondant directement à vos besoins, utilisez des rôles personnalisés qui viendront s'ajouter aux rôles prédéfinis disponibles.

Ce document porte sur les rôles IAM pertinents pour Dataproc Metastore.

Avant de commencer

  • Consultez la documentation IAM.

Rôles Dataproc Metastore

Les rôles Identity and Access Management (IAM) pour Dataproc Metastore sont des ensembles constitués d'une ou plusieurs autorisations. Vous accordez des rôles aux comptes principaux pour leur permettre d'effectuer des actions sur les ressources Dataproc Metastore dans votre projet. Par exemple, le rôle Utilisateur Dataproc Metastore contient les autorisations metastore.*.get et metastore.*.list, qui permettent à un utilisateur d'obtenir et de répertorier les services de Dataproc Metastore, les importations de métadonnées, les sauvegardes et les opérations dans un projet.

Rôles de base

Le tableau suivant répertorie les rôles de base et les autorisations associées à chaque rôle :

ID de rôle Autorisations
roles/owner metastore.*.create
metastore.*.update
metastore.*.delete
metastore.*.get
metastore.*.list
metastore.*.getIamPolicy
metastore.*.setIamPolicy
roles/editor metastore.*.create
metastore.*.update
metastore.*.delete
metastore.*.get
metastore.*.list
metastore.*.getIamPolicy
roles/viewer metastore.*.get
metastore.*.list
metastore.*.getIamPolicy

Remarques :

  • "*" signifie des types de ressources, tels que "services", "importations", "sauvegardes", "emplacements" ou "opérations". Certaines autorisations ne sont pas définies pour certains types de ressources. Par exemple, create, update et delete ne sont pas des autorisations valides pour "emplacements". En outre, les seules autorisations associées aux opérations sont get, list, cancel et delete.
  • Le rôle owner permet de contrôler totalement les ressources Dataproc Metastore et l'administration des stratégies IAM.
  • Le rôle editor permet de contrôler totalement les ressources Dataproc Metastore.
  • Le rôle viewer permet à un utilisateur d'obtenir et de répertorier les ressources Dataproc Metastore et les détails de la stratégie IAM.

Vous pouvez attribuer des rôles de base au niveau du projet à l'aide des rôles IAM Projet. Voici un récapitulatif des autorisations associées à ces rôles :

Rôle de projet Autorisations
Propriétaire du projet Toutes les autorisations de l'éditeur de projet, ainsi que celles permettant de gérer le contrôle d'accès au projet (get / set IamPolicy) et de configurer la facturation du projet
Éditeur de projet Toutes les autorisations lecteur de projet, ainsi que toutes les autorisations de projet pour les actions qui modifient l'état (créer, supprimer, mettre à jour, utiliser)
Lecteur de projets Toutes les autorisations de projet pour les actions en lecture seule préservant l'état (get, list)

Rôles prédéfinis

Le tableau suivant répertorie les rôles Dataproc Metastore prédéfinis (ou sélectionnés), ainsi que les autorisations associées à chaque rôle :

ID de rôle Autorisations
roles/metastore.admin metastore.services.create
metastore.services.update
metastore.services.delete
metastore.services.get
metastore.services.list
metastore.services.getIamPolicy
metastore.services.setIamPolicy
metastore.services.export
metastore.services.restore
metastore.imports.create
metastore.imports.update
metastore.imports.delete
metastore.imports.get
metastore.imports.list
metastore.backups.create
metastore.backups.delete
metastore.backups.get
metastore.backups.list
metastore.backups.getIamPolicy
metastore.backups.setIamPolicy
metastore.locations.get
metastore.locations.list
metastore.operations.get
metastore.operations.list
metastore.operations.cancel
metastore.operations.delete
metastore.federations.create
metastore.federations.update
metastore.federations.delete
metastore.federations.get
metastore.federations.list
metastore.federations.getIamPolicy
metastore.federations.setIamPolicy
roles/metastore.editor metastore.services.create
metastore.services.update
metastore.services.delete
metastore.services.get
metastore.services.list
metastore.services.getIamPolicy
metastore.services.export
metastore.services.restore
metastore.imports.create
metastore.imports.update
metastore.imports.delete
metastore.imports.get
metastore.imports.list
metastore.backups.create
metastore.backups.delete
metastore.backups.get
metastore.backups.list
metastore.backups.getIamPolicy
metastore.locations.get
metastore.locations.list
metastore.operations.get
metastore.operations.list
metastore.operations.cancel
metastore.operations.delete
metastore.federations.create
metastore.federations.update
metastore.federations.delete
metastore.federations.get
metastore.federations.list
metastore.federations.getIamPolicy
roles/metastore.user metastore.services.get
metastore.services.list
metastore.services.getIamPolicy
metastore.imports.get
metastore.imports.list
metastore.backups.get
metastore.backups.list
metastore.backups.getIamPolicy
metastore.locations.get
metastore.locations.list
metastore.operations.get
metastore.operations.list
metastore.federations.get
metastore.federations.list
metastore.federations.getIamPolicy
roles/metastore.metadataOperator metastore.services.get
metastore.services.list
metastore.services.getIamPolicy
metastore.imports.create
metastore.imports.update
metastore.imports.delete
metastore.imports.get
metastore.imports.list
metastore.backups.create
metastore.backups.delete
metastore.backups.get
metastore.backups.list
metastore.backups.use
metastore.locations.get
metastore.locations.list
metastore.operations.get
metastore.operations.list
metastore.federations.get
metastore.federations.list
metastore.federations.getIamPolicy

Remarques :

  • Certaines autorisations ne sont pas définies pour certains types de ressources. Par exemple, create, update et delete ne sont pas des autorisations valides pour "emplacements". En outre, les seules autorisations associées aux opérations sont get, list, cancel et delete.
  • Le rôle metastore.admin accorde un accès complet à toutes les ressources Dataproc Metastore, y compris l'administration des stratégies IAM.
  • Le rôle metastore.editor accorde un accès en lecture et en écriture à toutes les ressources Dataproc Metastore.
  • Le rôle metastore.user accorde un accès en lecture à toutes les ressources Dataproc Metastore.
  • Les rôles metastore.metadataOperator, metastore.metadataOwner et metastore.metadataEditor accordent un accès en lecture et en modification aux métadonnées des bases de données et des tables de ces bases de données.
  • Les rôles metastore.metadataViewer et "metastore.metadataUser" accordent un accès en lecture aux métadonnées des bases de données et tables de ces bases de données.

Rôles prédéfinis pour les ressources de métadonnées

Le tableau suivant répertorie les rôles Dataproc Metastore prédéfinis (ou sélectionnés) pour les ressources de métadonnées et les détails associés à chaque rôle:

Rôle prédéfini Description Autorisations Opérations pouvant être effectuées par un compte principal lorsque ce rôle lui est attribué
Rôle Propriétaire de métadonnées (metastore.metadataOwner) Accorde un accès complet aux ressources de métadonnées et à leurs stratégies IAM. metastore.services.get
metastore.services.list
metastore.services.getIamPolicy
metastore.services.use
metastore.databases.*
metastore.tables.*
Dans un service :
  • Accès aux bases de données autorisé
  • Peut lister les bases de données
  • Peut créer des bases de données
  • Peut supprimer des bases de données
  • Peut mettre à jour les bases de données
  • Peut définir la stratégie de contrôle d'accès IAM sur les bases de données
  • Peut obtenir la stratégie de contrôle d'accès IAM sur les bases de données
  • Accès aux tables autorisé
  • Peut lister les tables
  • Peut créer des tables
  • Suppression de tables autorisée
  • Peut mettre à jour les tables
  • Peut définir la stratégie de contrôle d'accès IAM sur les tables
  • Peut obtenir la stratégie de contrôle d'accès IAM sur les tables
  • Accès aux partitions autorisé
  • Peut lister les partitions
  • Possibilité d'ajouter des partitions
  • Peut supprimer des partitions
  • Peut mettre à jour les partitions
Dans une base de données :
  • Accès aux bases de données autorisé
  • Peut supprimer des bases de données
  • Peut mettre à jour les bases de données
  • Peut définir la stratégie de contrôle d'accès IAM sur les bases de données
  • Peut obtenir la stratégie de contrôle d'accès IAM sur les bases de données
  • Accès aux tables autorisé
  • Peut lister les tables
  • Peut créer des tables
  • Suppression de tables autorisée
  • Peut mettre à jour les tables
  • Peut définir la stratégie de contrôle d'accès IAM sur les tables
  • Peut obtenir la stratégie de contrôle d'accès IAM sur les tables
  • Accès aux partitions autorisé
  • Peut lister les partitions
  • Possibilité d'ajouter des partitions
  • Peut supprimer des partitions
  • Peut mettre à jour les partitions
Dans un tableau, procédez comme suit :
  • Accès aux tables autorisé
  • Suppression de tables autorisée
  • Peut mettre à jour les tables
  • Peut définir la stratégie de contrôle d'accès IAM sur les tables
  • Peut obtenir la stratégie de contrôle d'accès IAM sur les tables
  • Accès aux partitions autorisé
  • Peut lister les partitions
  • Possibilité d'ajouter des partitions
  • Peut supprimer des partitions
  • Peut mettre à jour les partitions
Rôle d'éditeur de métadonnées (metastore.metadataEditor) Accorde un accès à un compte principal pour lui permettre de créer et de modifier des ressources de métadonnées. metastore.services.get
metastore.services.use
metastore.databases.create
metastore.databases.update
metastore.databases.delete
metastore.databases.get
metastore.databases.list
metastore.databases.getIamPolicy
metastore.tables.create
metastore.tables.update
metastore.tables.delete
metastore.tables.get
metastore.tables.list
metastore.tables.getIamPolicy
Dans un service :
  • Accès aux bases de données autorisé
  • Peut lister les bases de données
  • Peut créer des bases de données
  • Peut supprimer des bases de données
  • Peut mettre à jour les bases de données
  • Peut obtenir la stratégie de contrôle d'accès IAM sur les bases de données
  • Accès aux tables autorisé
  • Peut lister les tables
  • Peut créer des tables
  • Suppression de tables autorisée
  • Peut mettre à jour les tables
  • Peut obtenir la stratégie de contrôle d'accès IAM sur les tables
  • Accès aux partitions autorisé
  • Peut lister les partitions
  • Possibilité d'ajouter des partitions
  • Peut supprimer des partitions
  • Peut mettre à jour les partitions
Dans une base de données :
  • Accès aux bases de données autorisé
  • Peut supprimer des bases de données
  • Peut mettre à jour les bases de données
  • Peut obtenir la stratégie de contrôle d'accès IAM sur les bases de données
  • Accès aux tables autorisé
  • Peut lister les tables
  • Peut créer des tables
  • Suppression de tables autorisée
  • Peut mettre à jour les tables
  • Peut obtenir la stratégie de contrôle d'accès IAM sur les tables
  • Accès aux partitions autorisé
  • Peut lister les partitions
  • Possibilité d'ajouter des partitions
  • Peut supprimer des partitions
  • Peut mettre à jour les partitions
Dans un tableau, procédez comme suit :
  • Accès aux tables autorisé
  • Suppression de tables autorisée
  • Peut mettre à jour les tables
  • Peut obtenir la stratégie de contrôle d'accès IAM sur les tables
  • Accès aux partitions autorisé
  • Peut lister les partitions
  • Possibilité d'ajouter des partitions
  • Peut supprimer des partitions
  • Peut mettre à jour les partitions
Rôle de lecteur de métadonnées (metastore.metadataViewer) Permet à un compte principal d'afficher les ressources de métadonnées. metastore.services.get
metastore.services.use
metastore.databases.get
metastore.databases.list
metastore.databases.getIamPolicy
metastore.tables.get
metastore.tables.list
metastore.tables.getIamPolicy
Dans un service :
  • Accès aux bases de données autorisé
  • Peut lister les bases de données
  • Peut obtenir la stratégie de contrôle d'accès IAM sur les bases de données
  • Accès aux tables autorisé
  • Peut lister les tables
  • Peut obtenir la stratégie de contrôle d'accès IAM sur les tables
  • Accès aux partitions autorisé
  • Peut lister les partitions
Dans une base de données :
  • Accès aux bases de données autorisé
  • Peut obtenir la stratégie de contrôle d'accès IAM sur les bases de données
  • Accès aux tables autorisé
  • Peut lister les tables
  • Peut obtenir la stratégie de contrôle d'accès IAM sur les tables
  • Accès aux partitions autorisé
  • Peut lister les partitions
Dans un tableau, procédez comme suit :
  • Accès aux tables autorisé
  • Peut obtenir la stratégie de contrôle d'accès IAM sur les tables
  • Accès aux partitions autorisé
  • Peut lister les partitions
Rôle utilisateur de métadonnées (metastore.metadataUser) Accorde l'accès à un compte principal pour utiliser un point de terminaison gRPC d'un service Dataproc Metastore. Doit être accordé dans la règle de niveau de service ou supérieure. metastore.services.get
metastore.services.use
metastore.databases.get
metastore.databases.list
Dans un service :
  • Accès aux bases de données autorisé
  • Peut lister les bases de données
  • Peut appeler des méthodes sans lien avec les ressources de métadonnées spécifiques
Rôle d'accesseur de fédération (metastore.federationAccessor) Accorde l'accès à la ressource de fédération de métastore. Doit être accordé dans la règle de niveau de service ou supérieure. metastore.federations.use Accorde l'accès à la ressource de fédération de métastore.
  • "quo", "signifie" des méthodes, telles que "create", "" "mettre à jour", "quo", "supprimer", ""get", " ou &&t;liste."
  • Les autorisations de base de données et de tables sont utilisées avec les services Dataproc Metastore compatibles gRPC. Elles n'ont aucun effet lorsqu'elles sont utilisées avec des services utilisant des points de terminaison Thrift.

Étapes suivantes