Créer et gérer des dossiers

Les dossiers sont des nœuds dans l'arborescence des ressources Cloud Platform. Un dossier peut contenir des projets, d'autres dossiers ou une combinaison des deux. Les organisations peuvent utiliser des dossiers pour regrouper des projets sous le nœud de l'organisation dans une hiérarchie. Par exemple, votre organisation peut contenir plusieurs services, chacun possédant son propre ensemble de ressources GCP. Les dossiers vous permettent de regrouper ces ressources par service. Ils sont utilisés pour regrouper les ressources partageant des stratégies IAM 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, l'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 IAM aux règles de l'organisation.

Exemple d'arborescence de dossiers

Vous pouvez définir des stratégies IAM au niveau d'un dossier pour contrôler l'accès aux ressources contenues dans ce dernier. Par exemple, si un utilisateur se voit attribuer le rôle Administrateur d'instances de Compute sur un dossier, il bénéficie du rôle Administrateur d'instances de Compute pour tous les projets du dossier.

Avant de commencer

La fonction "Dossier" est uniquement disponible pour les clients G Suite et Cloud Identity disposant d'une ressource "Organisation". Pour en savoir plus sur l'acquisition d'une ressource "Organisation", consultez la section Créer et gérer des organisations.

Si vous essayez d'optimiser l'utilisation des dossiers, nous vous recommandons ce qui suit :

  1. 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.
  2. Découvrez comment définir les autorisations associées à un dossier. Les dossiers sont compatibles avec de nombreux rôles 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 l'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.
  3. 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 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 à différents environnements de développement, de production ou de test, par exemple. Utilisez des dossiers imbriqués pour vous adapter à ces différents cas d'utilisation.

Un cas d'utilisation courant consiste à créer des dossiers qui contiennent à leur tour d'autres dossiers ou projets, comme indiqué dans l'image ci-dessus. 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 des dossiers dans la limite de quatre niveaux.
  • Un dossier parent ne peut pas contenir plus de 100 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.

Définir 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 rubrique Contrôle des accès aux dossiers via IAM. Nous vous recommandons également de consulter nos bonnes pratiques pour vous aider à déterminer la configuration optimale des autorisations.

Conseil : Pour gérer des dossiers pour l'ensemble de votre 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 à l'organisation. Les comptes auxquels ce rôle est attribué peuvent ensuite l'affecter à d'autres comptes.

Pour configurer les autorisations associées à un dossier :

Console

  1. Dans la console Google Cloud Platform, ouvrez la page Gérer les ressources.

    Ouvrir la page "Gérer les ressources"

  2. Cliquez sur la liste déroulante Organisation en haut à gauche, puis sélectionnez votre organisation dans la liste des ressources.

    Sélectionner la ressource "Organisation"

  3. Dans la zone de texte Ajouter des membres, sur la droite, entrez votre adresse électronique.

  4. Dans la liste déroulante Sélectionner un rôle, accédez à la catégorie Resource Manager, puis sélectionnez le rôle Administrateur de dossiers.

    Définition des autorisations

  5. Cliquez sur Ajouter pour attribuer le nouveau rôle.

gcloud

Les dossiers peuvent être créés de façon automatisée à l'aide de l'outil de ligne de commande gcloud. Pour ce faire, exécutez la commande suivante :

gcloud alpha resource-manager folders add-iam-policy-binding [ORGANIZATION_ID] \
--member=user:[USER_ID] \
--role=roles/resourcemanager.folderAdmin

API

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/v1/[ORGANIZATION_NAME]:setIamPolicy

Où :

  • [ORGANIZATION_NAME] correspond au nom de l'organisation pour laquelle vous souhaitez définir une stratégie IAM, 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 ne doit pas comporter plus de 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

Les dossiers peuvent être créés dans l'interface utilisateur sur la page "Gérer les projets et les dossiers".

  1. Accédez à la page Gérer les ressources dans la console GCP :

    Ouvrir la page "Gérer les ressources"

  2. Cliquez sur Créer un dossier.

  3. Dans le champ Nom du dossier, saisissez le nom de votre nouveau dossier.

  4. Sous Destination, cliquez sur Parcourir, puis sélectionnez le nœud ou le dossier de l'organisation sous lequel vous souhaitez créer votre dossier.

    1. Cliquez sur Créer.

gcloud

Les dossiers peuvent être créés de façon automatisée à l'aide de l'outil de ligne de commande gcloud.

Pour créer un dossier sous la ressource Organisation à l'aide de l'outil de ligne de commande gcloud, exécutez la commande suivante :

gcloud alpha resource-manager folders create \
   --display-name=[DISPLAY_NAME] \
   --organization=[ORGANIZATION_ID]

Pour créer un dossier dont le parent est un autre dossier :

gcloud alpha resource-manager folders create \
   --display-name=[DISPLAY_NAME] \
   --folder=[FOLDER_ID]

Où :

  • [DISPLAY_NAME] correspond au nom d'affichage 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] correspond à l'identifiant de l'organisation parente si le parent est une organisation.
  • [FOLDER_ID] correspond à l'identifiant 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]"
}'

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/v2/folders?parent=[ORGANIZATION_NAME]

Où :

  • [DISPLAY_NAME] correspond au nom à afficher pour le nouveau dossier, par exemple "Mon dossier préféré".
  • [ORGANIZATION_NAME] correspond au nom de l'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.v2.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "CREATE"
  }
}

Requête curl pour l'opération Get :

curl -H "Authorization: Bearer ${bearer_token}" \
https://cloudresourcemanager.googleapis.com/v1/operations/fc.123456789

Réponse pour l'opération Get :

{
  "name": "operations/fc.123456789",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v2.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "CREATE"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v2.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"
  }
}

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

  1. Dans la console Google Cloud Platform, ouvrez la page Gérer les ressources.

    Ouvrir la page "Gérer les ressources"

  2. Cliquez sur la liste déroulante Organisation en haut à gauche, puis sélectionnez votre organisation.

  3. Cochez la case située à côté du projet dont vous souhaitez modifier les autorisations.

  4. Dans le Panneau d'informations situé à droite, sous Autorisations, saisissez les adresses e-mail des membres que vous souhaitez ajouter.

  5. Dans la liste déroulante Sélectionner un rôle, sélectionnez le rôle que vous souhaitez attribuer à ces membres.

    Capture d'écran de l'interface utilisateur

  6. 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 par programmation à l'aide de l'outil de ligne de commande gcloud ou de l'API.

gcloud alpha resource-manager folders \
  add-iam-policy-binding [FOLDER_ID] \
  --member=user:email1@example.com \
  --role=roles/resourcemanager.folderEditor

gcloud alpha 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 alpha resource-manager \
  folders set-iam-policy [FOLDER_ID] [POLICY_FILE]

Où :

  • [FOLDER_ID] correspond à l'identifiant du nouveau dossier.
  • [POLICY_FILE] correspond au chemin d'accès à un fichier de stratégie pour le dossier.

API

SetsIamPolicy définit la stratégie de contrôle d'accès pour un dossier et remplace toute stratégie existante. Le champ resource doit correspondre au nom de la 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/v2/[FOLDER_NAME]:setIamPolicy

Où :

  • [FOLDER_NAME] correspond au nom du dossier pour lequel vous définissez la stratégie IAM, par exemple "folders/123".

Créer un projet dans un dossier

Pour créer un projet dans un dossier, vous devez avoir le rôle "Créateur de projet" (roles/resourcemanager.projectCreator) pour ce dossier. Ce rôle peut être hérité d'un dossier parent.

Console

  1. Dans la console Google Cloud Platform, ouvrez la page "Gérer les projets et les dossiers".

    Ouvrir la console Google Cloud Platform

  2. Accédez à la page "Gérer les projets et les dossiers".
  3. Sélectionnez votre organisation dans la liste déroulante Organisation, en haut à gauche de la page.
  4. Cliquez sur Créer un projet.
  5. Saisissez le Nom du projet.
  6. Dans le champ Destination, cliquez sur Parcourir pour sélectionner le dossier sous lequel vous souhaitez créer le projet.

    Sélection du dossier

  7. Cliquez sur Créer.

gcloud

   gcloud alpha projects create [PROJECT_ID]
      --folder [FOLDER_ID]

Où :

  • [PROJECT_ID] correspond à l'identifiant du projet que vous souhaitez créer.
  • [FOLDER_ID] correspond à l'identifiant du dossier dans lequel le projet doit être créé.

API

Requête JSON :

   request_json= ‘{
      name: “[DISPLAY_NAME]”, projectId: “[PROJECT_ID]”, parent: {id: [PARENT_ID], type: [PARENT_TYPE] }
   }’

Requête curl :

   curl -X POST -H "Content-Type: application/json" \
   -H "Authorization: Bearer ${bearer_token}" \
   -d "$request_json" \
   https://cloudresourcemanager.googleapis.com/v1/projects

Où :

  • [PROJECT_ID] correspond à l'identifiant du projet en cours de création, par exemple "mon-projet-préféré-123".
  • [DISPLAY_NAME] correspond au nom d'affichage du projet en cours de création.
  • [PARENT_ID] correspond à l'identifiant du parent sous lequel le projet est créé, par exemple "123".
  • [PARENT_TYPE] correspond à la catégorie du parent, par exemple "dossier" ou "organisation".

Déplacer un projet dans un dossier

Pour déplacer un projet dans un dossier, des rôles IAM spécifiques doivent être définis au niveau du projet, ainsi que des dossiers source et de destination. Il est notamment nécessaire de répondre aux exigences suivantes :

  1. Disposer de l'autorisation resourcemanager.projects.update sur le projet, dont bénéficient généralement les rôles Éditeur de projet ou Propriétaire de projet sur le projet.

  2. Disposer de l'autorisation resourcemanager.projects.move sur le dossier source et le dossier de destination. Cette autorisation est généralement associée aux rôles Propriétaire de projet, Éditeur de projet, Administrateur de projet ou Déplaceur de dossier. Si la ressource ne se trouve pas dans un dossier, vous aurez besoin de cette autorisation au niveau du nœud de l'organisation.

Pour déplacer un projet dans le dossier, procédez comme suit :

Console

  1. Dans la console Google Cloud Platform, ouvrez la page "Gérer les projets et les dossiers".

    Ouvrir la console Google Cloud Platform

  2. Sélectionnez votre organisation dans la liste déroulante Organisation, en haut à gauche de la page.
  3. Cliquez sur la ligne correspondant à votre projet pour le sélectionner dans la liste des projets et des dossiers. Notez que vous ne devez pas cliquer sur le nom du projet. Cela vous redirigerait vers la page IAM correspondante.
  4. Cliquez sur le menu d'options (icône représentant des points de suspension verticaux) situé sur cette ligne et cliquez sur Déplacer.

    Transfert d'un projet

  5. Cliquez sur Parcourir pour sélectionner le dossier dans lequel vous souhaitez déplacer le projet.

  6. Cliquez sur Déplacer.

gcloud

gcloud alpha projects move PROJECT_ID [OPTIONAL_FLAGS]

Où :

  • [PROJECT_ID] correspond à l'identifiant du projet à déplacer.
  • [OPTIONAL_FLAGS] peut correspondre à "--folder", "--help", "--organization" ou "-h".

Remarques en matière de stratégie pour déplacer des projets dans des dossiers

Vous devez examiner attentivement les implications stratégiques avant de déplacer un projet au sein ou en dehors d'un dossier, car les stratégies IAM que vous définissez au niveau du projet sont automatiquement déplacées en même temps que le projet, mais ce n'est pas le cas les stratégies que vous définissez au niveau du dossier parent source ou de destination.

Cela signifie que tous les utilisateurs qui ont hérité de l'accès au projet peuvent perdre cet accès si le dossier de destination ne dispose pas de la même stratégie. De plus, les modifications apportées aux rôles IAM peuvent entraîner l'arrêt de certaines fonctionnalités tant que les autorisations appropriées ne sont pas rétablies.

Par exemple, imaginons qu'un compte de service bénéficie du rôle de Créateur des objets de l'espace de stockage associé au dossier A. Ce dossier dispose des autorisations appropriées pour mettre en ligne des données vers Google Cloud Storage dans tous les projets du dossier A. Maintenant, imaginez ce qui se produit lorsqu'un de ces projets est déplacé dans le dossier B, qui ne dispose pas des mêmes autorisations. Le compte de service de ce projet perd la possibilité de mettre en ligne des données, ce qui entraîne une interruption de service.

Ces mêmes remarques s'appliquent si des règles de l'organisation sont définies dans les dossiers source et de destination. Tout comme les stratégies IAM, les règles de l'organisation sont héritées. Par conséquent, vous devez vous assurer que les règles de l'organisation sont cohérentes entre les dossiers source et de destination.

Pour en savoir plus sur les règles de l'organisation, consultez la Présentation du service relatif aux règles de l'organisation.

Déplacer un dossier dans un autre dossier

Pour déplacer un dossier dans un autre dossier, vous devez bénéficier du rôle Déplaceur de dossier pour les dossiers source et de destination.

Console

Le processus consistant à déplacer des dossiers dans d'autres dossiers de la console s'apparente au transfert de projets.

  1. Dans la console Google Cloud Platform, ouvrez la page "Gérer les projets et les dossiers".

    Ouvrir la console Google Cloud Platform

  2. Sélectionnez votre organisation dans la liste déroulante Organisation, en haut à gauche de la page.
  3. Cliquez sur la ligne correspondant à votre dossier pour le sélectionner dans la liste des projets et des dossiers.
  4. Cliquez sur le menu d'options (icône représentant des points de suspension verticaux) situé sur cette ligne et cliquez sur Déplacer.
  5. Cliquez sur Parcourir pour sélectionner le dossier dans lequel vous souhaitez déplacer le dossier.
  6. Cliquez sur Déplacer.

gcloud

Pour déplacer un dossier sous la ressource Organisation, exécutez la commande suivante dans l'outil de ligne de commande gcloud :

gcloud alpha resource-manager folders move [FOLDER_ID] \
  --organization=[PARENT_ID]

Pour déplacer un dossier sous un autre dossier :

gcloud alpha resource-manager folders move [FOLDER_ID] \
  --folder=[PARENT_ID]

Où :

  • [FOLDER_ID] correspond à l'identifiant du dossier à déplacer.
  • [PARENT_ID] correspond à l'identifiant de l'organisation ou à l'identifiant du dossier de l'organisation ou du dossier parent.

API

Requête JSON :

request_json= '{
   destinationParent: "folders/[DESTINATION_FOLDER_ID]"
}'

Requête curl pour déplacer un dossier :

curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token} \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v2/folders/[DISPLAY_NAME]:move

Où :

  • [DESTINATION_FOLDER_ID] correspond à l'identifiant du dossier sous lequel vous souhaitez déplacer un autre dossier, par exemple 98765.
  • [DISPLAY_NAME] correspond au nom du dossier en cours de déplacement, par exemple "Mon dossier préféré".

Réponse pour le transfert de dossier :

{
  "name": "operations/fm.1234567890",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v2.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "MOVE"
  }
}

Requête curl pour l'opération Get :

curl -H "Authorization: Bearer ${bearer_token}" \
https://cloudresourcemanager.googleapis.com/v1/operations/fm.1234567890

Réponse pour l'opération Get :

{
  "name": "operations/fm.1234567890",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v2.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "MOVE"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v2.Folder",
    "name": "folders/12345",
    "parent": "folders/98765",
    "displayName": "[DISPLAY_NAME]",
    "lifecycleState": "ACTIVE",
    "createTime": "2017-07-19T23:29:26.018Z",
    "updateTime": "2017-07-20T00:54:44.295Z"
  }
}

Afficher ou répertorier des dossiers et des projets

Pour afficher ou répertorier des dossiers, vous devez disposer des rôles Lecteur d'organisation et Lecteur de dossier.

Pour afficher ou répertorier des dossiers et des projets, procédez comme suit :

Console

  1. Dans la console Google Cloud Platform, ouvrez la page "Gérer les projets et les dossiers".

    Accéder à la page "Gérer les projets et les dossiers"

  2. Sélectionnez votre organisation dans la liste déroulante Organisation, en haut à gauche de la page. Tous les projets et dossiers de l'organisation sont répertoriés sur cette page. Notez que les dossiers doivent être créés avant de pouvoir s'afficher dans cette liste.
  3. Sélectionnez une ligne dans l'arborescence pour effectuer des opérations spécifiques sur un dossier ou un projet.

  4. Saisissez le nom ou l'identifiant du projet ou du dossier dans la barre de recherche pour filtrer la liste.

gcloud

Pour afficher un dossier, utilisez la commande describe :

   gcloud alpha resource-manager folders describe [FOLDER_ID]

   name: folders/245321 \
   parent: organizations/2518 \
   display_name: Super Fantastic Folder \
   lifecycle_state: ACTIVE \
   create_time: <timestamp info …> \
   update_time: <timestamp info …> \

Où :

  • [FOLDER_ID] correspond à l'identifiant du dossier que vous souhaitez consulter.

    Pour répertorier les dossiers d'une organisation, utilisez la commande list.

    gcloud alpha resource-manager folders list
    --organization [ORGANIZATION_ID]

    Où :

  • [ORGANIZATION_ID] correspond à l'identifiant de l'organisation pour laquelle vous souhaitez voir une liste des dossiers enfants.

    La commande génère une table qui affiche les dossiers enfants de l'ID d'organisation que vous avez spécifiée.

    La commande list peut également répertorier les dossiers sous un autre dossier, à l'aide de l'indicateur --folder.

    gcloud alpha resource-manager folders list
    --folder [FOLDER_ID]

    Où :

  • [FOLDER_ID] correspond à l'ID du dossier pour lequel vous souhaitez afficher une liste de dossiers enfants.

    Pour répertorier les projets sous une organisation ou un dossier, utilisez la commande projects list et l'argument filter.

    gcloud alpha projects list
    --filter=" parent.id: '[FOLDER_OR_ORGANIZATION_ID]' "

    Où :

  • [FOLDER_OR_ORGANIZATION_ID] correspond à l'ID du dossier ou de l'organisation pour lesquels vous souhaitez afficher une liste de projets enfants.

API

Requête curl pour obtenir des dossiers :

curl -X GET -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${bearer_token}" \
  https://cloudresourcemanager.googleapis.com/v2/[FOLDER_NAME]

Où :

  • [FOLDER_NAME] correspond au nom du dossier, par exemple folders/123.

Requête curl pour répertorier des dossiers :

curl -X GET -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${bearer_token}" \
  https://cloudresourcemanager.googleapis.com/v2/folders?parent=[PARENT_NAME]

Où :

  • [PARENT_NAME] correspond au nom de la ressource parente sous laquelle vous créez le dossier, par exemple organizations/123 ou folders/123.

Utiliser l'interface de ligne de commande gcloud

Les commandes permettant d'interagir avec l'API Folders à l'aide de l'outil de ligne de commande gcloud sont disponibles dans le groupe de commandes gcloud alpha resource-manager folders.

Créer

Pour créer un nouveau dossier, utilisez gcloud alpha resource-manager folders create en renseignant les indicateurs définissant le nom du dossier ainsi que l'identifiant de l'organisation ou du dossier dans lequel vous souhaitez le créer.

gcloud alpha resource-manager folders create \
  --display-name="Super Fantastic Folder" \
  --organization=2518

Created Folder 245321.

Afficher

Pour afficher un dossier, utilisez gcloud alpha resource-manager folders describe en renseignant l'identifiant du dossier souhaité.

gcloud alpha resource-manager folders describe 245321
name: folders/245321
parent: organizations/2518
display_name: Super Fantastic Folder
lifecycle_state: ACTIVE
create_time: <timestamp info …>
update_time: <timestamp info …>

Liste

Pour répertorier les dossiers sous un dossier, utilisez gcloud alpha resource-manager folders list, en renseignant l'identifiant du dossier dans l'indicateur --folder. Cette commande permet également de répertorier les dossiers de premier niveau d'une organisation, en utilisant l'indicateur --organization.

gcloud alpha resource-manager folders list --folder 245321
<table output showing the folders underneath the folder with the specified ID>

gcloud alpha resource-manager folders list --organization 2518
<table output showing folders in this Organization but not in any folder>

Vous pouvez répertorier des projets à l'aide de la commande gcloud alpha projects list en renseignant l'ID de l'organisation ou du dossier parent dans l'indicateur --filter.

gcloud alpha projects list --filter=" parent.id: '245321' "
<table output showing the projects underneath the resource with the specified ID>

Mettre à jour

Les dossiers peuvent être mis à jour à l'aide de la commande gcloud alpha resource-manager folders update. Actuellement, seul le champ display_name d'un dossier peut être mis à jour.

gcloud alpha resource-manager folders update \
  --display-name="Mega Incredible Folder" 245321
name: folders/245321
parent: organizations/2518
display_name: Mega Incredible Folder
lifecycle_state: ACTIVE
create_time: <timestamp info …>
update_time: <recent timestamp info …>

Supprimer

Les dossiers peuvent être supprimés et rétablis à l'aide de l'outil de ligne de commande. Un utilisateur doit posséder le rôle "Administrateur de dossier" ou "Éditeur de dossier" pour disposer de l'autorisation de supprimer un dossier. Vous ne pouvez supprimer un dossier que s'il est vide.

gcloud alpha resource-manager folders delete 245321
name: folders/245321
parent: organizations/2518
display_name: Mega Incredible Folder
lifecycle_state: DELETE_REQUESTED
create_time: <timestamp info …>
update_time: <recent timestamp info …>

gcloud alpha resource-manager folders undelete 245321
name: folders/245321
parent: organizations/2518
display_name: Mega Incredible Folder
lifecycle_state: ACTIVE
create_time: <timestamp info …>
update_time: <recent timestamp info …>

Transférer un projet

Les projets peuvent être créés et déplacés dans des dossiers à l'aide des commandes gcloud projects create et gcloud projects move existantes. Les dossiers peuvent également être déplacés en utilisant gcloud alpha resource-manager folders move..

gcloud alpha projects create --folder=245321 fancy-folder-project
project_id: fancy-folder-project
project_number: 905283
parent:
  type: "folder"
  id: 245321
other fields …

gcloud alpha projects move --folder=245321 soon-to-be-fancy-project
project_id: soon-to-be-fancy-project
project_number: 428714
parent:
  type: "folder"
  id: 245321
other fields …

Opérations à exécution longue

Certaines opérations comme la création de dossiers peuvent prendre beaucoup de temps. Pour vous permettre d'exécuter plusieurs tâches, certaines commandes relatives aux dossiers sont disponibles en mode asynchrone. Vous pouvez ajouter l'indicateur --async à ces commandes pour activer ce comportement asynchrone et recevoir immédiatement le résultat d'une opération à exécution longue plutôt que d'attendre la fin de l'opération. Vous pouvez interroger cette opération vous-même à l'aide de la commande gcloud alpha resource-manager operations describe. Actuellement, seules les commandes folders create et folders move peuvent être exécutées de manière asynchrone.

gcloud alpha resource-manager folders create \
  --display-name="Awe-Inspiring Async Folder" \
  --organization=2518 \
  --async

name: operations/fc.8572
metadata:
  operation_type: CREATE
  display_name: Awe-Inspiring Async Folder
  destination_parent: organizations/2518
done: false

[wait for some time …]

gcloud alpha resource-manager operations describe fc.8572
name: operations/fc.8572
metadata:
  operation_type: CREATE
  display_name: Awe-Inspiring Async Folder
  destination_parent: organizations/2518
done: true
response:
  name: folders/6428
  parent: organizations/2518
  display_name: Awe-Inspiring Async Folder
  lifecycle_state: ACTIVE
  create_time: <recent timestamp info …>
  update_time: <recent timestamp info …>
Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Documentation relative à Resource Manager