启用专用服务访问通道

服务提供方可以允许服务使用方通过专用 IP 地址 (RFC 1918) 或公共 IP 地址预配资源。如果服务使用方想要使用专用 IP 地址,他们必须使用专用服务访问通道。但是,只有在您的托管式服务提供专用服务访问通道的情况下,服务使用方才能使用该通道。要提供专用连接,您必须完成一次性引导流程

引导流程要求您使用 Service Networking API 和租户单元。如需了解详细的分步说明,请与您的 Google 代表联系。

概览

以下部分介绍了为您的托管式服务启用专用服务访问通道所需的组件和常规网络拓扑。

租户单元

服务使用方启用您的托管服务后,该服务会创建一个租户单元,以正式定义您的 Google Cloud 组织与服务使用方的项目之间的关系。租户单元可将不同服务使用方之间的资源和结算费用隔离。

每个服务使用方将有两个租户单元:一个用于您的托管式服务,另一个用于专用访问通道管理服务。托管式服务是您向服务使用方提供的外部服务,而专用访问通道管理服务用于管理与服务使用方 VPC 网络之间的专用连接。这些租户单位必须位于托管服务所在的 Google Cloud 组织中。

Service Networking

Service Networking 可自动完成您与服务使用方之间的专用连接设置(使用 VPC 网络对等互连)。要启用和使用 Service Networking,请选择在其中创建了专用访问通道管理服务的项目。此项目不同于您的托管式服务所属的项目。

当服务使用方创建到您的托管式服务的专用连接时,Service Networking 会为您创建一个共享 VPC 宿主项目和一个共享 VPC 网络。主机项目和网络是在您的组织中预先指定的 Google Cloud 文件夹中创建的。您可以在引导流程中指定此文件夹名称。该项目和网络包含在一个租户单元中,因此它们处于隔离状态,并且只能由该服务使用方使用。

创建共享 VPC 网络后,Service Networking 会自动在共享 VPC 网络和服务使用方指定的 VPC 网络之间创建 VPC 网络对等互连连接。

服务使用方在创建专用连接时还必须提供已分配的 IP 地址范围。此分配预留仅供服务提供方使用的 IP 地址。例如,当服务使用方预配资源时,您可以使用 Service Networking 在共享 VPC 网络中创建子网。Service Networking 会自动从此分配的范围中选择一个范围作为子网的 IP 地址范围。此过程可防止共享 VPC 网络与服务使用方 VPC 网络之间的冲突。

共享 VPC 服务项目

当您的服务首次预配服务使用方的资源时,您的托管式服务会在与 Service Networking 宿主项目关联的共享 VPC 服务项目中预配该资源。通过这种共享 VPC 关系,服务项目中的资源便可使用共享 VPC 网络中的子网。

您的托管式服务会在租户单元和预先指定的文件夹(在引导流程中指定)中创建服务项目。该文件夹和租户单元与您的托管式服务关联,与 Service Networking 使用的文件夹和租户单元不同。

网络拓扑

以下示例演示了一个与单个服务提供方建立了专用连接的服务使用方。该服务使用方在不同区域预配了两种资源。由于每种资源位于不同的区域,因此它们属于不同的子网。

服务提供方的 Service Networking 概览(点击可放大)
  • 有两个 Endpoints 项目:一个用于托管式服务,另一个用于专用访问通道管理服务。这些必须位于同一 Google Cloud 组织中。

  • 在 Google Cloud 组织中,有两个文件夹,每个 Endpoints 服务一个。专用访问管理服务文件夹包含用于专用连接的共享 VPC 宿主项目。托管式服务文件夹包含用于服务使用方资源的服务项目。

    • 在每个文件夹中,与服务使用方相关的项目包含在租户单元中。两个租户单位都与 consumer-project-a 相关联。
  • 服务使用方必须启动专用连接(这也是 VPC 网络对等互连连接)。他们必须提供为专用连接分配的 IP 地址范围,以用于分配子网 IP 地址。要了解服务使用方所需执行步骤的更多信息,请参阅配置专用服务访问通道

    • 如果您提供多项服务,服务使用方只需要一个专用连接。进出服务使用方的所有流量都会流经共享 VPC 宿主项目。
  • 在单个服务使用方项目中,多个 VPC 网络可以私密方式连接您的服务。在这种情况下,每个连接的 VPC 网络需要一个共享 VPC 宿主项目。但是,所有这些项目都可以包含在同一 consumer-project-a 租户单元中。

  • 在宿主项目中,您必须配置防火墙规则和路由以启用到新资源的连接。由于其他服务可以使用相同的共享 VPC 网络,因此这些规则可以允许或拒绝不同服务之间的连接。

引导流程

下文简要描述了引导流程。您必须为提供专用连接的每项托管式服务执行此流程。如需了解更多信息,请与您的 Google 代表联系。

  1. 创建对等互连管理服务。

    这是服务提供方通过 Service Management 和 Endpoints API 构建的一项托管式服务。如需了解更多信息,请与您的 Google 代表联系。

  2. 向您的 Google 代表提供以下配置信息:

    • 服务使用方在与您建立连接时必须分配的最小 IP 地址范围(以 IPv4 前缀长度的形式指定)。如果您提供多项服务,则可能希望用户分配更大的 IP 地址范围,例如 /16
    • 专用访问通道管理服务在其中创建共享 VPC 宿主项目的文件夹 ID。可使用 Resource Manager 查找此文件夹 ID。
    • 与您的专用访问通道管理服务在其中创建共享 VPC 宿主项目的组织关联的结算帐号。
    • 管理宿主项目的网络防火墙规则的成员(通常是服务帐号 ID)。
  3. 激活 Compute Engine API。

    对于每个共享 VPC 宿主项目,您可以使用 Service Usage API 或在项目配置中激活 compute.googleapis.com API。

    预配完资源后,请为宿主项目中的共享 VPC 网络配置防火墙规则。您必须使用自己在引导流程中提供的身份来访问 VPC 网络。如果您提供其他服务,那些服务有可能使用相同的 VPC 网络。请勿创建可能意外允许或拒绝流向其他服务的流量的规则。

  4. 向服务使用方发送通知。

    告知服务使用方必须建立专用连接。如需了解更多信息,请参阅配置专用服务访问通道。服务使用方必须提供以下信息:

    • 要在其中建立专用连接的项目和网络的名称。
    • 必须在其中预配资源的 Cloud 区域。

后续步骤