本页介绍了将 Google Cloud 项目从一个组织 资源迁移到另一个组织资源,或从无组织资源迁移到组织资源的步骤。
如需迁移项目,您必须确保自己拥有正确的 Identity and Access Management (IAM) 权限,并且在源资源和目标资源上都配置了特定的组织政策。
准备工作
项目迁移是一项跨组织操作。为防止未经授权移动资源,您必须满足以下要求。
所需角色
如需获得在组织资源之间迁移项目所需的权限,请让管理员向您授予以下 IAM 角色:
- 待在组织资源之间迁移项目的 Project IAM Admin (
roles/resourcemanager.projectIamAdmin) - Project Mover (
roles/resourcemanager.projectMover) 项目的父级资源(文件夹或组织资源)上的 -
如果目标资源是文件夹:
Project Mover (
roles/resourcemanager.projectMover) 目标资源上的 -
如果目标资源是组织:
Project Creator (
roles/resourcemanager.projectCreator) 目标资源上的
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
您也可以通过自定义 角色或其他预定义 角色来获取所需的权限。
必须在源组织和目标组织中向同一用户账号授予这些角色。 这些预定义角色包含迁移项目所需的权限。 如需查看所需的确切权限,请展开所需权限 部分。
所需权限
如需迁移项目,您需要以下权限:
- 待在组织资源之间迁移项目的
resourcemanager.projects.getIamPolicy - 待在组织资源之间迁移项目的
resourcemanager.projects.update - 项目的父级资源(文件夹或组织资源)上的
resourcemanager.projects.move - 如果目标资源是文件夹: 目标资源上的
resourcemanager.projects.move - 如果目标资源是组织资源: 目标资源上的
resourcemanager.projects.create - 如果要迁移未与组织关联的项目: 待迁移项目的
resourcemanager.projects.setIamPolicy
您还可以通过 自定义角色或其他预定义角色获取这些权限。
必需的组织政策
默认情况下,项目迁移受到限制。您必须通过在两个组织的根级层设置组织政策来明确允许导出和导入。如需配置迁移所需的组织政策,您必须拥有父组织和目标组织的 roles/orgPolicy.policyAdmin 角色。
在源组织资源上:设置
constraints/resourcemanager.allowedExportDestinations政策。 将目标组织的 ID 添加为允许的值。在目标组织资源上:设置
constraints/resourcemanager.allowedImportSources政策。 将源组织的 ID 添加为允许的值。
执行迁移
授予权限并强制执行政策后,您可以使用 Google Cloud CLI 或 Resource Manager API 迁移项目。
gcloud
如需将项目迁移到另一个组织资源,请运行以下命令:
gcloud beta projects move PROJECT_ID \
--organization ORGANIZATION_ID
您还可以使用以下命令将文件夹指定为目标资源:
gcloud beta projects move PROJECT_ID \
--folder FOLDER_ID
替换以下字段:
- PROJECT_ID:要 迁移项目的 ID 或编号。
- ORGANIZATION_ID:要将项目迁移到的组织资源的 ID。
- FOLDER_ID:要将项目迁移到的文件夹的 ID。
您只能指定一个目标(即文件夹或组织资源)。
API
借助 v1 Resource Manager API,您可以通过将项目的 parent 字段设置为目标资源的 ID,在组织资源之间迁移项目。
如需迁移项目,请执行以下操作:
- 使用
projects.get()方法获取project对象。 - 将
parent字段更新为目标资源 ID。 - 执行
projects.update()方法。
以下代码段展示了这些步骤: