Contrôler l'accès aux dossiers à l'aide d'une stratégie 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 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 l'organisation Administrateur de dossier 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. 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

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 Nom de rôle Description Autorisations
roles/resourcemanager.folderAdmin Administrateur de dossier

Fournit toutes les autorisations disponibles pour utiliser des dossiers.

  • orgpolicy.constraints*.
  • orgpolicy.policies.list
  • orgpolicy.policy.get
  • resourcemanager.folders.*
  • resourcemanager.projects.get
  • resourcemanager.projects.getIamPolicy
  • resourcemanager.projects.list
  • resourcemanager.projects.move
  • resourcemanager.projects.setiamPolicy
roles/resourcemanager.folderIamAdmin Administrateur IAM de dossiers

Fournit les autorisations nécessaires pour administrer les stratégies Cloud IAM appliquées à des dossiers.

  • resourcemanager.folders.get
  • resourcemanager.folders.getiamPolicy
  • resourcemanager.folders.setiamPolicy
roles/resourcemanager.folderCreator Créateur de dossier

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

  • orgpolicy.constraints*.
  • orgpolicy.policies.list
  • orgpolicy.policy.get
  • resourcemanager.folders.create
  • resourcemanager.folders.get
  • resourcemanager.folders.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
roles/resourcemanager.folderEditor Éditeur de dossier

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

  • orgpolicy.constraints*.
  • orgpolicy.policies.list
  • orgpolicy.policy.get
  • resourcemanager.folders.delete
  • resourcemanager.folders.get
  • resourcemanager.folders.getiamPolicy
  • resourcemanager.folders.list
  • resourcemanager.folders.undelete
  • resourcemanager.folders.update
  • resourcemanager.projects.get
  • resourcemanager.projects.list
roles/resourcemanager.folderMover Déplaceur de dossiers

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

  • resourcemanager.folders.move
  • resourcemanager.projects.move
roles/resourcemanager.folderViewer Lecteur de dossier

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

  • orgpolicy.constraints*.
  • 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 Cloud 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 organisations, les dossiers et les projets 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 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 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 principaux de l'organisation puissent parcourir l'intégralité de la hiérarchie, les autorisations de liste doivent être accordées au niveau de l'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 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 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 l'organisation.