کنترل دسترسی مبتنی بر نقطه پایانی تولیدکننده PSC

۱. مقدمه

اتصال سرویس خصوصی

اتصال سرویس خصوصی قابلیتی از شبکه گوگل کلود است که به مصرف‌کنندگان اجازه می‌دهد از داخل شبکه VPC خود به صورت خصوصی به سرویس‌های مدیریت‌شده دسترسی داشته باشند. به طور مشابه، به تولیدکنندگان خدمات مدیریت‌شده نیز اجازه می‌دهد تا این سرویس‌ها را در شبکه‌های VPC جداگانه خود میزبانی کنند و یک اتصال خصوصی به مصرف‌کنندگان خود ارائه دهند.

50b907b09af4d8ac.png

کنترل دسترسی تولیدکننده اتصال به سرویس خصوصی

به جای پذیرش خودکار همه اتصالات از هر مصرف‌کننده، تولیدکنندگان فقط می‌توانند درخواست‌های اتصال ورودی را در صورتی بپذیرند که مصرف‌کننده در لیست پذیرش مصرف‌کننده باشد. می‌توانید مصرف‌کنندگان را بر اساس پروژه، شبکه VPC یا نقطه پایانی PSC مشخص کنید. نمی‌توانید انواع مختلف مصرف‌کنندگان را در یک لیست پذیرش یا رد مصرف‌کننده قرار دهید.

برای هر یک از ترجیحات اتصال، اتصالاتی که پذیرفته می‌شوند می‌توانند توسط یک سیاست سازمانی (compute.restrictPrivateServiceConnectConsumer) که اتصالات ورودی را مسدود می‌کند، لغو و رد شوند.

لطفاً توجه داشته باشید که سیاست سازمان (compute.restrictPrivateServiceConnectConsumer) برای سازمان، پوشه یا پروژه اعمال می‌شود. اگر می‌خواهید کنترل دسترسی دقیقی به نقطه پایانی PSC داشته باشید، می‌توانید از لیست پذیرش مصرف‌کننده نقاط پایانی PSC به صورت جداگانه استفاده کنید.

کنترل دسترسی مبتنی بر نقطه پایانی

کنترل دسترسی مبتنی بر نقاط پایانی PSC، توانایی تولیدکننده برای تأیید اعتبار مصرف‌کنندگان از طریق نقاط پایانی PSC در سیاست‌های پیوست سرویس است.

این رویکرد که برای سرویس‌های چند مستاجری توصیه می‌شود، دقیق‌ترین کنترل را برای مدیریت اتصالات فراهم می‌کند.

این آزمایشگاه کد بر یادگیری نحوه پیکربندی این ویژگی تمرکز دارد.

لطفاً توجه داشته باشید که این روش برای backend های Private Service Connect اعمال نمی‌شود.

۲. آنچه یاد خواهید گرفت

  • به عنوان یک تولیدکننده، چگونه می‌توان یک سرویس را با استفاده از PSC منتشر کرد.
  • به عنوان یک تولیدکننده، چگونه یک کنترل دسترسی مبتنی بر نقطه پایانی PSC ایجاد کنیم.
  • به عنوان یک مصرف کننده، چگونه به سرویس PSC دسترسی پیدا کنیم.

۳. معماری کلی آزمایشگاه

3d7cbafaffb50d2d.png

۴. مراحل آماده‌سازی

نقش‌های IAM مورد نیاز برای کار در آزمایشگاه

شما با اختصاص نقش‌های IAM مورد نیاز به حساب GCP در سطح پروژه شروع می‌کنید.

  • مدیر شبکه محاسباتی ( roles/compute.networkAdmin ) این نقش به شما کنترل کامل منابع شبکه Compute Engine را می‌دهد.
  • مدیر ثبت وقایع ( roles/logging.admin ) این نقش به شما امکان دسترسی به تمام مجوزهای ثبت وقایع و مجوزهای وابسته را می‌دهد.
  • مدیر استفاده از سرویس ( roles/serviceusage.serviceUsageAdmin ) این نقش به شما امکان فعال، غیرفعال کردن و بررسی وضعیت سرویس، بررسی عملیات و سهمیه مصرف و صدور صورتحساب برای یک پروژه مصرف‌کننده را می‌دهد.
  • مدیر نمونه محاسبات ( roles/compute.instanceAdmin.v1 ) این نقش به شما کنترل کامل نمونه‌های موتور محاسبات، گروه‌های نمونه، دیسک‌ها، اسنپ‌شات‌ها و تصاویر را می‌دهد. دسترسی خواندن به تمام منابع شبکه موتور محاسبات را نیز دارد.
  • مدیر امنیت محاسبات ( roles/compute.securityAdmin ) این نقش به شما مجوزهایی برای ایجاد، تغییر و حذف قوانین فایروال و گواهینامه‌های SSL و همچنین پیکربندی تنظیمات ماشین مجازی محافظت‌شده (Shielded VM) می‌دهد.

فعال کردن APIها

در داخل Cloud Shell، مطمئن شوید که پروژه شما به درستی پیکربندی شده است و متغیرهای محیطی خود را تنظیم کنید.

درون Cloud Shell، موارد زیر را انجام دهید:

gcloud auth login
gcloud config set project <your project id>
export project_id=$(gcloud config get-value project)
export region=us-central1
export zone=$region-a
echo $project_id
echo $region
echo $zone

تمام API های لازم گوگل را در پروژه فعال کنید. در داخل Cloud Shell، موارد زیر را انجام دهید:

gcloud services enable \
  compute.googleapis.com 
  

ایجاد VPC تولیدکننده

در پروژه، یک شبکه VPC با حالت زیرشبکه سفارشی ایجاد کنید. موارد زیر را در Cloud Shell انجام دهید:

gcloud compute networks create producer-net \
    --subnet-mode=custom

ایجاد زیرشبکه‌ها در VPC تولیدکننده

شما به سه زیرشبکه نیاز دارید: زیرشبکه تولیدکننده برای سرویس شما؛ زیرشبکه فقط پروکسی برای متعادل‌کننده بار جهت انتشار سرویس شما؛ زیرشبکه psc برای PSC جهت انتشار سرویس.

در داخل Cloud Shell، برای ایجاد زیرشبکه‌های IPV4 موارد زیر را انجام دهید:

gcloud compute networks subnets create producer-subnet \
    --network=producer-net \
    --range=10.10.0.0/24 \
    --region=$region
gcloud compute networks subnets create proxy-only-subnet \
    --purpose=REGIONAL_MANAGED_PROXY \
    --role=ACTIVE \
    --region=$region \
    --network=producer-net \
    --range=10.30.0.0/24
gcloud compute networks subnets create psc-subnet \
    --network=producer-net \
    --region=$region \
    --range=192.168.0.0/16 \
    --purpose=PRIVATE_SERVICE_CONNECT

ایجاد Cloud NAT و Cloud Router برای VPC تولیدکننده

Cloud NAT برای اجازه دادن به ماشین مجازی برای دانلود و نصب برنامه‌ها استفاده می‌شود.

gcloud compute routers create $region-cr \
   --network=producer-net \
   --region=$region
gcloud compute routers nats create $region-nat \
    --router=$region-cr \
    --region=$region \
    --nat-all-subnet-ip-ranges \
    --auto-allocate-nat-external-ips

ایجاد VPC مصرف‌کننده

در پروژه، یک شبکه VPC با حالت زیرشبکه سفارشی ایجاد کنید. موارد زیر را در Cloud Shell انجام دهید:

gcloud compute networks create consumer-net \
    --subnet-mode=custom

ایجاد زیرشبکه در VPC مصرف‌کننده

در داخل Cloud Shell، برای ایجاد یک زیرشبکه IPV4 موارد زیر را انجام دهید:

gcloud compute networks subnets create consumer-subnet \
    --network=consumer-net \
    --range=10.20.0.0/24 \
    --region=$region

یک سیاست فایروال جهانی برای VPC تولیدکننده و VPC مصرف‌کننده ایجاد کنید.

شما یک سیاست فایروال شبکه سراسری ایجاد خواهید کرد و آن را به VPC تولیدکننده و VPC مصرف‌کننده مرتبط خواهید کرد.

gcloud compute network-firewall-policies create global-fw-policy \
--global
gcloud compute network-firewall-policies associations create \
    --firewall-policy=global-fw-policy \
    --name=producer-fw-policy \
    --network=producer-net \
    --global-firewall-policy 
gcloud compute network-firewall-policies associations create \
    --firewall-policy=global-fw-policy \
    --name=consumer-fw-policy \
    --network=consumer-net \
    --global-firewall-policy 

اجازه دادن به SSH

برای اینکه به پروکسی آگاه از هویت (IAP) اجازه اتصال به ماشین‌های مجازی خود را بدهید، یک قانون فایروال ایجاد کنید که:

  • برای تمام نمونه‌های ماشین مجازی که می‌خواهید با استفاده از IAP به آنها دسترسی داشته باشید، اعمال می‌شود.
  • اجازه ورود ترافیک از محدوده IP 35.235.240.0/20 را می‌دهد. این محدوده شامل تمام آدرس‌های IP است که IAP برای ارسال TCP استفاده می‌کند.
gcloud compute network-firewall-policies rules create 100 \
    --action=ALLOW \
    --firewall-policy=global-fw-policy \
    --description="producer-allow-iap" \
    --direction=INGRESS \
    --src-ip-ranges=35.235.240.0/20 \
    --layer4-configs=tcp:22  \
    --global-firewall-policy

قوانین فایروال Ingress را به سرویس خود اضافه کنید

شما از متعادل‌کننده بار برنامه داخلی منطقه‌ای برای انتشار سرویس استفاده خواهید کرد. قانون فایروال ورودی y باید به زیرشبکه فقط پروکسی اجازه دسترسی به سرویس را بدهد. برای اطلاعات دقیق، این سند را بررسی کنید.

gcloud compute network-firewall-policies rules create 200 \
    --action=ALLOW \
    --firewall-policy=global-fw-policy \
    --description="producer-allow-access-service" \
    --direction=INGRESS \
    --src-ip-ranges=10.30.0.0/24 \
    --layer4-configs=tcp:80  \
    --global-firewall-policy

اجازه دهید سرویس شما از نظر سلامت متعادل‌کننده بار بررسی شود

پروب‌های بررسی سلامت متعادل‌کننده بار برنامه داخلی منطقه‌ای از محدوده‌های 35.191.0.0/16 و 130.211.0.0/22 ​​استفاده می‌کنند. شما یک قانون فایروال ورودی ایجاد خواهید کرد تا امکان بررسی سلامت از پروب‌ها فراهم شود. برای جزئیات بیشتر، این سند را مرور کنید.

gcloud compute network-firewall-policies rules create 300 \
    --action=ALLOW \
    --firewall-policy=global-fw-policy \
    --description="producer-allow-health-check" \
    --direction=INGRESS \
    --src-ip-ranges=35.191.0.0/16,130.211.0.0/22\
    --layer4-configs=tcp:80  \
    --global-firewall-policy

یک ماشین مجازی به عنوان کلاینت http در VPC مصرف‌کننده ایجاد کنید

در داخل Cloud Shell، برای ایجاد یک نمونه ماشین مجازی به عنوان کلاینت آزمایشی، موارد زیر را انجام دهید:

gcloud compute instances create myclient \
    --zone=$zone \
    --subnet=consumer-subnet \
    --shielded-secure-boot \
    --no-address

یک ماشین مجازی به عنوان سرور http در VPC تولیدکننده ایجاد کنید

در داخل Cloud Shell، برای ایجاد یک نمونه ماشین مجازی به عنوان سرور http، موارد زیر را انجام دهید:

gcloud compute instances create myserver \
    --subnet=producer-subnet \
    --zone=$zone \
    --no-address \
    --shielded-secure-boot \
    --metadata startup-script='#! /bin/bash
    sudo apt-get update
    sudo apt-get install apache2 -y
    a2enmod ssl
    sudo a2ensite default-ssl
    echo "I am a Http Server." | \
    tee /var/www/html/index.html
    systemctl restart apache2'

۵. سرویس PSC منتشر شده توسط تولیدکننده

ایجاد متعادل‌کننده بار برنامه داخلی منطقه‌ای

شما یک متعادل‌کننده بار برنامه داخلی منطقه‌ای به عنوان بخش جلویی سرویس ایجاد خواهید کرد و بخش پشتی، گروه نمونه مدیریت نشده‌ای است که نقطه پایانی آن سرور http است که قبلاً ایجاد کردیم.

آدرس IP متعادل‌کننده بار را رزرو کنید

gcloud compute addresses create l7-ilb-ip-address \
    --region=$region \
    --subnet=producer-subnet

ایجاد یک گروه نمونه

شما یک گروه نمونه مدیریت نشده ایجاد خواهید کرد و نمونه ماشین مجازی، myserver، را در گروه نمونه اضافه خواهید کرد.

gcloud compute instance-groups unmanaged create my-service-ig \
    --zone=$zone
gcloud compute instance-groups unmanaged add-instances my-service-ig \
    --zone=$zone \
    --instances=myserver

ایجاد یک بررسی سلامت HTTP

gcloud compute health-checks create http l7-ilb-basic-check \
     --region=$region \
     --use-serving-port

ایجاد سرویس بک‌اند

gcloud compute backend-services create l7-ilb-backend-service \
    --load-balancing-scheme=INTERNAL_MANAGED \
    --protocol=HTTP \
    --health-checks=l7-ilb-basic-check \
    --health-checks-region=$region \
    --region=$region

اضافه کردن backend به سرویس backend

gcloud compute backend-services add-backend l7-ilb-backend-service \
    --balancing-mode=UTILIZATION \
    --instance-group=my-service-ig \
    --instance-group-zone=$zone \
    --region=$region

نقشه URL را ایجاد کنید

gcloud compute url-maps create l7-ilb-map \
    --default-service=l7-ilb-backend-service \
    --region=$region

پروکسی هدف را ایجاد کنید

gcloud compute target-http-proxies create l7-ilb-proxy \
    --url-map=l7-ilb-map \
    --url-map-region=$region \
    --region=$region

ایجاد قانون فورواردینگ

gcloud compute forwarding-rules create l7-ilb-forwarding-rule \
    --load-balancing-scheme=INTERNAL_MANAGED \
    --network=producer-net \
    --subnet=producer-subnet \
    --address=l7-ilb-ip-address \
    --ports=80 \
    --region=$region \
    --target-http-proxy=l7-ilb-proxy \
    --target-http-proxy-region=$region

تولیدکننده PSC این سرویس را منتشر می‌کند

شما از PSC برای انتشار سرویس با connection-preference=ACCEPT_MANUAL و لیست‌های مصرف‌کننده خالی استفاده خواهید کرد.

gcloud compute service-attachments create my-psc-service \
    --region=$region \
 --target-service=projects/$project_id/regions/$region/forwardingRules/l7-ilb-forwarding-rule \
    --connection-preference=ACCEPT_MANUAL \
    --nat-subnets=psc-subnet
export myserver_service_attachment=$(gcloud compute service-attachments describe my-psc-service --region=$region --format="value(selfLink.scope(v1))")

echo $myserver_service_attachment

۶. مصرف‌کننده، نقطه پایانی PSC را ایجاد می‌کند

یک IP برای نقطه پایانی PSC رزرو کنید

gcloud compute addresses create myserver-psc-endpoint-ip \
    --region=$region \
    --subnet=consumer-subnet \
    --ip-version=IPV4

ایجاد نقطه پایانی PSC

نقطه پایانی PSC را ایجاد کنید و IP نقطه پایانی PSC را برای آزمایش در مرحله بعد دریافت کنید.

gcloud compute forwarding-rules create myserver-psc-endpoint \
    --region=$region \
    --network=consumer-net \
    --address=myserver-psc-endpoint-ip \
    --target-service-attachment=$myserver_service_attachment
psc_endpoint_ip=$(gcloud compute forwarding-rules describe myserver-psc-endpoint \
    --region=$region --format="value(IPAddress)")

echo $psc_endpoint_ip

مصرف‌کننده وضعیت نقطه پایانی PSC را بررسی می‌کند

قبل از اینکه تولیدکننده، نقطه پایانی PSC را در لیست مصرف‌کننده اضافه کند، اتصال در نقطه پایانی متصل در سمت مصرف‌کننده با وضعیت در حال بررسی (Pending) قابل مشاهده است.

gcloud compute forwarding-rules describe myserver-psc-endpoint \
    --region=$region

نتیجه‌ای مشابه زیر خواهید دید.

IPAddress: 10.20.0.3
allowPscGlobalAccess: false
creationTimestamp: '2026-02-23T16:27:27.920-08:00'
fingerprint: yh_UiYqjHCc=
id: '934193159895862912'
kind: compute#forwardingRule
labelFingerprint: 42WmSpB8rSM=
name: myserver-psc-endpoint
network: https://www.googleapis.com/compute/v1/projects/<project_id>/global/networks/consumer-net
networkTier: PREMIUM
pscConnectionId: '160443618817212419'
pscConnectionStatus: PENDING
region: https://www.googleapis.com/compute/v1/projects/<project_id>/regions/us-central1
selfLink: https://www.googleapis.com/compute/v1/projects/<project_id>/regions/us-central1/forwardingRules/myserver-psc-endpoint
selfLinkWithId: https://www.googleapis.com/compute/v1/projects/<project_id>/regions/us-central1/forwardingRules/934193159895862912
serviceDirectoryRegistrations:
- namespace: goog-psc-default
target: https://www.googleapis.com/compute/v1/projects/<project_id>/regions/us-central1/serviceAttachments/my-psc-service

۷. دسترسی از ماشین مجازی مصرف‌کننده به ماشین مجازی تولیدکننده را آزمایش کنید

IP نقطه پایانی PSC را بررسی کنید.

echo $psc_endpoint_ip

به ماشین مجازی myclient از طریق SSH متصل شوید و بررسی کنید که آیا می‌تواند به myserver در پورت http 80 دسترسی پیدا کند یا خیر.

درون Cloud Shell، موارد زیر را انجام دهید:

gcloud compute ssh \
    --zone=$zone "myclient" \
    --tunnel-through-iap 

برای دسترسی به نقطه پایانی PSC که ایجاد کرده‌اید، از curl استفاده کنید.

curl -m 10 <psc_endpoint_ip> 

خواهید دید که زمان اجرای دستور curl به پایان رسیده است. کلاینت آزمایشی از VPC مصرف‌کننده نمی‌تواند به سرور http در VPC تولیدکننده دسترسی پیدا کند.

curl: (28) Connection timed out after 10001 milliseconds

با خروج از جلسه SSH به Cloud Shell برگردید.

exit

۸. تولیدکننده، نقطه پایانی PSC را تأیید می‌کند

تولیدکننده وضعیت نقطه پایانی PSC را بررسی می‌کند

قبل از اینکه تولیدکننده، نقطه پایانی PSC را در فهرست مصرف‌کننده اضافه کند، اتصال در پیوست سرویس با وضعیت «در انتظار» قابل مشاهده است.

gcloud compute service-attachments describe my-psc-service --region=$region 

نتیجه‌ای مشابه زیر خواهید دید.

connectedEndpoints:
- consumerNetwork: https://www.googleapis.com/compute/projects/<project_id>/global/networks/consumer-net
  endpoint: https://www.googleapis.com/compute/projects/<project_id>/regions/us-central1/forwardingRules/myserver-psc-endpoint
  endpointWithId: https://www.googleapis.com/compute/projects/<project_id>/regions/us-central1/forwardingRules/934193159895862912
  pscConnectionId: '160443618817212419'
  status: PENDING
connectionPreference: ACCEPT_MANUAL
creationTimestamp: '2026-02-23T13:27:33.886-08:00'
description: ''
enableProxyProtocol: false
fingerprint: -9EI8FCALrA=
id: '2578692595155826858'
kind: compute#serviceAttachment
name: my-psc-service
natSubnets:
- https://www.googleapis.com/compute/projects/<project_id>/regions/us-central1/subnetworks/psc-subnet
pscServiceAttachmentId:
  high: '149466704441770984'
  low: '2578692595155826858'
reconcileConnections: false
region: https://www.googleapis.com/compute/projects/<project_id>/regions/us-central1
selfLink: https://www.googleapis.com/compute/projects/<project_id>/regions/us-central1/serviceAttachments/my-psc-service
targetService: https://www.googleapis.com/compute/projects/<project_id>/regions/us-central1/forwardingRules/l7-ilb-forwarding-rule

دریافت URI مبتنی بر شناسه نقطه پایانی PSC

URI مبتنی بر شناسه نقطه پایانی PSC، شناسه قانون ارسالی است که مصرف‌کننده به تازگی ایجاد کرده است. در مثال بالا، 'endpointWithId' URI نقطه پایانی PSC است که توسط مصرف‌کننده ایجاد شده است. شما برای ایجاد کنترل دسترسی مبتنی بر نقطه پایانی توسط تولیدکننده به این URI نیاز خواهید داشت.

(لطفاً توجه داشته باشید، شناسه اتصال PSC شناسه‌ای نیست که ما به دنبال آن هستیم.)

export psc_endpoint_uri=$(gcloud compute service-attachments describe my-psc-service --region=$region --format="value(connectedEndpoints.endpointWithId)")

echo $psc_endpoint_uri

اضافه کردن URI مبتنی بر شناسه نقطه پایانی PSC به لیست پذیرش مصرف‌کننده

gcloud compute service-attachments update my-psc-service \
    --region=$region \
    --consumer-accept-list=$psc_endpoint_uri

تولیدکننده وضعیت نقطه پایانی PSC را بررسی می‌کند

gcloud compute service-attachments describe my-psc-service --region=$region --format="value(connectedEndpoints)"

نتیجه‌ای مشابه زیر خواهید دید. وضعیت به «پذیرفته شده» تغییر کرده است.

{'consumerNetwork': 'https://www.googleapis.com/compute/projects/<project_id>/global/networks/consumer-net', 'endpoint': 'https://www.googleapis.com/compute/projects/<project_id>/regions/us-central1/forwardingRules/myserver-psc-endpoint', 'endpointWithId': 'https://www.googleapis.com/compute/projects/<project_id>/regions/us-central1/forwardingRules/47564871796017232', 'pscConnectionId': '54547416268144643', 'status': 'ACCEPTED'}

۹. دسترسی از ماشین مجازی مصرف‌کننده به ماشین مجازی تولیدکننده را آزمایش کنید

IP نقطه پایانی PSC را بررسی کنید.

echo $psc_endpoint_ip

به ماشین مجازی myclient از طریق SSH متصل شوید و بررسی کنید که آیا می‌تواند به myserver در پورت http 80 دسترسی پیدا کند یا خیر.

درون Cloud Shell، موارد زیر را انجام دهید:

gcloud compute ssh \
    --zone=$zone "myclient" \
    --tunnel-through-iap 

برای دسترسی به نقطه پایانی PSC که ایجاد کرده‌اید، از curl استفاده کنید.

curl <psc_endpoint_ip>

خواهید دید که دستور curl با موفقیت پاسخ را از myserver برمی‌گرداند. کلاینت آزمایشی از VPC مصرف‌کننده به سرور http در VPC تولیدکننده دسترسی پیدا کرده است.

I am a Http Server.

با خروج از جلسه SSH به Cloud Shell برگردید.

exit

۱۰. تمیز کردن

ماشین‌های مجازی را پاکسازی کنید

درون Cloud Shell، موارد زیر را انجام دهید:

gcloud compute instances delete myserver --zone $zone --quiet
gcloud compute instances delete myclient --zone $zone --quiet

اجزای مصرفی PSC را تمیز کنید

gcloud compute forwarding-rules delete myserver-psc-endpoint \
    --region=$region --quiet
gcloud compute addresses delete myserver-psc-endpoint-ip \
    --region=$region --quiet

اجزای سازنده PSC را تمیز کنید

gcloud compute service-attachments delete my-psc-service \
    --region=$region --quiet
gcloud compute forwarding-rules delete l7-ilb-forwarding-rule \
    --region=$region --quiet
gcloud compute target-http-proxies delete l7-ilb-proxy \
    --region=$region --quiet
gcloud compute url-maps delete l7-ilb-map \
    --region=$region --quiet
gcloud compute backend-services remove-backend l7-ilb-backend-service \
    --instance-group=my-service-ig \
    --instance-group-zone=$zone \
    --region=$region --quiet
gcloud compute backend-services delete l7-ilb-backend-service \
    --region=$region --quiet
gcloud compute health-checks delete l7-ilb-basic-check \
     --region=$region --quiet
gcloud compute instance-groups unmanaged delete my-service-ig \
    --zone=$zone --quiet
gcloud compute addresses delete l7-ilb-ip-address \
    --region=$region --quiet

فایروال، Cloud NAT، Cloud Router و VPC ها را پاکسازی کنید

gcloud compute network-firewall-policies rules delete 100 \
    --firewall-policy=global-fw-policy \
    --global-firewall-policy --quiet
gcloud compute network-firewall-policies rules delete 200 \
    --firewall-policy=global-fw-policy \
    --global-firewall-policy --quiet
gcloud compute network-firewall-policies rules delete 300 \
    --firewall-policy=global-fw-policy \
    --global-firewall-policy --quiet
gcloud compute network-firewall-policies associations delete \
    --firewall-policy=global-fw-policy \
    --name=producer-fw-policy \
    --global-firewall-policy --quiet
gcloud compute network-firewall-policies associations delete \
    --firewall-policy=global-fw-policy \
    --name=consumer-fw-policy \
    --global-firewall-policy --quiet
gcloud compute network-firewall-policies delete global-fw-policy \
    --global --quiet
gcloud compute routers nats delete $region-nat \
    --router=$region-cr \
    --region=$region --quiet
gcloud compute routers delete $region-cr \
    --region=$region --quiet
gcloud compute networks subnets delete producer-subnet \
    --region=$region --quiet
gcloud compute networks subnets delete proxy-only-subnet \
    --region=$region --quiet
gcloud compute networks subnets delete psc-subnet \
    --region=$region --quiet
gcloud compute networks delete producer-net --quiet
gcloud compute networks subnets delete consumer-subnet \
    --region=$region --quiet
gcloud compute networks delete consumer-net --quiet

۱۱. تبریک

شما با موفقیت کنترل دسترسی مبتنی بر نقطه پایانی تولیدکننده Private Service Connect را آزمایش کردید.