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.getIamPolicysur le projet que vous souhaitez migrer entre les ressources de l'organisationresourcemanager.projects.updatedans le projet que vous souhaitez migrer entre des ressources d'organisationresourcemanager.projects.movesur la ressource parente du projet (dossier ou ressource d'organisation)- Si la ressource de destination est un dossier :
resourcemanager.projects.movedans la ressource de destination - Si la ressource de destination est une ressource d'organisation :
resourcemanager.projects.createdans la ressource de destination - Si vous souhaitez migrer un projet qui n'est pas associé à une organisation :
resourcemanager.projects.setIamPolicysur 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éthodeprojects.get(). - Mettez à jour le champ
parentavec 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 :
Vérification des règles : vérifiez que le projet hérite des règles d'administration attendues de son nouveau parent.
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.
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.
Nettoyage : révoquez les rôles temporaires de Déplaceur de projets et supprimez les contraintes
allowedExportDestinationsetallowedImportSources."
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 :
- Accédez à la page Facturation dans la console Google Cloud .
Accéder à la page Facturation - Cliquez sur le nom du compte de facturation que vous souhaitez modifier.
- 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.
- Cliquez sur Modifier la facturation, puis sélectionnez le nouveau compte de facturation.
- 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 :
- Dans la console Google Cloud , accédez à la page Facturation.
Accéder à la page Facturation - Cliquez sur le nom du compte de facturation que vous souhaitez migrer.
- En haut de la page Gestion dU compte, cliquez sur Modifier l'organisation.
- 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 :
- Inversez les ID de source et de destination dans vos règles d'organisation (
allowedExportDestinationsetallowedImportSources). - Répétez la commande de migration en replaçant le projet sur l'ID de source d'origine.