Effectuer la migration

Cette page explique comment migrer un projet Google Cloud d'une ressource d'organisation vers une autre, ou d'une ressource d'organisation inexistante vers une ressource d'organisation.

Pour migrer un projet, vous devez vous assurer de disposer des autorisations IAM (Identity and Access Management) appropriées et que des règles d'administration spécifiques sont configurées sur les ressources source et de destination.

Avant de commencer

La migration d'un projet est une opération inter-organisations. Pour éviter tout déplacement non autorisé de ressources, vous devez remplir les conditions suivantes.

Rôles requis

Pour obtenir les autorisations nécessaires pour migrer des projets entre des ressources d'organisation, demandez à votre administrateur de vous accorder les rôles IAM suivants :

  • Administrateur IAM du projet (roles/resourcemanager.projectIamAdmin) sur le projet que vous souhaitez migrer entre les ressources de l'organisation
  • Déplaceur de projets (roles/resourcemanager.projectMover) sur la ressource parente du projet (dossier ou ressource d'organisation)
  • Si la ressource de destination est un dossier : Déplaceur de projets (roles/resourcemanager.projectMover) sur la ressource de destination
  • Si la ressource de destination est une organisation : Créateur de projet (roles/resourcemanager.projectCreator) sur la ressource de destination

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

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

Ces rôles doivent être accordés au même compte utilisateur dans les organisations source et de destination. Ces rôles prédéfinis contiennent les autorisations requises pour migrer des projets. Pour afficher les autorisations exactes requises, développez la section Autorisations requises.

Autorisations requises

Les autorisations suivantes sont requises pour migrer des projets :

  • resourcemanager.projects.getIamPolicy sur le projet que vous souhaitez migrer entre les ressources de l'organisation
  • resourcemanager.projects.update dans le projet que vous souhaitez migrer entre des ressources d'organisation
  • resourcemanager.projects.move sur la ressource parente du projet (dossier ou ressource d'organisation)
  • Si la ressource de destination est un dossier : resourcemanager.projects.move dans la ressource de destination
  • Si la ressource de destination est une ressource d'organisation : resourcemanager.projects.create dans la ressource de destination
  • Si vous souhaitez migrer un projet qui n'est pas associé à une organisation : resourcemanager.projects.setIamPolicy sur le projet que vous souhaitez migrer

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

Règles d'administration requises

Par défaut, la migration de projets est limitée. Vous devez explicitement autoriser l'exportation et l'importation en définissant des règles d'administration'administration à la racine des deux organisations. Pour configurer les règles d'administration requises pour la migration, vous devez disposer du rôle roles/orgPolicy.policyAdmin dans l'organisation parente et l'organisation de destination.

  • Sur la ressource d'organisation source : définissez la règle constraints/resourcemanager.allowedExportDestinations. Ajoutez l'ID de l'organisation de destination comme valeur autorisée.

  • Sur la ressource de l'organisation de destination : définissez la règle constraints/resourcemanager.allowedImportSources. Ajoutez l'ID de l'organisation source comme valeur autorisée.

Effectuer la migration

Une fois les autorisations accordées et les règles appliquées, vous pouvez migrer le projet à l'aide du Google Cloud CLI ou de l'API Resource Manager.

gcloud

Pour migrer un projet vers une autre ressource d'organisation, exécutez la commande suivante :

gcloud beta projects move PROJECT_ID \
    --organization ORGANIZATION_ID

Vous pouvez également spécifier un dossier en tant que ressource cible à l'aide de la commande suivante :

gcloud beta projects move PROJECT_ID \
    --folder FOLDER_ID

Remplacez les champs suivants :

  • PROJECT_ID : ID ou numéro du projet que vous souhaitez migrer.
  • ORGANIZATION_ID : ID de la ressource d'organisation vers laquelle vous déplacez le projet.
  • FOLDER_ID : ID du dossier vers lequel vous déplacez le projet.

Vous ne pouvez spécifier qu'une seule cible, soit un dossier, soit une ressource d'organisation.

API

À l'aide de l'API Resource Manager v1, vous pouvez migrer un projet entre des ressources d'organisation en définissant son champ parent sur l'ID de la ressource de destination.

Pour migrer un projet :

  • Récupérez l'objet project à l'aide de la méthode projects.get().
  • Mettez à jour le champ parent avec l'ID de ressource de destination.
  • Exécutez la méthode projects.update().

L'extrait de code suivant illustre ces étapes :

    project = crm.projects().get(projectId=flags.projectId).execute()
    project['parent'] = {
        'type': 'organization',
        'id': flags.organizationId
    }

    project = crm.projects().update(
    projectId=flags.projectId, body=project).execute()

Tâches à effectuer après la migration

Une fois votre projet migré, vous devez effectuer plusieurs tâches post-migration pour assurer la continuité des opérations, la conformité en termes de sécurité et la facturation appropriée. La migration d'un projet modifie sa hiérarchie de ressources, ce qui affecte les autorisations héritées et les règles au niveau de l'organisation.

Voici quelques étapes à suivre après la migration :

  1. Vérification des règles : vérifiez que le projet hérite des règles d'administration attendues de son nouveau parent.

  2. Contrôle des accès : auditez les rôles IAM pour vous assurer que les utilisateurs de la nouvelle organisation disposent des accès nécessaires.

  3. Facturation : modifiez le compte de facturation si le projet doit être facturé à l'organisation de destination. Il s'agit d'une étape facultative. Pour en savoir plus, consultez Modifier le compte de facturation d'un projet et Migrer un compte de facturation entre des ressources d'organisation.

  4. Nettoyage : révoquez les rôles temporaires de Déplaceur de projets et supprimez les contraintes allowedExportDestinations et allowedImportSources."

Modifier le compte de facturation d'un projet

Les comptes Cloud Billing peuvent être utilisés dans toutes les ressources d'organisation. Le déplacement d'un projet d'une ressource Organisation à une autre n'aura pas d'incidence sur la facturation, et les frais continueront à être imputés à l'ancien compte de facturation. Toutefois, la migration de projets entre des ressources d'organisation inclut souvent également l'obligation de passer à un nouveau compte de facturation.

Pour modifier le compte de facturation :

  1. Accédez à la page Facturation dans la console Google Cloud .
    Accéder à la page Facturation
  2. Cliquez sur le nom du compte de facturation que vous souhaitez modifier.
  3. Dans la section Projets associés à ce compte de facturation, recherchez le nom du projet à migrer, puis cliquez sur le bouton de menu situé sur la droite.
  4. Cliquez sur Modifier la facturation, puis sélectionnez le nouveau compte de facturation.
  5. Cliquez sur Définir le compte.

Les frais dont vous êtes déjà redevable et qui ne sont pas encore inclus dans l'historique des transactions seront facturés sur l'ancien compte de facturation. Ces frais peuvent correspondre à des opérations effectuées dans les deux jours qui précèdent la migration du projet.

Migrer un compte de facturation entre des ressources Organisation

Un compte de facturation peut être migré d'une ressource d'organisation à une autre, bien que cette étape ne soit souvent pas nécessaire. La plupart des ressources d'organisation existantes comportent déjà un compte de facturation qui doit être utilisé à la place.

Si aucun compte de facturation n'est associé à une ressource Organisation, vous devez obtenir le rôle roles/billing.admin sur le compte de facturation, ainsi que les rôles roles/billing.admin et roles/billing.creator sur la ressource Organisation que vous souhaitez associer à votre compte de facturation.

Si vous devez migrer un compte de facturation existant :

  1. Dans la console Google Cloud , accédez à la page Facturation.
    Accéder à la page Facturation
  2. Cliquez sur le nom du compte de facturation que vous souhaitez migrer.
  3. En haut de la page Gestion dU compte, cliquez sur Modifier l'organisation.
  4. Sélectionnez la ressource de l'organisation de destination, puis cliquez sur OK.

Le compte de facturation est maintenant associé à la ressource d'organisation spécifiée.

Effectuer un rollback d'une migration

Si vous avez migré par erreur un projet, vous pouvez effectuer un rollback en exécutant à nouveau la migration, l'ancienne source étant la nouvelle destination et l'ancienne destination étant la nouvelle source. Vous devez appliquer les autorisations IAM et les règles d'administration nécessaires pour autoriser cette migration, comme s'il s'agissait d'une migration entièrement nouvelle.

Pour inverser une migration, procédez comme suit :

  1. Inversez les ID de source et de destination dans vos règles d'organisation (allowedExportDestinations et allowedImportSources).
  2. Répétez la commande de migration en replaçant le projet sur l'ID de source d'origine.

Étapes suivantes