控制对已发布服务的访问权限简介

本页面介绍了可用于控制对通过 Private Service Connect 发布的服务进行访问的功能。

连接偏好设置

每个服务连接都有一个连接偏好设置,用于控制是否自动接受连接。

  • 自动接受所有连接。服务连接会自动接受来自任何使用方的所有入站连接请求。
  • 明确接受来自所选使用方的连接。仅当使用方在服务连接的使用方接受列表中时,服务连接才会接受入站连接请求。您可以按项目、VPC 网络或单独的 Private Service Connect 端点(预览版)指定使用方。您不能在同一使用方接受或拒绝列表中包含不同类型的使用方。

对于任一连接偏好设置,已被接受的连接都可能会被阻止传入连接的组织政策覆盖并被拒绝。

我们建议您明确接受来自所选使用方的连接。如果您通过其他方式控制使用方访问权限并希望启用对服务的宽松访问权限,则自动接受所有连接可能比较合适。

使用方接受和拒绝列表

使用方接受列表和使用方拒绝列表是服务连接的安全功能。这些列表可让服务提供方指定哪些使用方可以建立与其服务的 Private Service Connect 连接。如果服务连接配置为需要明确批准,则只有当使用方在接受列表中且不在拒绝列表中时,系统才会接受新连接。对使用方列表的更新仅会影响新连接,除非启用了连接协调

使用方接受和拒绝列表允许您通过以下方式之一指定使用方:

  • 项目
  • VPC 网络
  • Private Service Connect 端点(预览版

    此方法不适用于 Private Service Connect 后端。

如果您将同一使用方同时添加到接受列表和拒绝列表,则该使用方将被阻止连接到服务连接。不支持按文件夹指定使用方。

服务连接的两个使用方列表必须包含相同类型的使用方。例如,如果您将项目添加到接受列表,则无法将 VPC 网络或端点 URI 添加到任一列表,除非您将接受列表中的项目替换为新类型的使用方。

如果您想要发布一个接受不同类型使用方的服务,可以创建连接到同一服务的多个服务连接。每个服务连接都可以配置自己的连接偏好设置和使用方列表。

您可以在不中断连接的情况下更改使用方列表中的使用方类型,但必须在单次更新中进行更改。否则,操作将失败。

您可以添加到接受列表和拒绝列表中的使用方数量有限制:

  • 您最多可以向使用方接受列表添加 5,000 个值。
  • 您最多可以向使用方拒绝列表添加 64 个值。

使用方列表控制端点或后端是否可以连接到已发布的服务,但不控制谁可以向该端点发送请求。例如,假设使用方有一个共享 VPC 网络,该网络有两个服务项目关联到它。如果已发布的服务在使用方接受列表中包含 service-project1,并且在使用方拒绝列表中包含 service-project2,则以下情况适用:

  • service-project1 中的使用方可以创建连接到已发布服务的端点。
  • service-project2 中的使用方无法创建连接到已发布服务的端点。
  • 如果没有防火墙规则或政策阻止该流量,则 service-project2 中的客户端可以向 service-project1 中的端点发送请求。

如需了解使用方接受列表如何与组织政策交互作用,请参阅使用方接受列表与组织政策之间的交互作用

使用方接受列表限制

使用方接受列表具有连接数限制。这些限制会设置服务连接可以从指定的使用方项目或 VPC 网络接受的 Private Service Connect 端点和后端连接总数。为基于 Private Service Connect 端点的接受列表指定连接数限制无效,因为只有一个端点能匹配给定的 URI。

提供方可以使用连接限制来防止个别使用方耗尽提供方 VPC 网络中的 IP 地址或资源配额。每个接受的 Private Service Connect 连接都会从为使用方项目或 VPC 网络配置的限制中减去。您可以在创建更新使用方接受列表时设置这些限制。您可以在描述服务连接时查看其连接。

传播的连接不计入这些限制。

例如,假设一种场景,服务连接具有使用方接受列表,其中包含 project-1project-2,两者的连接限制均为一个。项目 project-1 请求了两个连接,project-2 请求了一个连接,project-3 请求了一个连接。由于 project-1 的连接限制为一个,因此第一个连接会被接受,第二个连接会保持待处理状态。来自 project-2 的连接会被接受,来自 project-3 的连接会保持待处理状态。可通过提高 project-1 的限制接受来自 project-1 的第二个连接。如果将 project-3 添加到使用方接受列表,则该连接会从待处理状态转换为已接受状态。

连接协调

连接协调可确定对服务连接的接受或拒绝列表的更新是否会影响现有的 Private Service Connect 连接。如果启用了连接协调,更新接受或拒绝列表可能会终止现有连接。之前被拒绝的连接可能会变为已接受。如果停用了连接协调,则更新接受或拒绝列表仅会影响新的和待处理的连接。

例如,假设一个具有来自 Project-A 的多个已接受连接的服务连接。Project-A 在服务连接的接受列表中。服务连接通过从接受列表中移除 Project-A 进行更新。

如果启用了连接协调,则来自 Project-A 的所有现有连接都会变为 PENDING 状态,这会终止两个 VPC 网络之间的网络连接,并立即停止网络流量。

如果停用了连接协调,则来自 Project-A 的现有连接不会受影响。网络流量仍然可以跨现有 Private Service Connect 连接流动。不过,系统会禁止建立任何新的 Private Service Connect 连接。

如需了解如何为新的服务连接配置连接协调,请参阅通过明确批准发布服务

如需了解如何为现有服务连接配置连接协调,请参阅配置连接协调

接受或拒绝 Private Service Connect 端点连接

您可以将 Private Service Connect 端点的基于 ID 的 URI 添加到服务连接的使用方列表中,以接受或拒绝单个 Private Service Connect 端点连接。此方法(建议用于多租户服务)可提供最精细的连接管理控制。通过 Private Service Connect 端点接受使用方仅适用于 Private Service Connect 端点,不支持 Private Service Connect 后端。

与项目或 VPC 网络不同,您只能在使用方创建 Private Service Connect 端点后接受或拒绝单个端点。这是因为在服务使用方创建端点之前,无法知道端点的唯一 URI。向使用方接受列表添加端点涉及以下步骤:

  1. 提供方发布了一项需要明确批准的服务,但未向使用方接受列表添加任何值。
  2. 使用方创建连接到已发布服务的端点。该连接会显示在服务连接中,状态为 Pending
  3. 如需查找待处理端点的基于 ID 的 URI,提供方可以描述服务连接,使用方可以描述端点。
  4. 提供方将端点的基于 ID 的 URI 添加到使用方接受列表中。连接已建立,其状态会变为 Accepted

连接状态

Private Service Connect 端点、后端和服务连接具有连接状态,用于描述其连接状态。 构成连接两端的使用方和提供方资源始终具有相同的状态。 当您查看端点详细信息描述后端查看已发布服务的详细信息时,您可以查看连接状态。

下表介绍了可能的状态。

连接状态 说明
已接受 已建立 Private Service Connect 连接。两个 VPC 网络具有连接,并且连接正常运行。
待处理

未建立 Private Service Connect 连接,并且网络流量无法在两个网络之间传输。连接可能处于以下状态,原因如下:

由于这些原因而被阻止的连接将无限期地保持在挂起状态,直到根本问题得到解决。

已拒绝

未建立 Private Service Connect 连接。网络流量无法在两个网络之间传输。连接可能处于以下状态,原因如下:

需要注意 连接的提供方端出现问题。某些流量可能能够在两个网络之间流动,但某些连接可能无法正常运行。例如,提供方的 NAT 子网可能已用尽,无法为新连接分配 IP 地址。
不开放

服务连接已删除,Private Service Connect 连接已关闭。网络流量无法在两个网络之间传输。

连接关闭是一种终止状态。如需恢复连接,您必须重新创建服务连接和端点或后端。

传播连接数

使用端点连接到服务连接的使用方可以启用连接传播。传播的连接可让使用方 VPC spoke 中的工作负载访问提供方 VPC 网络中的托管式服务,就像两个 VPC 网络通过端点直接连接一样。每个传播的连接都使用服务连接的 NAT 子网中的 IP 地址。

当您查看已发布服务的详细信息时,可以查看与已连接端点关联的传播连接数。此计数不包括因提供方的传播连接数限制阻止的传播连接。

传播连接数限制

服务连接具有传播连接数限制,这可让服务提供方对单个使用方可以与服务连接建立的传播连接数进行限制。如果未指定此项,则默认传播连接数限制为 250。

  • 如果服务连接的连接首选项为 ACCEPT_MANUAL,则该限制会根据使用方接受列表中的使用方类型来应用:
    • 对于基于项目的使用方接受列表,该限制适用于列表中的每个项目。
    • 对于基于 VPC 网络的使用方接受列表,该限制适用于列表中的每个网络。
    • 对于基于 Private Service Connect 端点的使用方接受列表(预览版),该限制适用于列表中每个端点的项目。如果同一项目中的多个端点位于该列表中,则它们共用一个限额。
  • 如果连接首选项为 ACCEPT_AUTOMATIC,则该限制适用于包含已连接端点的每个项目。

如果使用方超出传播连接数限制,则不会再创建传播连接。如需允许创建更多传播端点,您可以提高传播连接数限制。 当您提高此限制时,只要新连接不超过更新后的限制,Network Connectivity Center 就会创建因此限制而被阻止的传播连接。更新此限制不会影响现有的传播连接。

防止配额用尽

可访问提供方 VPC 网络的任何使用方发起的 Private Service Connect 端点和传播连接的总数由 PSC ILB consumer forwarding rules per producer VPC network 配额控制。对于多租户服务,尤其要防范此配额耗尽的情况。

您可以使用以下限制来防止配额耗尽:

  • 使用方接受列表连接数限制控制可以创建从单个使用方 VPC 网络或项目到服务连接的连接的 Private Service Connect 端点总数。降低这些限制不会影响现有连接。这些限制不适用于传播的连接。
  • 传播连接数限制控制可以建立从单个使用方到服务连接的传播连接总数。降低此限制不会影响现有的传播连接。

配额和连接限制示例

以下示例展示了传播连接数限制和使用方接受列表限制如何与 PSC ILB consumer forwarding rules per producer VPC network 配额搭配使用。

假设使用方在 spoke VPC 网络 spoke-vpc-1 中创建了两个端点。两个端点都连接到 producer-vpc-1 中的 service-attachment-1。spoke 连接到启用了连接传播的 Network Connectivity Center hub,并且没有其他 spoke 连接到该 hub。

服务提供方将 service-attachment-1 配置为使用方接受列表限制对于接受列表中的每个项目为 4。提供方将传播连接数限制配置为 2,并指定单个项目最多可以有两个传播的连接。

此示例配置包含两个端点,不包含传播的连接(点击可放大)。

此配置的配额和限制用量如下:

配额/限制 用量 说明
每个提供方 VPC 网络的 PSC ILB 使用方转发规则数 2 每个端点一个
consumer-project-1 的服务连接使用方接受列表连接数限制 2 每个端点一个
consumer-project-1 的服务连接传播连接数限制 0 无传播的连接

假设 consumer-project-1 将另一个名为 spoke-vpc-2 的 spoke 连接到与 spoke-vpc-1 相同的 Network Connectivity Center hub。此操作会在 consumer-project-1 中创建两个传播的连接,每个现有端点对应一个。

此示例配置包含两个端点和两个传播的连接(点击可放大)。

此配置的配额和限制用量如下:

配额/限制 用量 说明
每个提供方 VPC 网络的 PSC ILB 使用方转发规则数 4 每个端点一个,每个传播的连接一个
consumer-project-1 的服务连接使用方接受列表连接数限制 2 每个端点一个
consumer-project-1 的服务连接传播连接数限制 2 每个传播的连接一个

Consumer-project-1已达到传播连接数上限。如果使用方添加另一个 VPC spoke,Private Service Connect 不会创建任何新的传播连接。

假设另一位使用方在 consumer-project-2 中有两个 VPC spoke。这些 spoke 连接到启用了传播连接的 Network Connectivity Center hub。其中一个 VPC spoke 包含一个连接到 service-attachment-1 的端点。

此示例配置包含三个端点和三个传播的连接(点击可放大)。

此配置的配额和限制用量如下:

配额/限制 用量 说明
每个提供方 VPC 网络的 PSC ILB 使用方转发规则数 6 consumer-project-1 中 4 个,在 consumer-project-2 中 2 个
consumer-project-1 的服务连接使用方接受列表连接数限制 2 consumer-project-1 中每个端点一个
consumer-project-2 的服务连接使用方接受列表连接数限制 1 consumer-project-2 中每个端点一个
consumer-project-1 的服务连接传播连接数限制 2 consumer-project-1 中每个传播的连接一个
consumer-project-2 的服务连接传播连接数限制 1 consumer-project-2 中每个传播的连接一个