Cette page explique comment migrer un Google Cloud projet d'une ressource Organisation à une autre, ou d'aucune ressource Organisation vers une ressource 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 Organisation, demandez à votre administrateur de vous accorder les rôles IAM suivants :
- Administrateur IAM du projet (
roles/resourcemanager.projectIamAdmin) dans le projet que vous souhaitez migrer entre des ressources Organisation - Déplaceur de projets (
roles/resourcemanager.projectMover) dans la ressource parente du projet (dossier ou ressource Organisation) -
Si la ressource de destination est un dossier:
déplaceur de projets (
roles/resourcemanager.projectMover) dans la ressource de destination -
Si la ressource de destination est une organisation :
créateur de projet (
roles/resourcemanager.projectCreator) dans 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 afficher les autorisations exactes requises, développez la section Autorisations requises.
Autorisations requises
Les autorisations suivantes sont requises pour migrer des projets :
resourcemanager.projects.getIamPolicydans le projet que vous souhaitez migrer entre des ressources Organisationresourcemanager.projects.updatedans le projet que vous souhaitez migrer entre des ressources Organisationresourcemanager.projects.movedans la ressource parente du projet (dossier ou ressource Organisation)- Si la ressource de destination est un dossier :
resourcemanager.projects.movedans la ressource de destination - Si la ressource de destination est une ressource Organisation :
resourcemanager.projects.createdans la ressource de destination - Si vous souhaitez migrer un projet qui n'est pas associé à une organisation :
resourcemanager.projects.setIamPolicydans 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 projet est limitée. Vous devez autoriser explicitement l'exportation et l'importation en définissant des règles d'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 de destination.
Dans la ressource Organisation source : définissez la règle
constraints/resourcemanager.allowedExportDestinations. Ajoutez l'ID de l'organisation de destination comme valeur autorisée.Dans la ressource 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 de la Google Cloud CLI ou de l'API Resource Manager.
gcloud
Pour migrer un projet vers une autre ressource 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 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 Organisation.
API
À l'aide de l'API Resource Manager v1, vous pouvez migrer un projet entre des ressources 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éthodeprojects.get(). - Mettez à jour le champ
parentavec 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 à effectuer après la migration
Une fois la migration de votre projet effectuée, vous devez effectuer plusieurs tâches post-migration pour assurer la continuité des opérations, la conformité en matière 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 que vous pouvez 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 : 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 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 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 Organisation inclut souvent également l'obligation de passer à un nouveau compte de facturation.
Pour modifier le compte de facturation, procédez comme suit :
- Accédez à la page Facturation dans la Google Cloud console.
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 Organisation à une autre, bien que cette étape ne soit souvent pas nécessaire. La plupart des ressources 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 disposer du rôle roles/billing.admin dans le compte de facturation, ainsi que des rôles roles/billing.admin et roles/billing.creator dans la ressource Organisation que vous souhaitez associer à votre compte de facturation.
Si vous devez migrer un compte de facturation existant, procédez comme suit :
- Dans la Google Cloud console, 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 Organisation de destination, puis cliquez sur OK.
Le compte de facturation est maintenant associé à la ressource 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 annuler une migration, procédez comme suit :
- Échangez les ID source et de destination dans vos règles d'administration (
allowedExportDestinationsetallowedImportSources). - Répétez la commande de migration en déplaçant le projet vers l'ID source d'origine.