To plan and execute a project migration across organizations in
Google Cloud, use the following checklist to track key
requirements and milestones.


### Create a migration plan

Analyze the impact of the migration on services running inside the project. Changes in the resource hierarchy can affect inherited policies.

<br />

- **Run Move Analysis** : Use the [Move Analysis API](https://docs.cloud.google.com/resource-manager/docs/analyze-move.md.txt) to get a detailed breakdown of blockers.
- **Evaluate policy impact**: Determine how the move affects inherited organization policies and Identity and Access Management (IAM) policies.
- **Plan for downtime**: Some services might experience brief interruptions during the transition.

For more information, see [Create a migration plan](https://docs.cloud.google.com/resource-manager/docs/create-migration-plan.md.txt).

### Address any special cases

Identify and prepare for scenarios that require special handling at the project or organization level.

<br />

- **Check service dependencies**: Review if your project depends on services like Shared VPC, VPC Service Controls, or has active billing/subscriptions.
- **Review special cases list**: Ensure you have a plan for each service listed in the detailed guide.
- **Prepare rollback plan**: Understand how to roll back the migration if issues arise.

For a list of special cases and how to handle them, see
[Handling special cases](https://docs.cloud.google.com/resource-manager/docs/handle-special-cases.md.txt).

### Assign Identity and Access Management roles

Assign the required IAM roles to the same principal email address in both the source and destination organization resources.

<br />

You need the following roles:

- Project IAM Admin (`roles/resourcemanager.projectIamAdmin`) on the project you want to migrate.
- Project Mover (`roles/resourcemanager.projectMover`) on the project's parent resource (folder or organization resource).
- **If the destination is a folder** : Project Mover (`roles/resourcemanager.projectMover`) on the destination folder.
- **If the destination is an organization** : Project Creator (`roles/resourcemanager.projectCreator`) on the destination organization resource.
- Organization Policy Admin (`roles/orgpolicy.policyAdmin`) on both the source and destination organization resources.

For more details, see
[Assign permissions](https://docs.cloud.google.com/resource-manager/docs/perform-migration.md.txt#required-roles).

### Configure organization policies

Enable cross-organization project migration by configuring specific organization policies. Without these, the migration will fail.

<br />

- **Configure source policy** : Set the `constraints/resourcemanager.allowedExportDestinations` constraint on the parent resource to allow exporting to the destination.
- **Configure destination policy** : Set the `constraints/resourcemanager.allowedImportSources` constraint on the destination resource to allow importing from the source.

For more information, see
[Configure organization
policies](https://docs.cloud.google.com/resource-manager/docs/perform-migration#required-org-policies).

### Perform the migration

Execute the migration using the Google Cloud console, Google Cloud CLI, or the Resource Manager API.

<br />

- **Run migration** : Use the `gcloud beta projects move` command or the Cloud Console to perform the move.
- **Verify migration**: Confirm the project appears in the new destination and verify resource access.
- **Perform post-migration tasks**: Verify inherited policies, audit access, and optionally update the billing account.
- **Clean up**: Revoke temporary IAM roles and remove the temporary organization policy constraints.

For step-by-step instructions, see [Perform the migration](https://docs.cloud.google.com/resource-manager/docs/perform-migration.md.txt).