Cette page explique comment créer des Google Cloud dossiers pour regrouper et organiser des projets dans une hiérarchie de ressources. Vous pouvez utiliser des dossiers pour déléguer des tâches administratives, appliquer des règles d'administration spécifiques à l'environnement et rationaliser la gestion des coûts dans vos services.
Les dossiers sont des nœuds dans la hiérarchie des ressources Cloud Platform. Un dossier peut contenir des projets, d'autres dossiers ou une combinaison des deux. Les ressources d'organisation peuvent utiliser des dossiers pour regrouper des projets sous le nœud de la ressource d'organisation dans une hiérarchie. Par exemple, votre ressource d'organisation peut contenir plusieurs services, chacun avec son propre ensemble de Google Cloud ressources. Les dossiers vous permettent de regrouper ces ressources par service. Ils sont utilisés pour regrouper les ressources partageant des stratégies d'autorisation ou de refus communes. Alors qu'un dossier peut contenir plusieurs dossiers ou ressources, une ressource ou un dossier donnés ne peuvent posséder qu'un seul parent.
Dans le schéma ci-dessous, la ressource d'organisation "Company" (Entreprise) comporte des dossiers représentant deux services, "Dept X" (Service X) et "Dept Y" (Service Y), ainsi qu'un dossier "Shared Infrastructure" (Infrastructure partagée) pour les éléments communs aux deux services. Sous "Dept Y", deux dossiers correspondant chacun à une équipe ont été créés, eux-mêmes subdivisés en plusieurs dossiers relatifs aux différents produits. Le dossier "Product 1" (Produit 1) contient lui-même trois projets, chacun disposant des ressources qui lui seront nécessaires. Cela offre davantage de flexibilité et de précision pour l'attribution de stratégies d'autorisation, de refus ou d'organisation au niveau de granularité approprié.
Vous pouvez définir des stratégies d'autorisation et de refus au niveau d'un dossier pour contrôler l'accès aux ressources qu'il contient. Par exemple, si un utilisateur dispose du rôle Administrateur d'instance Compute dans un dossier, il dispose de ce rôle pour tous les projets du dossier.
Avant de commencer
La fonction "Dossier" n'est disponible que pour les clients Google Workspace et Cloud Identity disposant d'une ressource "Organisation". Pour en savoir plus sur l'acquisition d'une ressource Organisation, consultez Obtenir une ressource Organisation.
Si vous essayez d'optimiser l'utilisation des dossiers, nous vous recommandons ce qui suit :
- Consultez la rubrique Contrôle des accès aux dossiers avec IAM. Elle explique comment contrôler qui a accès aux dossiers et aux ressources qu'ils contiennent. Elle explique comment contrôler qui a accès aux dossiers et aux ressources qu'ils contiennent.
- Découvrez comment définir les autorisations associées à un dossier. Les dossiers sont compatibles avec de nombreux rôles Identity and Access Management (IAM) différents. Si vous souhaitez configurer des autorisations générales afin que les utilisateurs puissent consulter la structure de leurs projets, attribuez à l'intégralité du domaine les rôles Lecteur d'organisation et Lecteur de dossier au niveau de la ressource d'organisation. Pour restreindre la visibilité aux branches de votre arborescence de dossiers, attribuez le rôle Lecteur de dossier au niveau du ou des dossiers dont vous souhaitez autoriser la consultation par les utilisateurs.
- Créez des dossiers. Lorsque vous planifiez l'organisation des ressources cloud, commencez avec un seul dossier faisant office de bac à sable, dans lequel vous pouvez tester l'arborescence la plus adaptée à votre ressource d'organisation. Considérez les dossiers comme des limites permettant d'isoler les ressources et comme des points de liaison entre les règles d'accès et de configuration. Vous pouvez choisir de créer des dossiers pour contenir des ressources appartenant à différents services et attribuer des rôles d'administrateur relatifs à ces dossiers pour déléguer les droits. Les dossiers peuvent également servir à regrouper des ressources appartenant à des applications ou à des environnements différents, par exemple ceux de développement, de production ou de test. Adaptez-vous à ces différents cas d'utilisation en utilisant des dossiers imbriqués.
Un cas d'utilisation courant consiste à créer des dossiers qui contiennent à leur tour d'autres dossiers ou projets, comme indiqué précédemment dans la hiérarchie des ressources. Cette structure est appelée arborescence de dossiers. Lors de la création d'une telle arborescence, gardez à l'esprit les points suivants :
- Vous pouvez imbriquer jusqu'à 10 (dix) dossiers.
- Un dossier parent ne peut pas contenir plus de 300 dossiers. Ce principe s'applique uniquement aux dossiers enfants directs. Ces dossiers enfants peuvent, à leur tour, contenir d'autres dossiers ou projets.
- Les noms d'affichage des dossiers doivent être uniques au sein du même niveau d'arborescence.
Configurer des autorisations pour gérer les dossiers
Pour accéder aux dossiers et les gérer, vous devez attribuer des rôles IAM spécifiques aux dossiers à des groupes d'utilisateurs donnés. Pour en savoir plus sur ces rôles, consultez la section Contrôler l'accès aux dossiers à l'aide d'une stratégie IAM. Nous vous recommandons également de consulter nos bonnes pratiques pour vous aider à déterminer la configuration optimale des autorisations.
Pour gérer les dossiers de l'ensemble de votre ressource d'organisation, vous devez disposer du rôle Administrateur de dossier. Ce rôle permet à l'utilisateur de créer, modifier, supprimer, déplacer et changer les autorisations IAM sur les dossiers, ainsi que de déplacer des projets entre les dossiers.
Par défaut, seul l'administrateur de l'organisation peut attribuer le rôle d'Administrateur de dossier à la ressource d'organisation. Les comptes auxquels ce rôle est attribué peuvent ensuite l'affecter à d'autres comptes.
Pour configurer les autorisations associées à un dossier, procédez comme suit :
Console
- Dans la Google Cloud console, ouvrez la page Gérer les ressources.
- Si le panneau d'informations n'est pas ouvert, cliquez sur Afficher le panneau d'informations.
- Dans le tableau Ressources, développez l'organisation contenant le dossier.
- Dans la liste des ressources de l'organisation, sélectionnez le dossier que vous souhaitez gérer.
- Dans le panneau d'informations, cliquez sur Ajouter un compte principal.
- Dans le champ Ajouter des comptes principaux, saisissez l'adresse e-mail à laquelle vous souhaitez accorder des autorisations.
- Dans le menu Sélectionner un rôle, sélectionnez la catégorie Resource Manager , puis le rôle que vous souhaitez attribuer, par exemple Administrateur de dossier.
- Cliquez sur Enregistrer pour attribuer le nouveau rôle.
gcloud
Pour attribuer le rôle d'Administrateur de dossier à un compte principal à l'aide de Google Cloud CLI, exécutez la commande suivante :
gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
--member=user:USER_ID \
--role=roles/resourcemanager.folderAdmin
REST
Requête JSON :
request_json= '{ policy: { version: "1", bindings: [ { role: "roles/folderAdmin",
members: [ "user:admin@myorganization.com", ] }, { role: "roles/folderCreator",
members: [ "user:admin@myorganization.com", ] } , { role: "roles/folderMover",
members: [ "user:admin@myorganization.com", ] } , ] } }'
Requête curl :
curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v3/ORGANIZATION_NAME:setIamPolicy
Remplacez ORGANIZATION_NAME par le nom de l'organisation dont la stratégie d'autorisation est définie, par exemple organizations/123.
Créer des dossiers
Pour créer des dossiers, vous devez bénéficier du rôle Administrateur de dossier ou Créateur de dossier au niveau du dossier parent. Par exemple, pour créer des dossiers au niveau de l'organisation, vous devez bénéficier de l'un de ces rôles au niveau de l'organisation.
Lorsque vous créez un dossier, vous devez lui attribuer un nom. Les noms de dossier doivent répondre aux exigences suivantes :
- Le nom peut contenir des lettres, des chiffres, des espaces, des traits d'union et des traits de soulignement.
- Le nom d'affichage du dossier doit commencer et se terminer par une lettre ou un chiffre.
- Le nom doit contenir entre 3 et 30 caractères.
- Le nom ne doit pas être le même que celui d'un autre dossier possédant le même parent.
Pour créer un dossier, procédez comme suit :
Console
Vous pouvez créer des dossiers sur la page "Gérer les projets et les dossiers" de l'interface utilisateur.
Accédez à la page Gérer les ressources dans la Google Cloud console :
Assurez-vous que le nom de votre ressource d'organisation est sélectionné dans la liste déroulante de l'organisation en haut de la page.
Cliquez sur Créer un dossier, puis sélectionnez l'une des options suivantes :
- Dossier standard : ressource de dossier standard.
- Dossier conforme : dossier Assured Workloads, qui fournit des contrôles réglementaires, régionaux ou de souveraineté supplémentaires pour Google Cloud les ressources. En sélectionnant cette option, vous serez redirigé vers Assured Workloads pour créer un dossier.
Dans le champ Nom du dossier, saisissez le nom de votre nouveau dossier.
Sous Destination, cliquez sur Parcourir, puis sélectionnez la ressource d'organisation ou le dossier sous lequel vous souhaitez créer votre dossier.
- Cliquez sur Créer.
gcloud
Les dossiers peuvent être créés de façon automatisée à l'aide de Google Cloud CLI.
Pour créer un dossier sous la ressource d'organisation à l'aide de l'outil de ligne de commande gcloud, exécutez la commande suivante :
gcloud resource-manager folders create \
--display-name=DISPLAY_NAME \
--organization=ORGANIZATION_ID
Pour créer un dossier ayant pour parent un autre dossier, procédez comme suit :
gcloud resource-manager folders create \
--display-name=DISPLAY_NAME \
--folder=FOLDER_ID
Remplacez les éléments suivants :
- DISPLAY_NAME : nom à afficher du dossier. Deux dossiers possédant le même parent ne peuvent pas porter le même nom à afficher. Le nom à afficher doit commencer et se terminer par une lettre ou un chiffre. Il peut contenir des lettres, des chiffres, des espaces, des traits d'union et des traits de soulignement. Il ne peut pas dépasser 30 caractères.
- ORGANIZATION_ID : ID de la ressource d'organisation parente si le parent est une ressource d'organisation.
- FOLDER_ID : ID du dossier parent si le parent est un dossier.
API
Les dossiers peuvent être créés avec une requête API.
Requête JSON :
request_json= '{
display_name: DISPLAY_NAME,
parent: ORGANIZATION_NAME
}'
Requête curl pour créer un dossier :
curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v3/folders
Où :
- DISPLAY_NAME : nom à afficher pour le nouveau dossier, par exemple "Mon dossier préféré".
- ORGANIZATION_NAME : nom de la ressource d'organisation sous laquelle
vous créez le dossier, par exemple
organizations/123.
Réponse pour la création du dossier :
{
"name": "operations/fc.123456789",
"metadata": {
"@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
"displayName": "DISPLAY_NAME",
"operationType": "CREATE"
}
}
Requête curl pour l'opération Get :
curl -H "Authorization: Bearer ${bearer_token}" \
https://cloudresourcemanager.googleapis.com/v3/operations/fc.123456789
Réponse pour l'opération Get :
{
"name": "operations/fc.123456789",
"metadata": {
"@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
"displayName": "DISPLAY_NAME",
"operationType": "CREATE"
},
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.resourcemanager.v3.Folder",
"name": "folders/12345",
"parent": "organizations/123",
"displayName": "DISPLAY_NAME",
"lifecycleState": "ACTIVE",
"createTime": "2017-07-19T23:29:26.018Z",
"updateTime": "2017-07-19T23:29:26.046Z"
}
}
Ajouter des tags lors de la création d'un dossier
Les tags permettent de créer des annotations pour les ressources. Vous pouvez ajouter des tags lors de la création de dossiers. Pour ce faire, vous devez attribuer le rôle Utilisateur de tags. Pour en savoir plus sur les autorisations contenues dans ce rôle, consultez Créer et gérer des tags. Vous ne pouvez ajouter l'espace de noms pour les paires clé/valeur de tag que de l'une des manières suivantes :
gcloud
Pour ajouter des tags lors de la création d'un dossier, exécutez la commande suivante :
gcloud resource-manager folders create \
--display-name=DISPLAY_NAME \
--organization=ORGANIZATION_ID\
--tags=KEY_VALUE_PAIRS
Remplacez les éléments suivants :
DISPLAY_NAME: nom à afficher du dossier.ORGANIZATION_ID: identifiant unique de la ressource d'organisation parente.KEY_VALUE_PAIRS: liste de paires clé/valeur séparées par une virgule que vous pouvez attribuer à votre ressource. Exemple de paires clé/valeur séparées par une virgule :123/environment=production, 456/create=testresource.
REST
L'extrait de code suivant est une requête JSON qui crée un dossier et y ajoute des tags.
POST https://cloudresourcemanager.googleapis.com/v3/projects/
Authorization: *************
Content-Type: application/json
{
"display_name": "our-folder-456",
"parent": "organizations/123",
"tags": {
"key": "123/environment"
"value": "production"
},
"tags": {
"key": "123/costCenter"
"value": "marketing"
}
}
Configurer l'accès aux dossiers
Pour configurer l'accès aux dossiers, vous devez bénéficier du rôle Administrateur de dossier IAM ou Administrateur de dossier au niveau du dossier parent.
Console
Dans la Google Cloud console, ouvrez la page Gérer les ressources.
Cliquez sur la liste déroulante Organisation en haut à gauche, puis sélectionnez votre ressource d'organisation.
Cochez la case située à côté du projet dont vous souhaitez modifier les autorisations.
Dans le Panneau d'informations situé à droite, sous Autorisations, saisissez les adresses e-mail des membres que vous souhaitez ajouter.
Dans la liste déroulante Sélectionner un rôle, sélectionnez le rôle que vous souhaitez attribuer à ces membres.
Cliquez sur Ajouter. Une notification s'affiche confirmant l'ajout ou la mise à jour des rôles des membres.
gcloud
Vous pouvez configurer l'accès aux dossiers de manière automatisée à l'aide de Google Cloud CLI ou de l'API REST.
gcloud resource-manager folders \
add-iam-policy-binding FOLDER_ID \
--member=user:email1@example.com \
--role=roles/resourcemanager.folderEditor
gcloud resource-manager folders \
add-iam-policy-binding FOLDER_ID \
--member=user:email1@example.com \
--role=roles/resourcemanager.folderViewer
Vous pouvez également procéder comme suit :
gcloud resource-manager folders \
set-iam-policy FOLDER_ID POLICY_FILE
Remplacez les éléments suivants :
- FOLDER_ID : ID du nouveau dossier
- POLICY_FILE : chemin d'accès à un fichier de stratégie pour le dossier
API
La méthode setIamPolicy définit la stratégie de contrôle des accès pour un dossier,
remplaçant toute stratégie existante. Le champ resource doit correspondre au nom de ressource du dossier
, par exemple folders/1234.
request_json= '{
policy: {
version: "1",
bindings: [
{
role: "roles/resourcemanager.folderEditor",
members: [
"user:email1@example.com",
"user:email2@example.com",
]
}
]
}
}'
Requête curl :
curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v3/FOLDER_ID:setIamPolicy
Remplacez FOLDER_ID par le nom du dossier dont la stratégie IAM est définie, par exemple "folders/123".
Gérer les opérations de longue durée
Certaines opérations sur les dossiers, telles que la création ou la migration, sont traitées de manière asynchrone
par Google Cloud car elles nécessitent une propagation globale. Pour éviter de bloquer votre terminal ou vos scripts d'automatisation, vous pouvez utiliser le flag --async.
Lorsque ce flag est utilisé, la commande renvoie immédiatement un objet opération de longue durée (LRO). Vous pouvez ensuite utiliser l'operation_id pour interroger l'état d'achèvement à votre convenance. Le flag --async n'est compatible qu'avec les commandes folders create et folders move.
Pour utiliser le flag, procédez comme suit :
Démarrez une tâche asynchrone. Reportez-vous à l'exemple de commande suivant :
gcloud resource-manager folders create \ --display-name="Test Async Folder" \ --organization=2518 \ --asyncLa sortie fournit un nom d'opération (par exemple, fc.8572) et affiche
done: false.Exemple de réponse :
name: operations/fc.8572 metadata: operation_type: CREATE display_name: Awe-Inspiring Async Folder destination_parent: organizations/2518 done: falseVérifiez l'état de l'opération. Pour vérifier si la tâche est terminée, utilisez la commande
operations describeavec l'ID fourni à l'étape précédente.gcloud beta resource-manager operations describe fc.8572Une fois que
doneest défini sur "true", le bloc de réponse contient tous les détails de la ressource nouvellement créée.name: operations/fc.8572 done: true response: name: folders/6428 display_name: Awe-Inspiring Async Folder lifecycle_state: ACTIVE create_time: '2024-03-20T10:00:00Z'
Étape suivante
- Découvrez comment afficher et mettre à jour des dossiers.
- Découvrez comment gérer des projets dans des dossiers.
- Découvrez les rôles et les autorisations pour les dossiers.
- Découvrez comment lister tous les dossiers et projets de votre hiérarchie de ressources.