Déplacer un projet

Ce guide explique comment déplacer un projet au sein de votre ressource d'organisation.

Le projet est l'entité d'organisation de base dans une ressource d'organisation Google Cloud. Les projets sont créés sous des ressources d'organisation et peuvent être placés dans des dossiers ou la ressource d'organisation elle-même, formant ainsi la hiérarchie des ressources. Vous pouvez déplacer des ressources de projet dans votre hiérarchie de ressources, mais pensez aux implications de la migration avant de la mettre en œuvre.

Lorsque vous déplacez un projet, toutes les stratégies IAM (Identity and Access Management) ou règles d'administration directement associées seront déplacées. Toutefois, les projets de votre hiérarchie de ressources sont également affectés par les stratégies dont ils héritent des ressources parentes. Si un projet hérite d'un rôle IAM qui autorise les utilisateurs à utiliser un service particulier, ces derniers n'auront pas accès à ce service dans la destination, sauf s'ils héritent de cette autorisation au niveau de la destination.

Par exemple, imaginons qu'un compte de service dispose du rôle Créateur d'objets de l'espace de stockage, lié à un utilisateur du dossier A. Le compte de service est autorisé à importer des données vers Cloud Storage dans n'importe quel projet du dossier A. Si vous avez déplacé l'un de ces projets vers le dossier B, qui ne dispose pas des mêmes autorisations héritées, le compte de service de ce projet perd la possibilité d'importer 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 d'administration sont cohérentes entre les dossiers source et de destination.

Pour en savoir plus sur les règles d'administration, consultez la Présentation du service de règles d'administration.

Pour déplacer un projet, vous devez disposer du rôle IAM Déplaceur de projets (roles/resourcemanager.projectMover) dans le dossier source et le dossier de destination. Si la ressource ne se trouve pas dans un dossier, vous avez besoin de ce rôle sur la ressource d'organisation.

Ces rôles vous donnent les autorisations requises suivantes :

  • resourcemanager.projects.update sur le projet
  • Si la ressource se trouve dans un dossier : resourcemanager.projects.move dans le dossier source et la destination
  • Si la ressource ne se trouve pas dans un dossier:resourcemanager.projects.move sur la ressource d'organisation

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Console

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

  1. Dans la console Google Cloud, accédez à la page Gérer les ressources.

    Accéder à la page "Gérer les ressources"

  2. Sélectionnez votre organisation dans la liste déroulante Organisation, en haut à gauche de la page.

  3. Dans la liste des ressources, cliquez sur la ligne correspondant à votre projet pour le sélectionner. 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.

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

  6. Cliquez sur Déplacer.

gcloud

Pour déplacer un projet, exécutez la commande gcloud beta projects move :

gcloud beta projects move PROJECT_ID \
--DESTINATION_TYPE DESTINATION_ID

Où :

  • PROJECT_ID est l'ID ou le numéro du projet que vous souhaitez déplacer.

  • DESTINATION_TYPE correspond à organization ou folder.

  • DESTINATION_ID est l'ID de la ressource d'organisation ou du dossier vers lequel vous souhaitez déplacer le projet. Vous ne pouvez spécifier qu'une seule cible.

API

Pour déplacer un projet, vous pouvez utiliser la méthode v3 projects.move.

Requête :

POST https://cloudresourcemanager.googleapis.com/v3/{name=PROJECT_NAME}:move
{
  "destinationParent": DESTINATION_PARENT
}

Où :

  • PROJECT_NAME est le nom du projet que vous souhaitez mettre à jour. Par exemple, projects/415104041262.

  • DESTINATION_PARENT est la nouvelle ressource ou le nouveau dossier de l'organisation parente sous laquelle vous souhaitez déplacer le projet. Exemple : organizations/12345678901.

Si la requête aboutit, elle renvoie une opération qui peut être utilisée pour suivre le déplacement du projet.