Contrôle des accès aux projets avec Cloud IAM

Google Cloud propose Identity and Access Management (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 à IAM, vous pouvez contrôler qui (utilisateurs) bénéficie de quel type d'accès (rôles) à quelles ressources en définissant des stratégies IAM. Ces stratégies permettent d'attribuer des rôles spécifiques associés à certaines autorisations.

Cette page décrit les autorisations et les rôles IAM que vous pouvez utiliser pour gérer l'accès aux projets. Pour une description détaillée de IAM, veuillez consulter la documentation IAM, et en particulier la page Accorder, modifier et révoquer les accès à des ressources.

Autorisations et rôles

Pour contrôler l'accès aux ressources, Google Cloud requiert que les comptes envoyant des requêtes API disposent des rôles IAM appropriés. Les rôles IAM incluent des autorisations qui permettent aux utilisateurs d'effectuer des actions spécifiques sur les ressources Google Cloud. Par exemple, l'autorisation resourcemanager.organizations.list permet à un utilisateur de répertorier les organisations dont il est propriétaire, tandis que resourcemanager.projects.delete autorise un utilisateur à supprimer un projet.

Vous n'accordez pas directement des autorisations aux utilisateurs, mais vous leur attribuez des rôles auxquels sont associées une ou plusieurs autorisations. Ces rôles sont accordés sur une ressource particulière, mais ils s'appliquent également à tous les descendants de cette ressource dans la hiérarchie des ressources.

Autorisations

Pour gérer les projets, l'appelant doit disposer d'un rôle comprenant les autorisations suivantes. Le rôle est attribué au niveau de l'organisation ou du dossier contenant les projets:

Méthode Autorisation(s) requise(s)
resourcemanager.projects.create resourcemanager.projects.create
resourcemanager.projects.delete resourcemanager.projects.delete
resourcemanager.projects.get resourcemanager.projects.get
Cette autorisation permettra également d'obtenir le nom du compte de facturation associé au projet via la méthode de l'API Billing. billing.projects.getBillingInfo
resourcemanager.projects.getIamPolicy resourcemanager.projects.getIamPolicy
resourcemanager.projects.list resourcemanager.projects.list
resourcemanager.projects.search resourcemanager.projects.search
resourcemanager.projects.setIamPolicy resourcemanager.projects.setIamPolicy
resourcemanager.projects.testIamPermissions Ne nécessite aucune autorisation.
resourcemanager.projects.undelete resourcemanager.projects.undelete
resourcemanager.projects.patch La mise à jour des métadonnées d'un projet requiert l'autorisation resourcemanager.projects.update. Pour mettre à jour le parent d'un projet et déplacer celui-ci dans une organisation, vous devez disposer de l'autorisation resourcemanager.projects.create sur cette organisation.
projects.move projects.move

Utiliser des rôles prédéfinis

Les rôles IAM prédéfinis vous permettent de gérer soigneusement l'ensemble des autorisations auxquelles vos utilisateurs ont accès. Pour obtenir la liste complète des rôles pouvant être accordés au niveau du projet, consultez la page Comprendre les rôles.

Le tableau suivant répertorie les rôles prédéfinis que vous pouvez utiliser pour accorder l'accès à un projet. Chaque rôle comprend une description de son rôle et les autorisations qu'il inclut.

Rôle Nom de rôle Description Autorisations
roles/resourcemanager.projectCreator Créateur de projet

Permet de créer des projets. Une fois qu'un utilisateur crée un projet, il se voit automatiquement attribuer le rôle de propriétaire pour celui-ci.

  • resourcemanager.organizations.get
  • resourcemanager.projects.create
roles/resourcemanager.projectDeleter suppresseur de projets

Permet de supprimer des projets Google Cloud.

  • resourcemanager.projects.delete
roles/resourcemanager.projectMover Déplaceur de projets

Permet de mettre à jour et déplacer des projets.

  • resourcemanager.projects.get
  • resourcemanager.projects.move
  • resourcemanager.projects.update
roles/resourcemanager.projectIamAdmin Administrateur de projet IAM

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

  • resourcemanager.projects.get
  • resourcemanager.projects.getIamPolicy
  • resourcemanager.projects.setiamPolicy
roles/browser Navigateur

Accès en lecture pour parcourir la hiérarchie d'un projet, y compris le dossier, l'organisation et la stratégie IAM. Ce rôle n'inclut pas l'autorisation permettant d'afficher les ressources du projet.

  • resourcemanager.folders.get
  • resourcemanager.folders.list
  • resourcemanager.organizations.get
  • resourcemanager.projects.get
  • resourcemanager.projects.getIamPolicy
  • resourcemanager.projects.list

Rôles de base

Évitez d'utiliser des rôles de base, sauf si cela est absolument nécessaire. Ces rôles sont très puissants et incluent un grand nombre d'autorisations sur tous les services Google Cloud. Pour en savoir plus sur l'utilisation des rôles de base, consultez les questions fréquentes sur la gestion de l'authentification et des accès.

Rôle Description Autorisations
roles/owner Accès complet à toutes les ressources Permet d'accéder à toutes les autorisations pour toutes les ressources.
roles/editor Accès en modification à toutes les ressources Accès permettant de créer et de mettre à jour toutes les ressources
roles/viewer Accès en lecture à toutes les ressources Accès permettant d'obtenir et de répertorier toutes les ressources

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.

Contrôle des accès au niveau du projet

Vous pouvez attribuer des rôles aux utilisateurs au niveau du projet à l'aide de Google Cloud Console, de l'API Resource Manager et de l'outil de ligne de commande gcloud. Pour obtenir des instructions, consultez la page Accorder, modifier et révoquer les accès à des ressources.

Rôles par défaut

Lorsque vous créez un projet, le rôle roles/owner du projet vous est attribué pour vous procurer un contrôle total en tant que créateur. Ce rôle par défaut peut être modifié normalement dans une stratégie IAM.

VPC Service Controls

VPC Service Controls offre une sécurité supplémentaire lors de l'utilisation de l'API Resource Manager. Pour en savoir plus sur VPC Service Controls, consultez la page Présentation de VPC Service Controls.

Pour en savoir plus sur les limites actuelles liées à l'utilisation de Resource Manager avec VPC Service Controls, consultez la page Produits compatibles et limites.