1. 简介
通过 Private Service Connect,服务提供方可以向服务使用方以不公开的方式提供服务。Private Service Connect 具有以下优势:
- 服务提供方 VPC 网络可以支持多个服务使用方。
- 每个使用者都连接到他们定义的内部 IP 地址。Private Service Connect 执行网络地址转换 (NAT),以将请求路由到服务提供方。

图 2. Private Service Connect 使用端点和服务连接,允许服务使用方将流量从使用方的 VPC 网络发送到服务提供方的 VPC 网络中的服务(点击可放大)。
学习内容
- Private Service Connect 的优势
- 服务使用方的关键概念
- 服务提供方的主要概念
- 创建数据提供方环境
- 通过服务连接公开服务(提供方环境)
- 创建使用方环境
- 在使用方网络中创建转发规则
- 验证消费者访问权限
- 启用政策访问权限控制
- 使用出站防火墙规则来阻止对消费者转发规则的访问
所需条件
- 了解如何部署 GKE 集群和服务
- 了解内部负载平衡器
- 能够在两个项目中创建 VPC
- 能够创建 GKE 集群
2. Private Service Connect 的优势
与使用 VPC 对等互连相比,使用 PSC 有以下几项优势:
更好地控制专用 IP 空间
- 作为服务使用方,您可以控制用于连接到要访问的托管式服务的专用 IP 地址。
- 作为服务使用方,您无需担心为 VPC 中使用的后端服务预留专用 IP 地址范围。您只需从自己的子网中选择一个 IP 地址即可连接到提供方服务。
- 作为服务提供方,您可以选择部署多租户模型,其中您的 VPC 包含可为多个使用方 VPC 提供服务的服务。具有重叠子网范围的消费者不再是问题。
- 作为服务提供商,您可以根据需要将服务扩缩到任意数量的虚拟机实例,而无需联系使用方来获取更多 IP 地址。
改进了安全性和隔离性
- 作为服务使用方,只有您可以主动与服务提供方通信。这种单向连接可大幅简化防火墙配置,同时还可降低来自服务提供方的恶意流量带来的风险。
- 作为服务提供方,您无需根据使用方 VPC 中的子网范围更改防火墙规则。您只需为服务配置的 NAT IP 地址范围创建防火墙规则即可。
更出色的可伸缩性
- PSC 支持数千个使用方,从而实现高度可伸缩的设计,并允许服务提供方提供高度可伸缩的多租户或单租户服务。
- 作为使用 Private Service Connect 的服务使用方,您可以在 VPC 中根据需要创建资源。此规模不受在提供方 VPC 中创建的此类资源数量的影响。
3. 服务使用方的关键概念
您可以使用 Private Service Connect 端点来使用 VPC 网络之外的服务。服务使用方创建 Private Service Connect 端点,以连接到目标服务。
Endpoints
您可以使用 Private Service Connect 端点连接到目标服务。端点在您的 VPC 网络中有一个内部 IP 地址,并且基于转发规则资源。
您将流量发送到端点,该端点将其转发到您的 VPC 网络之外的目标。
目标
Private Service Connect 端点有一个目标,即您要连接到的服务:
- API 软件包:
- 所有 API:大多数 Google API
- VPC-SC:VPC Service Controls 支持的 API
- 另一个 VPC 网络中的已发布服务。此服务可以由您自己的组织或第三方管理。
已发布的服务
如需将端点连接到服务提供方的服务,您需要该服务的服务连接。服务连接 URI 的格式为:projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
4. 服务提供方的主要概念
为了将服务提供给使用者,您可以创建一个或多个专用子网,用于使用者 IP 地址的网络地址转换 (NAT)。然后,您可以创建一个引用这些子网的服务连接。
Private Service Connect 子网
为了公开服务,服务提供方会先使用 Private Service Connect 创建一个或多个子网。
从使用方 VPC 网络发送请求时,使用方的来源 IP 地址将使用来源 NAT (SNAT) 转换为从某个 Private Service Connect 子网中选择的 IP 地址。
如果您要保留使用方连接 IP 地址信息,请参阅查看使用方连接信息。
这些子网不能用于虚拟机实例或转发规则等资源。子网仅用于为传入的使用方连接的 SNAT 提供 IP 地址。
Private Service Connect 子网必须为每 63 个使用方虚拟机的至少包含一个 IP 地址,以便为每个使用方虚拟机分配 1024 个来源元组以进行网络地址转换。
Private Service Connect 子网的大小下限为 /24。
服务连接
服务提供方通过服务连接公开其服务。
- 为了公开服务,服务提供方会创建引用该服务的负载平衡器转发规则的服务连接。
- 为了访问服务,服务使用方会创建引用服务连接的端点。
连接偏好设置
创建服务时,您可以选择提供该服务的方式。具体有两种方案可供选择:
- 自动接受所有项目的连接 - 任何服务使用方都可以配置一个端点,并自动连接到该服务。
- 接受选定项目的连接 - 服务使用方可以配置一个端点以连接到服务,而服务提供方会接受或拒绝连接请求。
要求和限制
- 需要遵循 Private Service Connect 的限制。
- 您可以在 GKE 1.21.4-gke.300 及更高版本中创建服务连接。
- 您不能在多个服务连接配置中使用同一个子网。
- 您必须创建使用内部 TCP/UDP 负载均衡器的 GKE 服务。
5. 测试环境
使用方网络由一个用于向服务提供方发起请求的静态 IP 地址组成,此外还包含映射到提供方的服务连接(已发布的服务)的目标服务连接。

现在,我们来看看提供方网络。请注意,提供方网络没有与使用方网络建立映射关系,而是包含一个供使用方用于服务的服务连接(已发布的服务)。提供方的服务连接由 GKE Ingress L4 ILB(已发布的服务)公开,从而实现与 GKE Pod 及关联应用的通信。
当从使用方 VPC 网络发送请求时,系统会使用来源 NAT (SNAT) 将使用方的来源 IP 地址转换为从某个 Private Service Connect 子网中选择的 IP 地址,此时会使用 NAT 子网。
这些子网不能用于虚拟机实例或转发规则等资源。子网仅用于为传入的使用方连接的 SNAT 提供 IP 地址。
如需详细了解 GKE Private Service Connect 的 L4ILB,并直接访问用于创建此实验的内容,请参阅 以下内容。
自定进度的环境设置
- 登录 Google Cloud 控制台,然后创建一个新项目或重复使用现有项目。如果您还没有 Gmail 或 Google Workspace 账号,则必须创建一个。



- 项目名称是此项目参与者的显示名称。它是 Google API 尚未使用的字符串,您可以随时对其进行更新。
- 项目 ID 在所有 Google Cloud 项目中必须是唯一的,并且不可变(一经设置便无法更改)。Cloud Console 会自动生成一个唯一字符串;通常情况下,您无需关注该字符串。在大多数 Codelab 中,您都需要引用项目 ID(它通常标识为
PROJECT_ID),因此如果您不喜欢某个 ID,请再生成一个随机 ID,还可以尝试自己创建一个,并确认是否可用。然后,项目创建后,ID 会处于“冻结”状态。 - 第三个值是一些 API 使用的项目编号。如需详细了解所有这三个值,请参阅文档。
- 接下来,您需要在 Cloud Console 中启用结算功能,才能使用 Cloud 资源/API。运行此 Codelab 应该不会产生太多的费用(如果有费用的话)。要关闭资源以避免产生超出本教程范围的费用,请按照此 Codelab 末尾提供的任何“清理”说明操作。Google Cloud 的新用户符合参与 $300 USD 免费试用计划的条件。
启动 Cloud Shell
虽然可以通过笔记本电脑对 Google Cloud 进行远程操作,但在此 Codelab 中,您将使用 Google Cloud Shell,这是一个在云端运行的命令行环境。
在 GCP 控制台中,点击右上角工具栏上的 Cloud Shell 图标:

预配和连接到环境应该只需要片刻时间。完成后,您应该会看到如下内容:

这个虚拟机已加载了您需要的所有开发工具。它提供了一个持久的 5GB 主目录,并且在 Google Cloud 中运行,大大增强了网络性能和身份验证功能。只需一个浏览器,即可完成本实验中的所有工作。
6. 准备工作
Codelab 需要两个项目,但 PSC 不需要。请注意支持单个或多个项目的参考。
单个项目 - 更新项目以支持提供方和使用方网络
在 Cloud Shell 中,确保项目 ID 已设置
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] prodproject=YOUR-PROJECT-NAME consumerproject=YOUR-PROJECT-NAME echo $prodproject echo $consumerproject
多个项目 - 更新项目以支持提供方网络
在 Cloud Shell 中,确保项目 ID 已设置
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] prodproject=YOUR-PROJECT-NAME echo $prodproject
请注意以下着色代码惯例:

7. 创建提供方 VPC 网络

VPC 网络
从 Cloud Shell
gcloud compute networks create gke-producer-l4-vpc --project=$prodproject --subnet-mode=custom
创建 GKE 集群子网
从 Cloud Shell
gcloud compute networks subnets create node-subnet1 --project=$prodproject --range=192.168.10.0/24 --network=gke-producer-l4-vpc --region=us-central1 --secondary-range=pod=10.10.10.0/24,service=10.10.20.0/24 --enable-private-ip-google-access
创建 GKE 集群
从 Cloud Shell
gcloud container clusters create gke-psc-l4 \
--release-channel=rapid \
--enable-ip-alias \
--zone=us-central1-a \
--network gke-producer-l4-vpc \
--num-nodes 1 \
--subnetwork node-subnet1 \
--cluster-secondary-range-name pod \
--services-secondary-range-name service
为 Private Service Connect 创建子网 (NAT 子网)
您必须创建一个或多个专用子网,以用于 Private Service Connect。如果您使用 Google Cloud 控制台发布服务,则可以在此过程中创建子网。
如需了解 Private Service Connect 子网,请参阅 Private Service Connect 子网。
从 Cloud Shell
gcloud beta compute networks subnets create gke-nat-subnet \
--project $prodproject \
--network gke-producer-l4-vpc \
--region us-central1 \
--range 100.100.10.0/24 \
--purpose PRIVATE_SERVICE_CONNECT
8. 部署工作负载和服务
以下清单描述了一个运行示例 Web 应用容器映像的 Deployment。从 Cloud Shell 中将清单保存为 my-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: psc-ilb
spec:
replicas: 3
selector:
matchLabels:
app: psc-ilb
template:
metadata:
labels:
app: psc-ilb
spec:
containers:
- name: whereami
image: gcr.io/google-samples/whereami:v1.2.1
ports:
- name: http
containerPort: 8080
readinessProbe:
httpGet:
path: /healthz
port: 8080
scheme: HTTP
initialDelaySeconds: 5
timeoutSeconds: 1
通过 Cloud Shell 将清单应用到集群
kubectl apply -f my-deployment.yaml
创建服务
以下清单描述了一项在 TCP 端口 8080 上创建内部 TCP/UDP 负载平衡器的服务。从 Cloud Shell 中将清单另存为 my-service.yaml。
apiVersion: v1
kind: Service
metadata:
name: gke-l4-psc
annotations:
networking.gke.io/load-balancer-type: "Internal"
spec:
type: LoadBalancer
selector:
app: psc-ilb
ports:
- port: 80
targetPort: 8080
protocol: TCP
通过 Cloud Shell 将清单应用到集群
kubectl apply -f my-service.yaml
创建 ServiceAttachment
以下清单描述了向服务使用方公开您创建的服务的 ServiceAttachment。从 Cloud Shell 中将清单保存为 my-psc.yaml。
apiVersion: networking.gke.io/v1beta1 kind: ServiceAttachment metadata: name: emoji-sa namespace: default spec: connectionPreference: ACCEPT_AUTOMATIC natSubnets: - gke-nat-subnet proxyProtocol: false resourceRef: kind: Service name: gke-l4-psc
通过 Cloud Shell 将清单应用到集群
kubectl apply -f my-psc.yaml
ServiceAttachment 具有以下字段:
- connectionPreference:用于确定客户如何连接到服务的连接偏好设置。您可以使用 ACCEPT_AUTOMATIC 自动进行项目审批,也可以使用 ACCEPT_MANUAL 明确进行项目审批。如需了解详情,请参阅使用 Private Service Connect 发布服务。
- natSubnets:用于服务连接的子网资源名称列表。
- proxyProtocol:如果设置为 true,则请求中提供使用方来源 IP 和 Private Service Connect 连接 ID。这是可选字段,如果未提供,则默认为 false。
- consumerAllowList:允许连接到 ServiceAttachment 的使用方项目列表。仅当 connectionPreference 为 ACCEPT_MANUAL 时才能使用此字段。如需详细了解此字段和其他选项,请参阅使用 Private Service Connect 发布服务。
提供方验证
查看服务连接详情
您可以使用以下命令从 Cloud Shell 中查看 ServiceAttachment 的详细信息
kubectl describe serviceattachment emoji-sa
查看 GKE L4 ILB
在 Cloud 控制台中,依次前往“网络服务”→“负载均衡”→“前端”
确定与之前定义的节点子网 192.168.10.0/24 一致的前端 IP 地址(请注意以下屏幕截图,您的 IP 地址可能有所不同)。

查看已发布的服务
在 Cloud 控制台中,依次前往“网络服务”→“Private Service Connect”→“已发布服务”
确定实验中使用的网络对应的服务 gke-producer-l4-vpc,,请注意下面的屏幕截图,不过您的服务和目标值可能有所不同

点击服务名称,系统会转到以下界面,请注意“基本信息”中填充的服务附件详细信息。另请注意,“已连接的项目”为空,因为使用方尚未向服务注册。由于连接偏好设置已设置为 "ACCEPT_AUTOMATICALLY",因此接受和拒绝将保持灰显状态。您可以随时修改服务连接 YAML 文件 (my-psc.yaml),将此选项更改为 "ACCEPT_MANUAL"。


9. 创建使用方 VPC 网络

在以下部分中,使用方 VPC 在单独的项目中配置。使用方网络与提供方网络之间的通信是通过使用方网络中定义的服务连接实现的。
Codelab 需要两个项目,但 PSC 不需要。请注意支持单个或多个项目的参考。
单个项目 - 更新项目以支持提供方和使用方网络
在 Cloud Shell 中,确保项目 ID 已设置
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] consumerproject=YOUR-PROJECT-NAME prodproject=YOUR-PROJECT-NAME echo $prodproject echo $consumerproject
多个项目 - 更新项目以支持使用方网络
在 Cloud Shell 中,确保项目 ID 已设置
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] consumerproject=YOUR-PROJECT-NAME echo $consumerproject
VPC 网络
从 Cloud Shell
gcloud compute networks create vpc-demo-consumer --project=$consumerproject --subnet-mode=custom
为 PSC 创建子网
从 Cloud Shell
gcloud compute networks subnets create consumer-subnet --project=$consumerproject --range=10.0.60.0/24 --network=vpc-demo-consumer --region=us-central1
为虚拟机实例创建子网
从 Cloud Shell
gcloud compute networks subnets create consumer-subnet-vm --project=$consumerproject --range=10.0.70.0/24 --network=vpc-demo-consumer --region=us-central1
创建静态 IP 地址以访问已发布服务
从 Cloud Shell
gcloud compute addresses create vpc-consumer-psc --region=us-central1 --subnet=consumer-subnet --addresses 10.0.60.100
创建防火墙规则
如需允许 IAP 连接到您的虚拟机实例,请创建一个防火墙规则,该规则应:
- 适用于您希望使用 IAP 可访问的所有虚拟机实例。
- 允许来自 IP 范围 35.235.240.0/20 的入站流量。此范围包含 IAP 用于 TCP 转发的所有 IP 地址
从 Cloud Shell
gcloud compute firewall-rules create psclab-iap-consumer --network vpc-demo-consumer --allow tcp:22 --source-ranges=35.235.240.0/20 --enable-logging
虽然不是必需的,但请创建出站流量防火墙规则,以监控从 PSC 使用方到提供方服务连接的 PSC 流量
gcloud compute --project=$consumerproject firewall-rules create vpc-consumer-psc --direction=EGRESS --priority=1000 --network=vpc-demo-consumer --action=ALLOW --rules=all --destination-ranges=10.0.60.0/24 --enable-logging
10. 创建使用方测试实例 1
从 Cloud Shell
gcloud compute instances create consumer-instance-1 --zone=us-central1-a --machine-type=e2-micro --private-network-ip=10.0.70.10 --no-address --subnet=consumer-subnet-vm --tags=google1 --image-family=debian-10 --image-project=debian-cloud
11. 创建使用方测试实例 2
从 Cloud Shell
gcloud compute instances create consumer-instance-2 --zone=us-central1-a --machine-type=e2-micro --private-network-ip=10.0.70.20 --no-address --subnet=consumer-subnet-vm --tags=google2 --image-family=debian-10 --image-project=debian-cloud
12. 创建服务连接
在上一步中,您已将 Producer Service Attachment 字符串复制到安全的位置,现在我们来将存储的值插入到“target-service-attachment”字段中。

从 Cloud Shell
gcloud compute forwarding-rules create vpc-consumer-psc-fr --region=us-central1 --network=vpc-demo-consumer --address=vpc-consumer-psc --target-service-attachment=yoursavedproducerserviceattachment
13. 验证 - 消费者
我们将使用 C网址 和防火墙日志来验证使用方和提供方之间的通信。
在消费者的项目中,静态 IP 地址用于发起与生产者的通信。通过执行以下语法来验证静态 IP 地址与使用方转发规则的这种映射。

从消费者 VPC 的 Cloud Shell 中,确定转发规则和静态 IP
gcloud compute forwarding-rules describe vpc-consumer-psc-fr --region us-central1
在下面的输出中,我们将使用 10.0.60.100 在后续步骤中访问生产者
IPAddress: 10.0.60.100 creationTimestamp: '2021-09-30T21:13:54.124-07:00' id: '3564572805904938477' kind: compute#forwardingRule labelFingerprint: 42WmSpB8rSM= name: vpc-consumer-psc-fr network: https://www.googleapis.com/compute/v1/projects/deepakmichaelstage/global/networks/vpc-demo-consumer networkTier: PREMIUM pscConnectionId: '36583161500548196' pscConnectionStatus: ACCEPTED
查看关联的服务
在云控制台中,依次前往“网络服务”→“Private Service Connect”→“已连接的端点”,然后查看新创建的端点

我们登录到 consumer-instance-1 并测试对生产者发布服务的访问权限
在 Cloud Shell 中,点击“+”打开新标签页

在 Cloud Shell 中执行以下操作:
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] projectname=YOUR-PROJECT-NAME echo $projectname gcloud compute ssh --zone "us-central1-a" "consumer-instance-1" --project "$projectname"
登录 consumer-instance-1 实例后,针对转发规则 IP 地址 10.0.60.100 执行 curl 命令
在 Cloud Shell 中执行以下操作:
user@consumer-instance-1:~$ curl 10.0.60.100
输出示例
user@consumer-instance-1:~$ curl 10.0.60.100
{
"cluster_name": "gke-psc-l4",
"host_header": "10.0.60.100",
"node_name": "gke-gke-psc-l4-default-pool-f2c6e301-vnlz.c.prodprojectid.internal",
"pod_name": "psc-ilb-588887dfdb-w7tbr",
"pod_name_emoji": "🤷",
"project_id": "prodorijectid",
"timestamp": "2021-10-01T17:43:37",
"zone": "us-central1-a"
我们登录到 consumer-instance-2 并测试对提供方已发布服务的访问权限
在 Cloud Shell 中,点击“+”打开新标签页

在 Cloud Shell 中执行以下操作:
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] projectname=YOUR-PROJECT-NAME echo $projectname gcloud compute ssh --zone "us-central1-a" "consumer-instance-2" --project "$projectname"
在 Cloud Shell 中执行以下操作:
user@consumer-instance-2:~$ curl 10.0.60.100
输出示例
deepakmichael@consumer-instance-2:~$ curl 10.0.60.100
{
"cluster_name": "gke-psc-l4",
"host_header": "10.0.60.100",
"node_name": "gke-gke-psc-l4-default-pool-f2c6e301-vnlz.c.prodproject.internal",
"pod_name": "psc-ilb-588887dfdb-4jdql",
"pod_name_emoji": "🧑🏿",
"project_id": "prodproject",
"timestamp": "2021-10-01T17:49:51",
"zone": "us-central1-a"
14. 防火墙日志记录 - 已分配的验证
使用 Logs Explorer 验证防火墙规则“vpc-consumner-psc”是否捕获了虚拟机实例与静态 IP 之间的流量
- 在 Cloud 控制台中,依次选择“Identify Operations Logging”(识别运维日志)→“Log Explorer”(日志浏览器)
- 在“查询”字段中,将以下条目更新为 yourconsumerproject,然后选择“运行查询”
logName:(projects/yourconsumerprojectID/logs/compute.googleapis.com%2Ffirewall) AND jsonPayload.rule_details.reference:("network:vpc-demo-consumer/firewall:vpc-consumer-psc")
- 根据提供的屏幕截图,查询结果如下

- 展开日志(jsonPayload → Connection),然后找到下方提供的输出。请注意,dest_ip:10.0.60.100 是用于访问 Producer 服务的静态 TCP IP,而 src_ip:10.0.70.10 或 10.0.70.20 是虚拟机实例 IP 地址。处置状态为“允许”。

15. 验证 - 生产者

在生产者项目中,验证服务连接是否已成功连接。依次前往“网络服务”→“Private Service Connect”→“已发布的服务”

点击服务会显示已连接的使用方项目和状态,如下图所示

16. 限制对已发布服务的访问权限

到目前为止,我们已确认这两个实例都可以访问已发布的服务,接下来我们创建一个出站防火墙规则,以拒绝 consumer-instance-2 访问已发布的服务。
默认情况下,GCP 允许所有出站流量,但拒绝所有入站流量。在以下步骤中,我们将基于之前定义的网络标记“google2”创建一个防火墙规则,该标记在创建 consumer-instance-2 时使用,用于拒绝访问已发布的服务。

点击 + 打开新的 Cloud Shell 标签页,然后在 Cloud Shell 中执行以下防火墙规则
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] projectname=YOUR-PROJECT-NAME echo $projectname gcloud compute --project=$projectname firewall-rules create psc-endpoint-deny-egress --direction=EGRESS --priority=999 --network=vpc-demo-consumer --action=DENY --rules=all --destination-ranges=10.0.60.100/32 --target-tags=google2 --enable-logging
现在,我们来测试一下 consumer-instance-2 是否能够访问已发布的服务。如果您的会话超时,您需要打开新的 Cloud Shell 并登录到虚拟机,具体操作如下所述。
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] projectname=YOUR-PROJECT-NAME echo $projectname gcloud compute ssh --zone "us-central1-a" "consumer-instance-2" --project "$projectname"
在 Cloud Shell 中执行以下操作:
user@consumer-instance-2:~$ curl 10.0.60.100
输出示例
user@consumer-instance-2:~$ curl 10.0.60.100 curl: (7) Failed to connect to 10.0.60.100 port 80: Connection timed out
防火墙日志记录 - 拒绝验证
使用 Logs Explorer 验证防火墙规则“psc-endpoint-deny-egress”是否捕获了虚拟机实例与静态 IP 之间的流量
- 在 Cloud 控制台中,依次选择“Identify Operations Logging”(识别运维日志)→“Log Explorer”(日志浏览器)
- 在“查询”字段中,将以下条目更新为您的 consumerproject,然后选择“运行查询”
logName:(projects/yourconsumerprojectID/logs/compute.googleapis.com%2Ffirewall) AND jsonPayload.rule_details.reference:("network:vpc-demo-consumer/firewall:psc-endpoint-deny-egress")
- 根据提供的屏幕截图,查询结果如下

- 展开日志,然后找到下方提供的输出。请注意 dest_ip:10.0.60.100 是静态 TCP IP,而 src_ip:10.0.70.10 或 10.0.70.20 是虚拟机实例 IP 地址。处置状态为“拒绝”。

17. 清理步骤
提供方网络清理步骤

从 Producer 项目终端中的单个 Cloud Shell 删除实验组件
gcloud container clusters delete gke-psc-l4 --region us-central1-a --quiet gcloud compute networks subnets delete gke-nat-subnet --region=us-central1 --quiet gcloud compute networks subnets delete node-subnet1 --region=us-central1 --quiet gcloud compute networks delete gke-producer-l4-vpc --quiet

使用方网络清理步骤
在 Consumer 项目终端中的单个 Cloud Shell 中删除实验组件
gcloud compute instances delete consumer-instance-1 --zone=us-central1-a --quiet gcloud compute instances delete consumer-instance-2 --zone=us-central1-a --quiet gcloud compute forwarding-rules delete vpc-consumer-psc-fr --region=us-central1 --quiet gcloud compute addresses delete vpc-consumer-psc --region=us-central1 --quiet gcloud compute firewall-rules delete psclab-iap-consumer --quiet gcloud compute networks subnets delete consumer-subnet --region=us-central1 --quiet gcloud compute networks subnets delete consumer-subnet-vm --region=us-central1 --quiet gcloud compute firewall-rules delete vpc-consumer-psc --quiet gcloud compute firewall-rules delete psc-endpoint-deny-egress --quiet gcloud compute networks delete vpc-demo-consumer --quiet
18. 恭喜!
恭喜您完成此 Codelab。
所学内容
- Private Service Connect 的优势
- 服务使用方的关键概念
- 服务提供方的主要概念
- 创建数据提供方环境
- 通过服务连接公开服务(提供方环境)
- 创建使用方环境
- 在使用方网络中创建转发规则
- 验证消费者访问权限
- 启用政策访问权限控制
- 使用出站防火墙规则来阻止对消费者转发规则的访问