为共享 VPC 配置权限

通过共享 VPC,组织可以将多个项目中的资源连接到一个公用 Virtual Private Cloud (VPC) 网络,让它们能够通过该网络使用内部 IP 地址安全高效地相互通信。

在使用共享 VPC 时,您将某个项目指定为共享 VPC 宿主项目,并将一个或多个服务项目连接到该项目。共享 VPC 宿主项目中的 VPC 网络称为共享 VPC 网络。服务项目中的合格资源可以使用共享 VPC 网络中的子网。

将共享 VPC 与 Migrate to Virtual Machines 搭配使用

如果 Migrate to Virtual Machines 环境使用共享 VPC,您必须确保正确配置权限,以便可以将迁移后的虚拟机部署到 Compute Engine 目标项目。

例如,假设您拥有以下环境:

  • 项目 A - Migrate to Virtual Machines 宿主项目
  • 项目 B - 共享 VPC 宿主项目和子网定义
  • 项目 C - Migrate to Virtual Machines 目标项目和共享 VPC 服务项目

在此示例中,您要在项目 B 中定义共享 VPC。项目 B 即为共享 VPC 宿主项目

然后,您将虚拟机迁移到项目 C 的 Migrate to Virtual Machines 目标项目中的 Compute Engine 实例,其中项目 C 会访问共享 VPC。在此示例中,项目 C 被称为共享 VPC 服务项目。在部署 Compute Engine 实例之前,您必须已按照预配共享 VPC 中的说明,将项目 C 配置为项目 B 的函数即服务项目。

但是,在部署 Compute Engine 实例之前,您还必须确保项目 A 的 Migrate to Virtual Machines 默认服务账号具有所需的权限。具体来说,Migrate to Virtual Machines 需要共享 VPC 宿主项目中子网的 compute.networkUser 角色。

以下部分介绍了如何配置 Migrate to Virtual Machines 默认服务账号。

配置 Migrate to Virtual Machines 默认服务账号

按照安装 Migrate Connector 中的说明,在首次迁移期间,在宿主项目上创建默认服务账号。

如需将 Compute Engine 实例部署到访问共享 VPC 的目标项目,您必须将共享 VPC 宿主项目中子网的 compute.networkUser 角色添加到 Migrate to Virtual Machines 默认服务账号。您可以通过以下两种方式添加此角色:

  • 将 Migrate to Virtual Machines 默认服务账号指定为 Service Project Admin,并使其仅有权访问共享 VPC 宿主项目中的部分子网。通过向 Service Project Admin 仅授予共享 VPC 宿主项目中部分子网的 compute.networkUser 角色,此方式可以提供一种精细的方法来定义 Service Project Admin。

    如需了解此过程的步骤,请参阅部分子网的 Service Project Admin

  • 将 Migrate to Virtual Machines 默认服务账号作为 Service Project Admin,并使其有权访问共享 VPC 宿主项目中的所有子网。在这种情况下,您可以将共享 VPC 宿主项目的 compute.networkUser 角色授予 Migrate to Virtual Machines 默认服务账号。然后,默认服务账号能够访问共享 VPC 宿主项目中的所有现有子网和未来子网。

如需配置 Migrate to Virtual Machines 默认服务账号,以访问共享 VPC 宿主项目中的所有子网,请执行以下操作:

  1. 打开 Google Cloud 控制台中的 Migrate to Virtual Machines 页面:

    转到 Migrate to Virtual Machines 页面

  2. 选择目标标签页。

    该页面顶部是一个信息框,其中显示 Migrate to Virtual Machines 默认服务账号的电子邮件地址,格式为:

    service-M4CE_HOST_PROJECT_NUMBER@gcp-sa-vmmigration.iam.gserviceaccount.com

  3. 复制电子邮件地址。

  4. 使用该电子邮件地址将共享 VPC 宿主项目的 compute.networkUser 角色授予 Migrate to Virtual Machines 默认服务账号:

    gcloud projects add-iam-policy-binding VPC_HOST_PROJECT_ID \
       --member=serviceAccount:service-M4CE_HOST_PROJECT_NUMBER@gcp-sa-vmmigration.iam.gserviceaccount.com \
       --role=roles/compute.networkUser

如需详细了解如何为用户账号分配角色和权限,请参阅授予、更改和撤消对资源的访问权限