Effectuer la migration

Vous pouvez migrer un projet Google Cloud entre des ressources d'organisation ou déplacer un projet autonome (sans ressource d'organisation) vers une ressource d'organisation. Pour migrer un projet entre des organisations, vous devez disposer des autorisations IAM (Identity and Access Management) requises et configurer les règles d'administration nécessaires sur les ressources d'organisation source et de destination. Pour déplacer un projet autonome, vous n'avez besoin que des autorisations IAM requises sur le projet et la ressource d'organisation de destination, ainsi que des règles d'administration nécessaires sur la ressource d'organisation de destination.

Avant de commencer

La migration d'un projet est une opération interorganisationnelle. Pour empêcher le 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 de projet (roles/resourcemanager.projectIamAdmin) sur le projet que vous souhaitez migrer entre les ressources d'organisation
  • Outil de déplacement de projet (roles/resourcemanager.projectMover) sur la ressource parente du projet (ressource de dossier ou d'organisation)
  • Si la ressource de destination est un dossier : Outil de déplacement de projet (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 attribué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 connaître 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 d'organisation
  • resourcemanager.projects.update sur le projet que vous souhaitez migrer entre des ressources d'organisation
  • resourcemanager.projects.move sur la ressource parente du projet (ressource de dossier ou d'organisation)
  • Si la ressource de destination est un dossier : resourcemanager.projects.move sur la ressource de destination
  • Si la ressource de destination est une ressource d'organisation : resourcemanager.projects.create sur 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 sur 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 en tant que valeur autorisée.

  • Sur la ressource d'organisation de destination : définissez la règle constraints/resourcemanager.allowedImportSources. Ajoutez l'ID de l'organisation source en tant que 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 de la 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, procédez comme suit :

  • Obtenez l'objet project à l'aide de la méthode projects.get().
  • Remplacez le champ parent par l'ID de la 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 post-migration

Une fois votre projet migré, vous devez effectuer plusieurs tâches post-migration pour assurer la continuité des opérations, la conformité de la sécurité et une facturation correcte. 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 : mettez à jour 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 de facturation Cloud peuvent être utilisés dans toutes les ressources d'organisation. Le déplacement d'un projet d'une ressource d'organisation vers une autre n'a aucune incidence sur la facturation, et les frais continuent d'être imputés à l'ancien compte de facturation. Toutefois, la migration de projets entre des ressources d'organisation inclut souvent l'obligation de migrer vers un nouveau compte de facturation.

Pour modifier le compte de facturation, procédez comme suit :

  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. Sous Projets associés à ce compte de facturation, recherchez le nom du projet à migrer, puis cliquez sur le bouton de menu à 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. Cela peut inclure des frais datant de deux jours avant la migration du projet.

Migrer un compte de facturation entre des ressources d'organisation

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

Si un nouveau compte de facturation n'est associé à aucune ressource d'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 d'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 de compte, cliquez sur Changer d'organisation.
  4. Sélectionnez la ressource d'organisation de destination, puis cliquez sur OK.

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

Effectuer un rollback d'une migration

Google Cloud Les migrations entre organisations ne sont pas automatiquement annulées si un problème survient pendant ou après la migration. Si vous devez annuler une migration, vous devez effectuer un rollback manuellement.

Si vous avez migré un projet par erreur, vous pouvez annuler l'opération en effectuant à nouveau la migration, avec l'ancienne source comme nouvelle destination et l'ancienne destination comme nouvelle source. Vous devez disposer des autorisations IAM nécessaires et appliquer les règles d'administration requises pour autoriser cette opération, comme s'il s'agissait d'une toute nouvelle migration.

Pour annuler une migration, procédez comme suit :

  1. Échangez les ID source et de destination dans vos règles d'administration (allowedExportDestinations et allowedImportSources).
  2. Répétez la commande de migration en déplaçant le projet vers l'ID source d'origine.

Étapes suivantes