Contrôle des accès aux dossiers avec IAM

Identity and Access Management (IAM) est une solution proposée parGoogle Cloud qui vous permet d'attribuer un accès précis à des ressources Google Cloud spécifiques et empêche tout accès non souhaité à d'autres ressources. 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 à IAM, vous pouvez contrôler qui (utilisateurs) a accès (rôles) à quelles ressources en définissant des stratégies d'autorisation. Les stratégies d'autorisation permettent d'attribuer un ou plusieurs rôles spécifiques à un utilisateur afin de lui accorder certaines autorisations.

Cette page décrit les rôles IAM disponibles au niveau des dossiers et explique comment créer et gérer des stratégies d'autorisation pour les dossiers à l'aide de l'API Cloud Resource Manager. Pour en savoir plus, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Présentation des rôles IAM applicables aux dossiers

Pour configurer les rôles IAM, reportez-vous au tableau ci-dessous qui répertorie les éléments suivants :

  • Le type d'actions que vous souhaitez autoriser.
  • Les rôles requis pour effectuer ces actions.
  • Le niveau de la ressource pour laquelle vous devez attribuer ces rôles.
Type d'action Rôles requis Niveau de la ressource
Administrer des dossiers dans la ressource "Organisation" Administrateur de dossier Ressource d'organisation
Administrer un dossier et tous les projets et dossiers qu'il contient Administrateur de dossier Dossier spécifique
Accéder aux stratégies d'autorisation d'un dossier et les administrer Administrateur IAM de dossier Dossier spécifique
Créer des dossiers Créateur de dossier Ressource parente de l'emplacement des nouveaux dossiers
Déplacer des dossiers et des projets Déplaceur de dossier Ressource parente de l'emplacement d'origine et du nouvel emplacement du dossier
Déplacer un projet dans un nouveau dossier Éditeur ou propriétaire de projet Ressource parente de l'emplacement d'origine et du nouvel emplacement du projet
Supprimer un dossier Éditeur ou administrateur de dossier Dossier spécifique

Bonnes pratiques pour l'utilisation des rôles et des autorisations IAM avec des dossiers

Lorsque vous attribuez des rôles et des autorisations IAM pour l'utilisation des dossiers, vous devez garder à l'esprit les points suivants :

  • Utilisez des groupes autant que possible pour gérer les comptes principaux.
  • Réduisez l'utilisation des rôles de base, tels que "Propriétaire", "Éditeur" et "Lecteur". À la place, essayez d'utiliser les rôles prédéfinis pour appliquer le principe de moindre privilège.
  • Pour une gestion à l'échelle du dossier, attribuez des autorisations à ce niveau et laissez les projets en hériter automatiquement. Par exemple, vous pouvez attribuer le rôle d'Administrateur de dossier à un groupe d'administrateurs d'un service. Les administrateurs réseau qui ont besoin d'autorisations à l'échelle du service peuvent se voir attribuer le rôle d'Administrateur réseau pour le dossier.
  • Avant de déplacer une ressource hors d'un dossier, évaluez soigneusement les autorisations susceptibles de changer. Sinon, vous risqueriez de détruire des applications existantes ou des flux de travaux nécessitant ces autorisations pour utiliser cette ressource.
  • Prenez soin de planifier et de tester la hiérarchie des ressources avant de déplacer des projets de production dans des dossiers. Une façon de procéder consiste à créer un dossier de test dans votre ressource Organisation et à créer à l'avance un prototype de la hiérarchie prévue.
  • L'attribution d'un rôle à un utilisateur au niveau du dossier lui accordera également ce rôle pour chaque ressource située sous ce dossier. Par exemple, si vous accordez à un utilisateur le rôle Administrateur Compute (roles/compute.admin) sur un dossier, cet utilisateur aura le contrôle total de toutes les ressources Compute Engine dans chaque projet de ce dossier.

Comprendre les rôles et les autorisations applicables aux dossiers

Les dossiers servent de limites administratives au sein de votre organisation. Ils vous permettent de regrouper des projets et d'appliquer des règles à grande échelle. L'accès à ces dossiers est géré par une combinaison d'autorisations héritées de l'organisation et de rôles accordés directement au niveau du dossier.

Rôles par défaut

Lorsque vous créez un dossier, les rôles Administrateur de dossier et Éditeur de dossier vous sont attribués, ce qui vous donne un contrôle total. Les autorisations que fournissent ces rôles sont décrites dans le tableau suivant. Vous pouvez modifier ces rôles par défaut dans une règle d'autorisation.

Utiliser des rôles prédéfinis

Rôle Autorisations

(roles/resourcemanager.folderAdmin)

Fournit toutes les autorisations disponibles pour utiliser des dossiers.

Ressources de niveau inférieur auxquelles vous pouvez attribuer ce rôle :

  • Dossier

essentialcontacts.*

  • essentialcontacts.contacts.create
  • essentialcontacts.contacts.delete
  • essentialcontacts.contacts.get
  • essentialcontacts.contacts.list
  • essentialcontacts.contacts.send
  • essentialcontacts.contacts.update

iam.policybindings.*

  • iam.policybindings.get
  • iam.policybindings.list

orgpolicy.constraints.list

orgpolicy.policies.list

orgpolicy.policy.get

resourcemanager.capabilities.*

  • resourcemanager.capabilities.get
  • resourcemanager.capabilities.update

resourcemanager.folders.*

  • resourcemanager.folders.create
  • resourcemanager.folders.createPolicyBinding
  • resourcemanager.folders.delete
  • resourcemanager.folders.deletePolicyBinding
  • resourcemanager.folders.get
  • resourcemanager.folders.getIamPolicy
  • resourcemanager.folders.list
  • resourcemanager.folders.move
  • resourcemanager.folders.searchPolicyBindings
  • resourcemanager.folders.setIamPolicy
  • resourcemanager.folders.undelete
  • resourcemanager.folders.update
  • resourcemanager.folders.updatePolicyBinding

resourcemanager.hierarchyNodes.*

  • resourcemanager.hierarchyNodes.createTagBinding
  • resourcemanager.hierarchyNodes.deleteTagBinding
  • resourcemanager.hierarchyNodes.listEffectiveTags
  • resourcemanager.hierarchyNodes.listTagBindings

resourcemanager.projects.createPolicyBinding

resourcemanager.projects.deletePolicyBinding

resourcemanager.projects.get

resourcemanager.projects.getIamPolicy

resourcemanager.projects.list

resourcemanager.projects.move

resourcemanager.projects.searchPolicyBindings

resourcemanager.projects.setIamPolicy

resourcemanager.projects.updatePolicyBinding

(roles/resourcemanager.folderIamAdmin)

Fournit les autorisations nécessaires pour administrer les stratégies d'autorisation appliquées à des dossiers.

Ressources de niveau inférieur auxquelles vous pouvez attribuer ce rôle :

  • Dossier

iam.policybindings.*

  • iam.policybindings.get
  • iam.policybindings.list

resourcemanager.folders.createPolicyBinding

resourcemanager.folders.deletePolicyBinding

resourcemanager.folders.get

resourcemanager.folders.getIamPolicy

resourcemanager.folders.searchPolicyBindings

resourcemanager.folders.setIamPolicy

resourcemanager.folders.updatePolicyBinding

(roles/resourcemanager.folderCreator)

Fournit les autorisations nécessaires pour parcourir la hiérarchie et créer des dossiers.

Ressources de niveau inférieur auxquelles vous pouvez attribuer ce rôle :

  • Dossier

essentialcontacts.contacts.get

essentialcontacts.contacts.list

orgpolicy.constraints.list

orgpolicy.policies.list

orgpolicy.policy.get

resourcemanager.capabilities.get

resourcemanager.folders.create

resourcemanager.folders.get

resourcemanager.folders.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/resourcemanager.folderEditor)

Fournit les autorisations nécessaires pour modifier des dossiers et afficher la stratégie d'autorisation d'un dossier.

Ressources de niveau inférieur auxquelles vous pouvez attribuer ce rôle :

  • Dossier

essentialcontacts.contacts.get

essentialcontacts.contacts.list

orgpolicy.constraints.list

orgpolicy.policies.list

orgpolicy.policy.get

resourcemanager.capabilities.*

  • resourcemanager.capabilities.get
  • resourcemanager.capabilities.update

resourcemanager.folders.delete

resourcemanager.folders.get

resourcemanager.folders.getIamPolicy

resourcemanager.folders.list

resourcemanager.folders.searchPolicyBindings

resourcemanager.folders.undelete

resourcemanager.folders.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/resourcemanager.folderMover)

Permet de déplacer des projets et des dossiers dans une organisation ou un dossier parent, ou en dehors.

Ressources de niveau inférieur auxquelles vous pouvez attribuer ce rôle :

  • Dossier

resourcemanager.folders.move

resourcemanager.projects.move

(roles/resourcemanager.folderViewer)

Permet d'obtenir un dossier, et de répertorier les dossiers et les projets situés sous une ressource.

Ressources de niveau inférieur auxquelles vous pouvez attribuer ce rôle :

  • Dossier

essentialcontacts.contacts.get

essentialcontacts.contacts.list

orgpolicy.constraints.list

orgpolicy.policies.list

orgpolicy.policy.get

resourcemanager.capabilities.get

resourcemanager.folders.get

resourcemanager.folders.list

resourcemanager.projects.get

resourcemanager.projects.list

Créer des rôles personnalisés

En plus des rôles prédéfinis décrits dans cette rubrique, vous pouvez créer des rôles personnalisés regroupant des autorisations adaptées à vos besoins. Lorsque vous créez un rôle personnalisé à utiliser avec Resource Manager, vous devez tenir compte des points suivants :
  • Les autorisations de type obtenir/répertorier, telles que resourcemanager.projects.get/list, doivent toujours être accordées en tant que paire.
  • Lorsque le rôle personnalisé inclut les autorisations folders.list et folders.get, il doit également inclure projects.list et projects.get.
  • Notez que l'autorisation setIamPolicy pour les ressources d'organisation, de dossier et de projet permet à l'utilisateur d'accorder toutes les autres autorisations, et doit donc être attribuée avec précaution.

Attribuer des rôles pour naviguer dans des dossiers

Les autorisations de liste permettent la navigation dans les dossiers. Les deux types d'autorisations qui sont généralement accordées sont resourcemanager.folders.list, qui permet aux utilisateurs de répertorier les dossiers d'une ressource, et resourcemanager.projects.list, qui permet aux utilisateurs de parcourir les projets d'une ressource d'organisation ou d'un dossier. L'administrateur d'organisation est initialisé avec ces deux autorisations. Pour les utilisateurs auxquels le rôle d'Administrateur de l'organisation n'a pas été attribué :

  • L'autorisation resourcemanager.folders.list peut être accordée à l'aide des rôles Lecteur de dossier et Éditeur de dossier.
  • L'autorisation resourcemanager.projects.list peut être accordée à l'aide des rôles Lecteur ou Navigateur.

Pour que les comptes principaux de la ressource Organisation puissent parcourir l'intégralité de la hiérarchie de la ressource Organisation, les autorisations de liste doivent être accordées au niveau de la ressource Organisation.

Attribuer des rôles pour créer des dossiers

Les utilisateurs devant créer des dossiers doivent se voir attribuer le rôle de Créateur de dossier pour une ressource de la hiérarchie située au-dessus du niveau auquel le dossier sera créé. Il peut être utile d’accorder des autorisations de navigation et de création de dossier pour permettre aux utilisateurs d'accéder efficacement à l'emplacement dans la hiérarchie où le dossier sera créé. Pour en savoir plus sur les autorisations de navigation, consultez la section ci-dessus.

Le rôle de Créateur de dossier n'accorde pas à un utilisateur l'autorisation de supprimer un dossier. Toutefois, lorsqu'une personne crée un dossier, le rôle d'Éditeur de dossier lui est automatiquement attribué. Le rôle d'Éditeur de dossier permet de supprimer des dossiers.

Attribuer des rôles pour déplacer des dossiers

Pour déplacer un dossier d'une ressource parente vers une autre, les utilisateurs doivent disposer du rôle de Déplaceur de dossier pour chacune des ressources parentes, l'ancienne et la nouvelle, ou pour un ancêtre commun.

Attribuer des rôles pour déplacer des projets

Pour déplacer un projet dans un dossier, les utilisateurs doivent disposer des rôles d'Éditeur de projet ou de Propriétaire de projet pour le projet en question et du rôle de Déplaceur de projets pour les ressources parentes de départ et de destination.

Ces exigences diffèrent légèrement de celles qui s'appliquent au transfert dans la ressource d'organisation d'un projet ne lui appartenant pas, qui requiert que les utilisateurs disposent des rôles d'Éditeur de projet ou de Propriétaire de projet pour le projet en question et du rôle de Créateur de projet pour la ressource d'organisation.

Attribuer des rôles spécifiques à un dossier pour créer des projets

Pour créer des projets, les utilisateurs doivent disposer du rôle de Créateur de projet. Toutefois, au lieu d'accorder l'autorisation de création de projet à l'échelle de l'organisation, il peut être utile de limiter cette autorisation à l'affichage et à la création de projets uniquement dans un dossier donné.

Pour accorder des autorisations spécifiques à un dossier, procédez comme suit :

  1. Attribuez à l'utilisateur le rôle de Lecteur d'organisation au niveau du nœud de l'organisation (par exemple, domaine.com).
  2. Créez un dossier.
  3. Ajoutez l'utilisateur à la stratégie IAM au niveau du dossier et attribuez-lui les rôles de Lecteur de dossier et de Créateur de projet.

Cela permet à l'utilisateur de créer des projets dans son dossier, sans lui accorder de visibilité globale sur chacun des projets de la ressource de l'organisation.