管理已发布的服务
本页面介绍了如何管理对已发布服务的访问请求、如何更改已发布服务的连接偏好设置,以及如何配置连接协调。
每个服务连接都有一个连接偏好设置,用于指定是否自动接受连接请求。共有三种处理方式:
- 自动接受所有连接。服务连接会自动接受来自任何使用方的所有入站连接请求。自动接受可能会被阻止传入连接的组织政策覆盖。
- 接受选定网络的连接。仅当使用方 VPC 网络在服务连接的使用方接受列表中时,服务连接才会接受入站连接请求。
- 接受选定项目的连接。仅当使用方项目在服务连接的使用方接受列表中时,服务连接才会接受入站连接请求。
我们建议您接受选定项目或网络的连接。如果您通过其他方式控制使用方访问权限并希望启用对服务的宽松访问权限,则自动接受所有连接可能比较合适。
如需详细了解如何发布服务,请参阅发布服务。
角色
以下 IAM 角色提供了执行本指南中的任务所需的权限。
- Compute Network Admin
(
roles/compute.networkAdmin
)
管理对已发布服务的访问请求
如果您已发布了经过明确批准的服务,则可以接受或拒绝来自使用方项目或 VPC 网络的连接请求。
如果您将某个项目或网络同时添加到接受列表和拒绝列表,则来自该项目或网络的连接请求会被拒绝。
为一项服务接受了使用方端点连接后,该端点可以连接到服务,直至此服务连接被删除。无论使用方已明确接受,还是使用方端点在连接偏好设置设置为自动接受连接时已连接,这种情况都适用。
如果您从接受列表中移除了某个项目或网络,则必须先接受该项目中的新使用方端点,然后该端点才能连接。但是,该项目或网络中之前接受的任何使用方端点仍然可以连接到该服务。
如果您将某个项目或网络添加到拒绝列表,则来自该项目或网络中新使用方端点的连接在连接到该服务时会被拒绝。但是,该项目或网络中之前接受的任何使用方端点仍然可以连接到该服务。
控制台
在 Google Cloud 控制台中,转到 Private Service Connect 页面。
点击已发布服务标签页。
点击要管理的服务。
已连接的项目部分列出了已尝试连接到此服务的项目。选中一个或多个项目旁边的复选框,然后点击接受项目或拒绝项目。
gcloud
描述您要修改的服务连接。
gcloud compute service-attachments describe \ ATTACHMENT_NAME --region=REGION
输出类似于以下示例。如果存在任何待处理的使用方连接,则这些连接会以
PENDING
状态列出。在此示例输出中,项目
CONSUMER_PROJECT_1
位于接受列表中,因此接受ENDPOINT_1
并且可以连接到相应服务。项目CONSUMER_PROJECT_2
不在接受列表中,因此ENDPOINT_2
处于待处理状态。将CONSUMER_PROJECT_2
添加到接受列表后,ENDPOINT_2
的状态会更改为ACCEPTED
,并且端点可以连接到相应服务。connectedEndpoints: - endpoint: https://www.googleapis.com/compute/v1/projects/CONSUMER_PROJECT_1/regions/REGION_1/forwardingRules/ENDPOINT_1 pscConnectionId: 'ENDPOINT_1_ID' status: ACCEPTED - endpoint: https://www.googleapis.com/compute/v1/projects/CONSUMER_PROJECT_2/regions/REGION_2/forwardingRules/ENDPOINT_2 pscConnectionId: 'ENDPOINT_2_ID' status: PENDING connectionPreference: ACCEPT_MANUAL consumerAcceptLists: - connectionLimit: LIMIT_1 projectIdOrNum: CONSUMER_PROJECT_1 creationTimestamp: 'TIMESTAMP' description: 'DESCRIPTION' enableProxyProtocol: false fingerprint: FINGERPRINT id: 'ID' kind: compute#serviceAttachment name: NAME natSubnets: - https://www.googleapis.com/compute/v1/projects/PRODUCER_PROJECT/regions/REGION/subnetworks/PSC_SUBNET pscServiceAttachmentId: high: 'PSC_ATTACH_ID_HIGH' low: 'PSC_ATTACH_ID_LOW' region: https://www.googleapis.com/compute/v1/projects/PRODUCER_PROJECT/regions/REGION selfLink: https://www.googleapis.com/compute/v1/projects/projects/PRODUCER_PROJECT/regions/REGION/serviceAttachments/ATTACHMENT_NAME targetService: https://www.googleapis.com/compute/v1/projects/PRODUCER_PROJECT/regions/REGION/forwardingRules/PRODUCER_FWD_RULE
接受或拒绝使用方项目或网络。
您可以指定
--consumer-accept-list
和/或--consumer-reject-list
。您可以在--consumer-accept-list
和--consumer-reject-list
中指定多个值。 您可以添加 VPC 项目或网络,但不能同时添加项目和网络。gcloud compute service-attachments update ATTACHMENT_NAME \ --region=REGION \ --consumer-accept-list=ACCEPTED_PROJECT_OR_NETWORK_1=LIMIT_1,ACCEPTED_PROJECT_OR_NETWORK_2=LIMIT_2 \ --consumer-reject-list=REJECTED_PROJECT_OR_NETWORK_1,REJECTED_PROJECT_OR_NETWORK_2
请替换以下内容:
ATTACHMENT_NAME
:要分配给服务连接的名称。REGION
:服务连接所在区域。ACCEPTED_PROJECT_OR_NETWORK_1
和ACCEPTED_PROJECT_OR_NETWORK_2
:要接受的项目 ID、项目名称或网络网址。--consumer-accept-list
是可选项,可以包含一个或多个项目或网络,但不能同时包含这两种类型。LIMIT_1
和LIMIT_2
:项目或网络的连接限制。连接限制是指可以连接到服务的使用方端点的数量。每个接受的项目或网络都必须配置有一个连接限制。REJECTED_PROJECT_OR_NETWORK_1
和REJECTED_PROJECT_OR_NETWORK_2
:要拒绝的项目 ID、项目名称或网络网址。--consumer-reject-list
是可选项,可以包含一个或多个项目或网络,但不能同时包含这两种类型。
API
描述您要修改的服务连接。
如果存在任何待处理的使用方连接,则这些连接会以
PENDING
状态列出。GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME
接受或拒绝使用方项目或网络。您可以按项目或 VPC 网络在接受和拒绝使用方之间进行更改,但不能同时添加项目和网络。
如需根据项目接受或拒绝使用方,请发送以下
PATCH
请求:PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME
{ ... "consumerAcceptLists": [ { "projectIdOrNum": "ACCEPTED_PROJECT_1", "connectionLimit": "LIMIT_1" }, { "projectIdOrNum": "ACCEPTED_PROJECT_2", "connectionLimit": "LIMIT_2" } ], "consumerRejectLists": [ "REJECTED_PROJECT_1", "REJECTED_PROJECT_2" ], ... }
请替换以下内容:
PROJECT_ID
:服务连接的项目。REGION
:该服务连接的区域。ATTACHMENT_NAME
:要分配给服务连接的名称。ACCEPTED_PROJECT_1
和ACCEPTED_PROJECT_2
:要接受的项目的 ID 或编号。consumerAcceptList
是可选项,可以包含一个或多个项目。LIMIT_1
和LIMIT_2
:相应项目的连接限制。连接限制是指可以连接到服务的使用方端点的数量。每个接受的项目都必须配置有一个连接限制。REJECTED_PROJECT_1
和REJECTED_PROJECT_2
:要拒绝的项目的 ID 或编号。consumerRejectList
是可选项,可以包含一个或多个项目。
如需根据 VPC 网络接受或拒绝使用方,请发送以下
PATCH
请求:PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME
{ ... "consumerAcceptLists": [ { "networkUrl": "projects/ACCEPTED_PROJECT_ID_1/global/network/ACCEPTED_NETWORK_1", "connectionLimit": "LIMIT_1" }, { "networkUrl": "projects/ACCEPTED_PROJECT_ID_2/global/network/ACCEPTED_NETWORK_2", "connectionLimit": "LIMIT_2" } ], "consumerRejectLists": [ "projects/REJECTED_PROJECT_ID_1/global/networks/REJECTED_NETWORK_1", "projects/REJECTED_PROJECT_ID_2/global/network/REJECTED_NETWORK_2" ], ... }
请替换以下内容:
ACCEPTED_PROJECT_ID_1
和ACCEPTED_PROJECT_ID_2
:您要接受的网络的父级项目的 ID。consumerAcceptLists
是可选项,可以包含一个或多个网络。ACCEPTED_NETWORK_1
和ACCEPTED_NETWORK_2
:您要接受的网络的名称。LIMIT_1
和LIMIT_2
:网络的连接限制。连接限制是指可以连接到服务的使用方端点的数量。每个接受的网络都必须配置有一个连接限制。REJECTED_PROJECT_ID_1
和REJECTED_PROJECT_ID_2
:您要拒绝的网络的父级项目的 ID。consumerRejectLists
是可选项,可以包含一个或多个网络。REJECTED_NETWORK_1
和REJECTED_NETWORK_2
:您要拒绝的网络的名称。
更改已发布服务的连接偏好设置
对于已发布服务,您可以在自动接受项目与显式接受项目之间切换。
从自动接受更改为显式接受并不会影响在此更改之前连接到服务的使用方端点。 现有的使用方端点仍可连接到已发布的服务,直到服务连接被删除为止。新的使用方端点只有在被接受后,才能连接到该服务。如需了解详情,请参阅管理对已发布服务的访问请求。
控制台
在 Google Cloud 控制台中,转到 Private Service Connect 页面。
点击已发布服务标签页。
点击要更新的服务,然后点击修改服务详细信息。
选择所需的连接偏好设置:
- 接受选定项目的连接
- 接受选定网络的连接
- 自动接受所有连接
可选:如果您要切换为接受选定项目的连接,则可以提供要允许的项目的详细信息,也可以稍后再添加。
- 点击添加接受的项目。
- 输入项目和连接限制。
可选:如果您要切换为接受选定网络的连接,则可以提供要允许的网络的详细信息,也可以稍后再添加。
- 点击添加接受的网络。
- 输入项目、网络和连接限制。
点击保存。
gcloud
将服务连接的连接偏好设置从
ACCEPT_AUTOMATIC
改为ACCEPT_MANUAL
。您可以使用
--consumer-accept-list
和--consumer-reject-list
控制哪些项目可以连接到您的服务。您可以在更改连接偏好设置时配置接受列表和拒绝列表,也可以稍后更新这些列表。gcloud compute service-attachments update ATTACHMENT_NAME \ --region=REGION \ --connection-preference=ACCEPT_MANUAL \ [ --consumer-accept-list=ACCEPTED_PROJECT_OR_NETWORK_1=LIMIT_1,ACCEPTED_PROJECT_OR_NETWORK_2=LIMIT_2] \ [ --consumer-reject-list=REJECTED_PROJECT_OR_NETWORK_1,REJECTED_PROJECT_OR_NETWORK_2 ]
请替换以下内容:
ATTACHMENT_NAME
:服务连接的名称。REGION
:服务连接所在区域。ACCEPTED_PROJECT_OR_NETWORK_1
和ACCEPTED_PROJECT_OR_NETWORK_2
:要接受的项目 ID、项目名称或网络网址。--consumer-accept-list
是可选项,可以包含一个或多个项目或网络,但不能同时包含这两种类型。LIMIT_1
和LIMIT_2
:相应项目的连接限制。连接限制是指可以连接到服务的使用方端点的数量。所接受的项目都必须配置有一个连接限制。REJECTED_PROJECT_OR_NETWORK_1
和REJECTED_PROJECT_OR_NETWORK_2
:要拒绝的项目 ID、项目名称或网络网址。--consumer-reject-list
是可选项,可以包含一个或多个项目或网络,但不能同时包含这两种类型。
将服务连接的连接偏好设置从
ACCEPT_MANUAL
改为ACCEPT_AUTOMATIC
。如果您的接受列表或拒绝列表中包含值,请在更改连接偏好设置 (
""
) 时将这些值设置为空。gcloud compute service-attachments update ATTACHMENT_NAME \ --region=REGION \ --connection-preference=ACCEPT_AUTOMATIC \ --consumer-accept-list="" \ --consumer-reject-list=""
请替换以下内容:
ATTACHMENT_NAME
:服务连接的名称。REGION
:服务连接所在区域。
API
将服务连接的连接偏好设置从
ACCEPT_AUTOMATIC
改为ACCEPT_MANUAL
。如需根据项目更新使用方接受和拒绝列表,请发出以下请求:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME
{ ... "connectionPreference": "ACCEPT_MANUAL", "consumerAcceptLists": [ { "projectIdOrNum": "ACCEPTED_PROJECT_1" "connectionLimit": "LIMIT_1", }, { "projectIdOrNum": "ACCEPTED_PROJECT_2" "connectionLimit": "LIMIT_2", } ], "consumerRejectLists": [ "REJECTED_PROJECT_1", "REJECTED_PROJECT_2", ], ... }
请替换以下内容:
PROJECT_ID
:服务连接的项目。REGION
:该服务连接的区域。ATTACHMENT_NAME
:要分配给服务连接的名称。ACCEPTED_PROJECT_1
和ACCEPTED_PROJECT_2
:要接受的项目的 ID 或编号。consumerAcceptList
是可选项,可以包含一个或多个项目。LIMIT_1
和LIMIT_2
:相应项目的连接限制。连接限制是指可以连接到服务的使用方端点的数量。每个接受的项目都必须配置有一个连接限制。REJECTED_PROJECT_1
和REJECTED_PROJECT_2
:要拒绝的项目的 ID 或编号。consumerRejectList
是可选项,可以包含一个或多个项目。
如需根据 VPC 网络更新使用方接受和拒绝列表,请发出以下请求:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME
{ ... "connectionPreference": "ACCEPT_MANUAL", "consumerAcceptLists": [ { "networkUrl": "projects/ACCEPTED_PROJECT_ID_1/global/networks/ACCEPTED_NETWORK_1", "connectionLimit": "LIMIT_1" }, { "networkUrl": "projects/ACCEPTED_PROJECT_ID_2/global/networks/ACCEPTED_NETWORK_2", "connectionLimit": "LIMIT_2" } ], "consumerRejectLists": [ "projects/REJECTED_PROJECT_ID_1/global/networks/REJECTED_NETWORK_1", "projects/REJECTED_PROJECT_ID_2/global/network/REJECTED_NETWORK_2" ], ... }
请替换以下内容:
ACCEPTED_PROJECT_ID_1
和ACCEPTED_PROJECT_ID_2
:您要接受的网络的父级项目的 ID。consumerAcceptLists
是可选项,可以包含一个或多个网络。ACCEPTED_NETWORK_1
和ACCEPTED_NETWORK_2
:您要接受的网络的名称。LIMIT_1
和LIMIT_2
:网络的连接限制。连接限制是指可以连接到服务的使用方端点的数量。每个接受的网络都必须配置有一个连接限制。REJECTED_PROJECT_ID_1
和REJECTED_PROJECT_ID_2
:您要拒绝的网络的父级项目的 ID。consumerRejectLists
是可选项,可以包含一个或多个网络。REJECTED_NETWORK_1
和REJECTED_NETWORK_2
:您要拒绝的网络的名称。
将服务连接的连接偏好设置从
ACCEPT_MANUAL
改为ACCEPT_AUTOMATIC
。如果
consumerAcceptLists
或consumerRejectLists
字段指定了任何使用方,请在将连接偏好设置更改为ACCEPT_AUTOMATIC
时将其设置为空。PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME
{ ... "connectionPreference": "ACCEPT_AUTOMATIC", "consumerAcceptLists": [ ], "consumerRejectLists": [ ], ... }
请替换以下内容:
PROJECT_ID
:服务连接的项目。REGION
:该服务连接的区域。ATTACHMENT_NAME
:服务连接的名称。
配置连接协调
您可以为现有服务连接启用或停用连接协调功能。
控制台
在 Google Cloud 控制台中,转到 Private Service Connect 页面。
点击已发布服务标签页。
点击要更新的服务,然后点击修改服务详细信息。
选中或清除启用连接协调复选框,然后点击保存。
gcloud
如需启用连接协调,请使用以下命令:
gcloud compute service-attachments update ATTACHMENT_NAME \ --region=REGION \ --reconcile-connections
请替换以下内容:
ATTACHMENT_NAME
:服务连接的名称。REGION
:服务连接的区域。
如需停用连接协调,请使用以下命令:
gcloud compute service-attachments update ATTACHMENT_NAME \ --region=REGION \ --no-reconcile-connections
API
如需启用连接协调,请发送
PATCH
请求并包含以下内容:PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME
{ ... "reconcileConnections": true ... }
请替换以下内容:
PROJECT_ID
:服务连接的项目。REGION
:该服务连接的区域。ATTACHMENT_NAME
:服务连接的名称。
如需停用连接协调,请发送
PATCH
请求并添加以下内容:PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME
{ ... "reconcileConnections": false ... }
为已发布的服务添加子网或从中移除子网
您可以修改已发布的服务,以添加 Private Service Connect 子网。
例如,您可能需要为现有服务提供更多 IP 地址。如需添加更多地址,请执行以下操作之一:
创建另一个 Private Service Connect 子网,并修改服务连接,以添加新子网。
修改子网,以扩展 IPv4 范围。
同样,您可以修改已发布的服务,以移除 Private Service Connect 子网。但是,如果子网的任何 IP 地址正用于执行 Private Service Connect 的 SNAT,则移除子网将失败。
如果您更改了子网配置,请更新防火墙规则以允许来自新子网的请求到达后端虚拟机。
控制台
在 Google Cloud 控制台中,转到 Private Service Connect 页面。
点击已发布服务标签页。
点击您要更新的服务,然后点击修改服务详情。
修改用于此服务的子网。
如果要添加新子网,您可以按照如下方式创建一个:
- 点击预留新子网。
- 输入子网的名称和(可选)说明。
- 为子网选择区域。
- 输入用于子网的 IP 范围,然后点击添加。
点击保存。
gcloud
更新用于此服务连接的 Private Service Connect 子网。
gcloud compute service-attachments update ATTACHMENT_NAME \ --region=REGION \ --nat-subnets=PSC_SUBNET_LIST
替换以下内容:
ATTACHMENT_NAME
:服务连接的名称。REGION
:服务连接所在区域。PSC_SUBNET_LIST
:用于此服务连接的一个或多个子网的英文逗号分隔列表。
API
更新用于此服务连接的 Private Service Connect 子网。
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME
{
...
"natSubnets": [
"PSC_SUBNET1_URI",
"PSC_SUBNET2_URI",
],
...
}
替换以下内容:
PROJECT_ID
:服务连接的项目。REGION
:该服务连接的区域。ATTACHMENT_NAME
:要分配给服务连接的名称。PSC_SUBNET1_URI
和PSC_SUBNET2_URI
:您要用于此服务连接的子网的 URI。您可以指定一个或多个子网。
更新已发布服务的传播连接数限制
您可以更新服务连接的传播连接数限制。当您提高此限制时,Google Cloud 会自动检查是否可以创建任何待处理的传播连接。当您降低此限制时,现有的传播连接不受影响。但是,如果达到新限制,则尝试重新建立已删除或已拒绝的传播连接可能会被阻止。
控制台
在 Google Cloud 控制台中,转到 Private Service Connect 页面。
点击已发布服务标签页。
点击要更新的服务,然后点击修改服务详细信息。
点击高级配置。
输入新的 NCC 传播连接数限制。
gcloud
使用 service-attachments update
命令。
gcloud compute service-attachments update ATTACHMENT_NAME \ --region=REGION \ --propagated-connection-limit=LIMIT
请替换以下内容:
ATTACHMENT_NAME
:服务连接的名称。REGION
:服务连接所在区域。LIMIT
:传播连接数限制的新值。
API
向 serviceAttachments.patch
方法发送 PATCH request
。包含以下内容:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME
{
...
"propagatedConnectionLimit": LIMIT
...
}
请替换以下内容:
PROJECT_ID
:服务连接的项目。REGION
:该服务连接的区域。ATTACHMENT_NAME
:要分配给服务连接的名称。LIMIT
:传播连接数限制的新值。