从组织中迁移项目

Google Cloud 项目资源只有在尚未与组织关联时,才能迁移到组织中。本指南介绍了如何与 Google 支持团队合作,将与某个组织关联的项目迁移到其他组织中。

本指南假定目标组织与源组织非常相似。本指南不会介绍将应用集成到新生态系统中这种更复杂的设计工作。

规划和执行迁移

第 1 步:准备您的项目

将项目从一个组织迁移到另一个组织是一个需要进行项目配置的手动支持流程。

请按照以下列表做好迁移项目资源的准备工作:

  • 如果您已更改贵组织 Google 帐号的主网域,则当您创建案例以向 Google 支持团队寻求帮助时,请提供此信息。
  • 针对要迁移的项目停用共享 VPC 网络
  • 在待迁移项目所在的级层配置所需的任何自定义组织级层 Cloud Identity and Access Management 角色。如需了解更多详细信息,请参阅自定义 Cloud IAM 角色
  • 将所有组织政策设置为继承自父资源,并提前进行审核,以便了解迁移后这些政策会造成的影响。如需了解更多详细信息,请参阅下面的组织政策
  • 为与目标组织关联的主网域设置电子邮件路由,以便接受新项目资源的所有权
  • 授予您在处理目标组织资源时所需的 Cloud IAM 角色。例如 roles/resourcemanager.projectCreator。 在项目迁移到目标组织后,系统会移除所有继承的角色。
  • 如果您要在目标组织中使用网域限定共享功能,请将可访问源组织资源的网域添加到目标组织的白名单中。
  • 如果项目资源位于某一文件夹下,您可以将该资源直接迁移到组织资源之下。如果项目是文件夹资源的子级,则无法迁移该项目。

第 2 步:创建支持案例

如果您的服务计划包含 Google 专业服务部门 (PSO),则您应与 PSO 一同规划您的项目迁移作业。Google 技术支持客户经理 (TAM) 可协助您与 Google 方的相关团队进行协调。

发出此请求的用户必须在源组织中具有 role/resourcemanager.organizationAdmin 角色,并且必须对要迁移的项目资源拥有 roles/owner 角色。

要开始执行迁移过程,请创建支持案例并提供以下信息:

  1. 每个待迁移项目资源的项目 ID 列表。
  2. 如果您要在迁移计划中与 PSO 配合工作,请添加能够通过环聊与 Google 支持团队和 PSO 开会的日期和时间。TAM 将安排会议以完成您的计划。

Google 支持团队会将您列出的项目资源从它们当前的组织中移除,并在此操作完成后通知您。然后,您可以执行迁移。

第 3 步:执行迁移

要完成迁移,请执行以下操作:

  1. 在 Google 完成从父组织中移除项目后,将项目迁移到新组织中
  2. 根据新的组织层次结构更新项目的服务配置。如需了解详情,请参阅以下与服务相关的部分。

缓解服务问题

Google Cloud 项目资源是使用所有 Google Cloud 服务的基础。项目资源的许多功能都需要依赖组织资源才能使用,因此当您将项目资源从一个组织迁移到另一个组织时,这些功能可能会发生中断。您应该为您要移动的项目资源所使用的每项服务规划缓解策略。

自定义 Cloud IAM 角色

您可以在 Google Cloud 资源层次结构的组织级层创建自定义 Cloud IAM 角色。这些角色可用于向该层次结构中组织资源下的用户授予访问权限。当项目从组织中迁出时,在该组织级层配置的自定义角色不会随之迁移,但在项目级层配置的自定义角色则会一并迁出。

未迁移的组织级层自定义角色将不再发挥作用,并且 getIamPolicy 方法不会将这些自定义角色作为 Cloud IAM 政策的一部分返回。

当您迁移具有自定义角色的项目时,某些原始组织政策可能仍会影响该项目。如果旧组织中的自定义角色存在于新的 Cloud IAM 政策中,则该角色可能会使该政策失效,并且在您尝试更新该政策时导致错误。此问题不太可能在迁移后立即出现,因为它只有在您尝试更新 Cloud IAM 政策时才会出现。

要列出组织层级的现有自定义角色,请运行以下命令:

gcloud iam roles list --organization ORGANIZATION_ID

要描述组织中的特定自定义角色,请运行以下命令:

gcloud iam roles describe --organization ORGANIZATION_ID /
ROLE_NAME

其中:

缓解措施

要降低现有自定义 Cloud IAM 角色发生错误的风险,请执行以下操作:

  1. 使用 projects.getIamPolicy 方法获取待迁移项目的 Cloud IAM 政策。
  2. 针对项目 Cloud IAM 政策中的每个组织级层自定义角色,创建等效的项目级层自定义角色,并更新项目 Cloud IAM 政策以使用这些新角色。
    1. 如果您需要增加项目配额,请提交申请
  3. 从要移动的项目中移除组织层级的 Cloud IAM 自定义角色绑定。
  4. 按前面介绍的方法迁移项目。
  5. 更新已迁移项目中资源的 Cloud IAM 政策,以使用目标组织中的自定义角色。

如需了解详情,请参阅创建和管理自定义角色

共享 VPC

Google Cloud 中的共享 VPC 使用组织资源进行分组。 项目资源只能连接到同一组织中的共享 VPC。 迁移到新组织的项目不会保留共享 VPC 连接。

共享 VPC 通过已预配共享 VPC 的宿主项目实现,并可供服务项目使用。

您无法将 Compute Engine 虚拟机从一个 VPC 直接移动到另一个 VPC,而必须迁移或重新创建这些虚拟机。虚拟机通常在共享的 VPC 服务项目中预配,而不是直接在共享的 VPC 宿主项目中预配。

要列出某个组织资源中的所有共享 VPC 宿主项目,请运行以下命令:

gcloud beta compute shared-vpc organizations list-host-projects
ORGANIZATION_ID

其中,ORGANIZATION_ID 是您的组织 ID

缓解措施

  1. 转到 Cloud Console 中的共享 VPC 页面。
    转到“共享 VPC”页面
  2. 列出共享 VPC 页面上显示的宿主项目、共享 VPC 网络以及所有附加的服务项目。
    1. 如果您要迁移组织中的所有项目,请使用上面的 list-host-projects 命令列出所有共享 VPC 宿主项目。
  3. 在新组织中预配等效的宿主项目和共享 VPC。 如需了解详细说明,请参阅设置共享 VPC
  4. 从源组织的共享 VPC 中移除要迁移的项目:
    1. 为连接到该共享 VPC 的虚拟机磁盘截取快照
    2. 关停连接到该共享 VPC 的虚拟机
    3. 删除虚拟机
    4. 移除任何连接到该共享 VPC 的内部负载平衡器
  5. 通过快照恢复虚拟机,并将其连接到服务项目中属于本地范围的 VPC。
  6. 执行迁移。
  7. 将移动的项目连接到新的共享的 VPC。

VPC 对等互连

使用 Google VPC 对等互连的项目可以在组织之间移动,因为 VPC 对等互连不依赖组织成员资格来运行。这意味着,如果将项目移动到已启用 VPC 对等互连的组织,则系统会为该项目启用对等互连。

缓解措施

如果您要将项目移动到已启用 VPC 对等互连的组织,请在迁移前确定该对等互连的另一端的情况,并确认您是否希望项目启用 VPC 对等互连。

Cloud Interconnect

只有在没有为 Cloud Interconnect 定义 VLAN 连接时,包含专用互连的项目才能移动到新组织中。

缓解措施

在迁移之前,从要移动的项目中移除所有 VLAN 连接。

网域重命名

如果源组织曾经更改过域名,则 Google 可能需要执行其他步骤才能将项目移出该组织。

缓解措施

当您创建迁移项目的支持案例时,请提供网域更改操作的详细信息,包括原始域名和新域名。Google 有一些专门处理此情况的工具,但可能需要更多时间来完成迁移。

组织政策

如果将项目移动到新组织,可能会更改基于继承而应用到该项目的政策。源组织中的政策可能与目标组织中的政策不同,并且有效的组织政策可能会在迁移后以不同方式影响您的项目。

缓解措施

将要移动的每个项目的组织政策设置为从父级资源继承。我们建议您提前审核这些政策,以便制定一组能够在新组织中发挥作用的新组织政策。

如需详细了解如何继承组织政策,请参阅了解层次结构评估

Cloud Billing

Cloud Billing 帐号可以跨组织使用。将项目从一个组织移动到另一个组织不会影响结算,系统会对旧结算帐号继续收费。不过,项目在组织之间进行移动时,系统通常还会要求改用新的结算帐号。

更改项目的结算帐号

要更改现有项目的结算帐号,您必须在该项目中拥有 roles/owner 角色,并且对目标结算帐号拥有 roles/billing.admin 角色。要更改结算帐号,请执行以下操作:

  1. 转到 Cloud Console 中的“结算”页面
    转到“结算”页面
  2. 点击要更改的结算帐号的名称。
  3. 与此结算帐号相关联的项目下,找到要移动的项目的名称,然后点击右侧的菜单按钮。
  4. 点击更改结算帐号,然后选择新的结算帐号。
  5. 点击设置帐号

已经产生但尚未在交易历史记录中报告的费用将被计入原来的结算帐号。这可能包括项目迁移之前最多两天的费用。

在组织间迁移结算帐号

结算帐号可以从一个组织迁移到另一个组织,但这通常不是必须执行的步骤。大多数现有组织已经拥有应该改用的结算帐号。如果您需要迁移现有结算帐号,请执行以下操作:

  1. 获取迁移所需的权限:
    1. 针对源组织的 role/resourcemanager.organizationAdmin 权限。
    2. 针对源组织或特定待迁移结算帐号的 roles/billing.admin 权限。
    3. 针对目标组织的 role/resourcemanager.organizationAdmin 权限。
    4. 针对目标组织的 roles/billing.adminroles/billing.creator 权限。
  2. 转到 Cloud Console 中的“结算”页面
    转到“结算”页面
  3. 点击待迁移结算帐号的名称。
  4. 概览页面的顶部,点击更改组织
  5. 选择目标组织,然后点击确定

该结算帐号现在已经与指定的组织相关联。