Déplacer un projet

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

Le projet est l'entité d'organisation de base au sein d'une ressource d'organisation Google Cloud. Les projets sont créés dans des ressources d'organisation et peuvent être placés dans des dossiers ou dans la ressource "Organisation" elle-même, formant 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 vers le dossier B, qui ne dispose pas des mêmes autorisations héritées, le compte de service associé à ce projet ne peut plus importer de 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 devez disposer de ce rôle au niveau de la ressource de l'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 dans la ressource 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 auquel 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 correspond à la nouvelle ressource ou au nouveau dossier de l'organisation parent sous lequel 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.