Contrôle des accès aux dossiers avec IAM

Google Cloud propose Cloud Identity and Access Management (Cloud IAM), qui vous permet de définir de manière plus précise l'accès à des ressources spécifiques de Google Cloud et d'empêcher tout accès indésirable à 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 à l'IAM, vous pouvez contrôler qui (utilisateurs) a 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.

Cette page décrit les rôles IAM disponibles au niveau des dossiers et explique comment créer et gérer des stratégies IAM applicables aux dossiers à l'aide de l'API Cloud Resource Manager. Pour obtenir une description détaillée de IAM, consultez la documentation IAM, et en particulier la page Accorder, modifier et révoquer les accès à des ressources.

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 l'ensemble de 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 à un dossier et administrer ses stratégies IAM 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. Pour ce faire, vous pouvez créer un dossier de test sous votre ressource organisationnelle et créer un prototype de la hiérarchie prévue à l'avance.
  • 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

Rôles par défaut

Lorsque vous créez un dossier, les rôles d'Administrateur de dossier et d'Éditeur de dossier vous sont attribués pour vous procurer un contrôle total en tant que créateur. Les autorisations que fournissent ces rôles sont décrites ci-dessous. Vous pouvez modifier ces rôles par défaut en appliquant la procédure usuelle via une stratégie IAM.

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.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.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.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.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 votre rôle personnalisé inclut les éléments folders.list et folders.get les autorisations, il doit également inclure projects.list et projects.get.
  • Sachez que l'autorisation setIamPolicy pour l'organisation, le dossier et les ressources de projet permettent à l'utilisateur d'accorder toutes les autres autorisations et doivent donc être attribuées 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 de liste doivent généralement être accordées sont resourcemanager.folders.list, ce qui permet aux utilisateurs de répertorier les dossiers d'une ressource, et resourcemanager.projects.list, qui permet aux utilisateurs de parcourir les projets sous une ressource d'organisation ou 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 via les rôles de Lecteur de dossier et d'Éditeur de dossier.
  • L'autorisation resourcemanager.projects.list peut être accordée via les rôles de Lecteur ou d'Explorateur.

Pour que les comptes principaux des ressources d'organisation puissent parcourir l'ensemble de la hiérarchie des ressources de l'organisation, listez les autorisations 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 de l'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 de l'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.