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

Avec IAM, toutes les méthodes de Google Cloud nécessitent que le compte effectuant la requête API dispose des autorisations appropriées pour accéder à la ressource. Les autorisations permettent aux utilisateurs d'effectuer des actions spécifiques sur les ressources Google Cloud. Par exemple, l'autorisation resourcemanager.projects.list permet à un utilisateur de répertorier ses projets, tandis que resourcemanager.projects.delete lui permet 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.

Pour gérer des projets, l'appelant doit disposer d'un rôle qui inclut les autorisations suivantes et qui est accordé 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
resourcemanager.projects.getIamPolicy resourcemanager.projects.getIamPolicy
resourcemanager.projects.list Ne nécessite aucune autorisation. La méthode répertorie les projets pour lesquels l'appelant dispose de l'autorisation resourcemanager.projects.get. Si vous fournissez un filtre en appelant la méthode list() (par exemple, byParent), elle répertorie les projets pour lesquels vous disposez de l'autorisation resourcemanager.projects.get et qui remplissent la condition de filtre.
resourcemanager.projects.setIamPolicy resourcemanager.projects.setIamPolicy
resourcemanager.projects.testIamPermissions Ne nécessite aucune autorisation.
resourcemanager.projects.undelete resourcemanager.projects.undelete
resourcemanager.projects.update 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 primitifs

Le tableau suivant répertorie les rôles primitifs que vous pouvez attribuer pour accéder à un projet, la description de ces rôles et les autorisations qu'ils procurent. Évitez d'utiliser des rôles primitifs, sauf en cas d'absolue nécessité. Ces rôles sont très puissants et incluent un grand nombre d'autorisations sur tous les services Google Cloud. Pour plus de détails sur les situations justifiant l'utilisation des rôles primitifs, consultez les questions fréquentes sur Identity and Access Management.

Les rôles prédéfinis de IAM sont beaucoup plus précis et vous permettent de gérer soigneusement l'ensemble des autorisations auxquelles vos utilisateurs ont accès. Consultez la page Comprendre les rôles pour obtenir une liste des rôles pouvant être accordés au niveau du projet. La création de rôles personnalisés peut encore accroître le contrôle que vous avez sur les autorisations des utilisateurs.

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
roles/browserBêta Accès permettant de parcourir les ressources dans le projet
  • resourcemanager.organizations.get
  • resourcemanager.projects.get
  • resourcemanager.projects.getIamPolicy
  • resourcemanager.projects.list
  • resourcemanager.projectInvites.get

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. Les autorisations associées à ce rôle sont décrites ci-dessus. Vous pouvez modifier ce rôle par défaut en appliquant la procédure usuelle via 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.