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 exige que les comptes effectuant des requêtes API disposent de rôles IAM appropriés. Les rôles IAM incluent des autorisations permettant aux utilisateurs d'effectuer des actions spécifiques sur les ressources Google Cloud. Par exemple, l'autorisation resourcemanager.projects.delete permet à un utilisateur de 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 des projets, l'appelant doit disposer d'un rôle qui inclut les autorisations suivantes. Le rôle est accordé au niveau de la ressource d'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 permet é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.get
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 le déplacer dans une ressource d'organisation, vous devez disposer de l'autorisation resourcemanager.projects.create sur cette ressource.
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 et les autorisations qu'il inclut.

Rôle Autorisations

(roles/resourcemanager.projectCreator)

Permet de créer des projets. Lorsqu'un utilisateur crée un projet, il se voit automatiquement attribuer le rôle de propriétaire de ce projet.

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

  • Dossier

resourcemanager.organizations.get

resourcemanager.projects.create

(roles/resourcemanager.projectDeleter)

Permet de supprimer des projets Google Cloud.

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

  • Dossier

resourcemanager.projects.delete

(roles/resourcemanager.projectMover)

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

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

  • Projet

resourcemanager.projects.get

resourcemanager.projects.move

resourcemanager.projects.update

(roles/resourcemanager.projectIamAdmin)

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

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

  • Projet

iam.policybindings.*

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

resourcemanager.projects.createPolicyBinding

resourcemanager.projects.deletePolicyBinding

resourcemanager.projects.get

resourcemanager.projects.getIamPolicy

resourcemanager.projects.searchPolicyBindings

resourcemanager.projects.setIamPolicy

resourcemanager.projects.updatePolicyBinding

(roles/browser)

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

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

  • 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 très efficace et incluent un grand nombre d'autorisations pour l'ensemble aux services Google Cloud. Pour en savoir plus sur les situations où vous devez utiliser des rôles de base, consultez la section Rôles de base.

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 à la plupart des ressources. Accès permettant de créer et de mettre à jour toutes les ressources
roles/viewer Accès en lecture à la plupart des 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 également créer rôles personnalisés, qui sont des ensembles de des autorisations adaptées à vos besoins. Lors de la création d'un rôle personnalisé avec Resource Manager, tenez 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.

Contrôle des accès au niveau du projet

Vous pouvez attribuer des rôles aux utilisateurs au niveau du projet à l'aide de la console Google Cloud, de l'API Cloud Resource Manager et de la Google Cloud CLI. Pour obtenir des instructions, consultez l'article Accorder, modifier et révoquer les accès

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 du API Cloud 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.