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

Identity and Access Management (IAM) vous permet d'accorder un accès précis à des ressources Google Cloud spécifiques et d'empêcher tout accès indésirable à d'autres ressources. Ce modèle vous aide à adopter le principe du moindre privilège, qui vous permet de n'accorder que l'accès nécessaire à vos ressources.

En définissant des stratégies d'autorisation, vous contrôlez qui (utilisateurs) a accès (rôles) à quelles ressources. Pour gérer l'accès aux projets, vous configurez des rôles et des autorisations IAM, ou vous utilisez des stratégies de refus pour empêcher les comptes principaux d'utiliser des autorisations spécifiques. Pour en savoir plus, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Si vous commencez à utiliser Google Cloud, vous pouvez établir votre hiérarchie des ressources et accorder un accès initial dans le cadre du processus de configurationGoogle Cloud .

Autorisations et rôles

Pour contrôler l'accès aux ressources, Google Cloud exige que les comptes qui effectuent 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 ressourcesGoogle 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. Vous attribuez ces rôles 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 incluant les autorisations suivantes. Le rôle est attribué sur la ressource d'organisation ou le 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 déplacer le projet vers une ressource d'organisation, vous devez disposer de l'autorisation resourcemanager.projects.create sur la ressource d'organisation.
projects.move projects.move

Utiliser des rôles prédéfinis

Les rôles IAM prédéfinis vous permettent de gérer les autorisations disponibles pour les utilisateurs. Pour obtenir la liste complète des rôles pouvant être attribués au niveau du projet, consultez Comprendre les rôles.

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

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 :

  • Projet

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

N'utilisez les rôles de base que si nécessaire. Ces rôles sont hautement privilégiés et accordent des autorisations étendues sur tous les services Google Cloud . Pour en savoir plus sur les cas d'utilisation des rôles de base, consultez 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 cet article, vous pouvez également créer des rôles personnalisés, qui sont des ensembles d'autorisations que vous adaptez à vos besoins. Lorsque vous créez un rôle personnalisé à utiliser 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 autorisations folders.list et folders.get, il doit également inclure projects.list et projects.get.
  • Sachez que l'autorisation setIamPolicy pour les ressources d'organisation, de dossier et de projet permet à l'utilisateur d'accorder toutes les autres autorisations. Elle 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 Cloud Resource Manager et de Google Cloud CLI. Pour obtenir des instructions, consultez la page Accorder, modifier et révoquer les accès.

Rôles par défaut

Lorsque vous créez un projet, vous recevez le rôle roles/owner, qui vous donne un contrôle total sur le projet. Vous pouvez modifier ce rôle par défaut dans une stratégie d'autorisation.

VPC Service Controls

VPC Service Controls peut fournir une sécurité supplémentaire lors de l'utilisation de l'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.