迁移 Google Cloud 项目是一项元数据操作,用于更改项目在资源层次结构中的位置。本页面简要介绍了迁移的工作方式、项目迁移到新组织后哪些内容保持不变,以及哪些内容会发生变化。
资源层次结构中的项目
项目资源是 Google Cloud组织资源中的基本级层组织实体。项目在组织资源下创建,并且可以置于文件夹或组织资源本身之下,形成资源层次结构。
由于收购、监管要求或业务部门分离等原因,您可能需要在组织资源之间迁移项目。您可以使用 Resource Manager API 迁移这些项目;该 API 还允许您回滚迁移操作,以便在必要时将项目移回层次结构中的原始位置。
迁移场景
项目的位置决定了您需要采取哪种迁移方式:
- 将项目从一个组织迁移到另一个组织资源。
- 将独立项目(在没有组织的情况下创建)迁移到组织资源的层次结构中。
确定项目的当前状态
在开始之前,您必须确定项目是否与组织资源相关联。这决定了您是遵循组织到组织的路径还是无组织的路径。
如果您没有项目父组织资源的 resourcemanager.organizations.get 权限,那么您的项目很可能无法在Google Cloud 控制台中的实际组织下按预期显示。这可能会使您看起来该项目未与任何组织资源相关联。
如需确定项目是否与组织资源相关联,请运行以下命令:
gcloud
gcloud projects describe PROJECT_ID
将 PROJECT_ID 替换为要迁移的项目的 ID。
如果输出包含 parent 字段,则表示您的项目已属于组织层次结构。
如果 parent 字段缺失或为空,则表示相应项目是独立项目,没有组织资源。
请根据项目的状态,按照相关指南操作:
- 如果您想迁移未与任何组织相关联的项目,请参阅迁移未与组织资源相关联的项目。
- 如果您想将项目从一个组织迁移到另一个组织资源,请参阅在组织资源之间迁移项目。
迁移的工作原理
项目迁移不是数据传输。您的服务、数据库和虚拟机 (VM) 实例保持活跃状态,不会出现停机情况。迁移会更新项目的父资源。由于 Google Cloud 遵循分层继承模型,因此项目在附加到新父级后,其安全状况会立即发生变化。
| 功能 | 状态 | 影响 |
|---|---|---|
| 项目 ID 和编号 | 保持不变 | API 密钥、服务名称和硬编码 ID 保持不变。 |
| 数据和资源 | 保持不变 | 虚拟机、存储分区和数据库保持在线状态。 |
| 直接 IAM 角色 | 保持不变 | 直接在项目上授予的角色会随项目一起迁移。 |
| 继承的 IAM 角色 | 变化 | 在源组织或文件夹级层授予的角色会丢失。 |
| 组织政策 | 变化 | 来源限制已替换为目的地限制。 |
| 配额 | 变化 | 继承的组织级配额会丢失;项目级配额会保留。 |
| 结算账号 | 保持不变 | 项目仍与原始结算账号相关联。 |
配额影响
如果您在特定资源级别定义了配额,则迁移后会应用以下方面:
- 项目级定义的任何配额都将保持不变。
- 在组织资源级层定义的任何配额都不会转移。组织会失去所有继承的配额。
您可以使用以下页面来确定哪些配额应用于组织资源:
示例
$ gcloud alpha services quota list --service=compute.googleapis.com --consumer=projects/workloadyee --filter="metric: compute.googleapis.com/cpus"
...
- defaultLimit: '600'
dimensions:
region: us-central1
effectiveLimit: '650'
...
重要考虑因素
在开始迁移之前,请查看以下高风险区域,以防止服务中断:
配额限制:如果目标组织的配额限制低于源组织的配额限制,您的项目在迁移后可能会超出其配额。
共享 VPC:您无法迁移附加到共享 VPC 的项目。 您必须先将项目从源共享 VPC 中分离,然后才能移动该项目。
自定义角色:如果您的项目依赖于在组织级层定义的自定义 IAM 角色,则这些角色在目标组织中将不存在。在迁移之前,在目标组织中重新创建这些群组。
迁移路线图
请按照以下路线图完成项目迁移流程: