การใช้ Private Service Connect เพื่อเผยแพร่และใช้บริการ

1. บทนำ

Private Service Connect ช่วยให้ผู้ผลิตบริการเสนอบริการแบบส่วนตัวแก่ผู้บริโภคบริการได้ Private Service Connect มีประโยชน์ดังต่อไปนี้

  • เครือข่าย VPC ผู้ผลิตบริการสามารถรองรับผู้ใช้บริการได้มากกว่า 1 ราย
  • ผู้บริโภคแต่ละรายจะเชื่อมต่อกับที่อยู่ IP ภายในที่ตนกำหนด Private Service Connect ดำเนินการแปลที่อยู่เครือข่าย (NAT) เพื่อกำหนดเส้นทางคำขอไปยังผู้ผลิตบริการ

45b90d50690dd111.png

รูปที่ 2 Private Service Connect ใช้ปลายทางและไฟล์แนบบริการเพื่อช่วยให้ผู้บริโภคบริการส่งการรับส่งข้อมูลจากเครือข่าย VPC ของผู้บริโภคไปยังบริการในเครือข่าย VPC ของผู้ผลิตบริการได้ (คลิกเพื่อขยาย)

สิ่งที่คุณจะได้เรียนรู้

  • สิทธิประโยชน์ของการเชื่อมต่อบริการส่วนตัว
  • แนวคิดหลักสำหรับผู้บริโภคบริการ
  • แนวคิดหลักสำหรับผู้ผลิตบริการ
  • สร้างสภาพแวดล้อมของผู้ผลิต
  • แสดงบริการ (สภาพแวดล้อมของผู้ผลิต) ผ่านไฟล์แนบของบริการ
  • สร้างสภาพแวดล้อมของผู้บริโภค
  • สร้างกฎการส่งต่อในเครือข่ายผู้ใช้ทั่วไป
  • ตรวจสอบการเข้าถึงของผู้บริโภค TCP
  • เปิดใช้และ ตรวจสอบโปรโตคอลของพร็อกซี
  • เปิดใช้การควบคุมการเข้าถึงนโยบาย

สิ่งที่คุณต้องมี

  • ความรู้เกี่ยวกับตัวจัดสรรภาระงานภายใน
  • ความสามารถในการสร้าง VPC ใน 2 โปรเจ็กต์

2. สิทธิประโยชน์ของการเชื่อมต่อบริการส่วนตัว

PSC มีประโยชน์หลายประการเมื่อเทียบกับการใช้การเพียร์ VPC

ควบคุมพื้นที่ IP ส่วนตัวได้ดียิ่งขึ้น

  • ในฐานะผู้บริโภคของบริการ คุณสามารถควบคุมที่อยู่ IP ส่วนตัวที่ใช้เชื่อมต่อกับบริการที่มีการจัดการซึ่งคุณต้องการเข้าถึงได้
  • ในฐานะผู้ใช้ทั่วไป คุณไม่จำเป็นต้องกังวลเกี่ยวกับการจองช่วงที่อยู่ IP ส่วนตัวสำหรับบริการแบ็กเอนด์ที่ใช้ใน VPC ของคุณ คุณเพียงแค่ต้องเลือกที่อยู่ IP จากซับเน็ตของคุณเองเพื่อเชื่อมต่อกับบริการของผู้ผลิตเท่านั้น
  • ในฐานะผู้ผลิตบริการ คุณเลือกทำให้โมเดลแบบหลายกลุ่มผู้ใช้ได้ โดย VPC ของคุณมีบริการที่แสดง VPC สำหรับผู้บริโภคหลายรายการ ผู้บริโภคที่มีช่วงซับเน็ตทับซ้อนกันจะไม่เป็นปัญหาอีกต่อไป
  • ในฐานะผู้ให้บริการ คุณสามารถปรับขนาดบริการให้เป็นอินสแตนซ์ VM ได้มากเท่าที่ต้องการ โดยไม่ต้องติดต่อผู้บริโภคเพื่อขอที่อยู่ IP เพิ่มเติม

ความปลอดภัยและการแยกส่วนที่ดียิ่งขึ้น

  • ในฐานะผู้บริโภคบริการ มีเพียงคุณเท่านั้นที่จะเริ่มสื่อสารกับผู้ผลิตบริการได้ การเชื่อมต่อแบบทิศทางเดียวนี้ช่วยให้การกำหนดค่าไฟร์วอลล์ง่ายขึ้นเป็นอย่างมาก ทั้งยังลดความเสี่ยงจากการรับส่งข้อมูลจำนวนมากที่มาจากผู้ผลิตบริการ
  • ในฐานะผู้ผลิตบริการ คุณไม่จำเป็นต้องเปลี่ยนกฎไฟร์วอลล์ตามช่วงซับเน็ตใน VPC ของผู้ใช้ คุณสร้างกฎไฟร์วอลล์สำหรับช่วงที่อยู่ IP ของ NAT ที่กำหนดค่าสำหรับบริการของคุณได้

ความสามารถในการปรับขนาดได้ดีขึ้น

  • PSC ช่วยให้การออกแบบรองรับการปรับขนาดได้สูงโดยการรองรับผู้บริโภคหลายพันคน และช่วยให้ผู้ผลิตบริการสามารถนำเสนอบริการแบบหลายผู้ใช้และแบบเช่ารายเดียวที่รองรับการปรับขนาดได้อย่างมาก
  • ในฐานะลูกค้าบริการที่ใช้การเชื่อมต่อบริการส่วนตัว คุณจะสร้างทรัพยากรตามที่จำเป็นใน VPC ได้ ขนาดของทรัพยากรดังกล่าวจะไม่ได้รับผลกระทบจากจำนวนทรัพยากรดังกล่าวที่สร้างขึ้นใน VPC ของผู้ผลิต

3. แนวคิดหลักสำหรับผู้บริโภคบริการ

คุณใช้ปลายทาง Private Service Connect เพื่อใช้บริการที่อยู่นอกเครือข่าย VPC ได้ ผู้ใช้บริการสร้างปลายทาง Private Service Connect ที่เชื่อมต่อกับบริการเป้าหมาย

ปลายทาง

คุณใช้อุปกรณ์ปลายทาง Private Service Connect เพื่อเชื่อมต่อกับบริการเป้าหมาย ปลายทางมีที่อยู่ IP ภายในในเครือข่าย VPC และอิงตามทรัพยากรกฎการส่งต่อ

คุณส่งการจราจรของข้อมูลไปยังปลายทาง ซึ่งส่งต่อไปยังเป้าหมายที่อยู่นอกเครือข่าย VPC ของคุณ

เป้าหมาย

ปลายทางของ Private Service Connect มีเป้าหมาย ซึ่งเป็นบริการที่คุณต้องการเชื่อมต่อด้วย

  • API Bundle มีลักษณะดังนี้
  • API ทั้งหมด: Google API ส่วนใหญ่
  • VPC-SC: API ที่การควบคุมบริการ VPC รองรับ
  • บริการที่เผยแพร่ในเครือข่าย VPC อื่น บริการนี้สามารถจัดการโดยองค์กรของคุณเองหรือบุคคลที่สาม

บริการที่เผยแพร่

หากต้องการเชื่อมต่อปลายทางกับบริการของผู้ผลิตบริการ คุณต้องมีไฟล์แนบบริการสำหรับบริการดังกล่าว URI ของไฟล์แนบบริการมีรูปแบบดังนี้ projects/SERVICE_PROJECT/regions/REGION/serviceattachs/SERVICE_NAME

4. แนวคิดหลักสำหรับผู้ผลิตบริการ

หากต้องการทำให้บริการพร้อมใช้งานสำหรับผู้บริโภค คุณต้องสร้างซับเน็ตเฉพาะอย่างน้อย 1 เครือข่ายเพื่อใช้สำหรับการแปลที่อยู่เครือข่าย (NAT) ของที่อยู่ IP ของผู้บริโภค จากนั้นคุณจะสร้างไฟล์แนบของบริการซึ่งอ้างถึงซับเน็ตเหล่านั้น

ซับเน็ตของ Private Service Connect

ในการเปิดเผยบริการ ผู้ผลิตบริการจะสร้างซับเน็ตอย่างน้อย 1 รายการโดยมี Private Service Connect ตามวัตถุประสงค์ก่อน

เมื่อส่งคำขอจากเครือข่าย VPC ของผู้บริโภค ระบบจะแปลที่อยู่ IP ต้นทางของผู้ใช้โดยใช้ NAT ต้นทาง (SNAT) เป็นที่อยู่ IP ที่เลือกจากซับเน็ตของ Private Service Connect

หากต้องการเก็บข้อมูลที่อยู่ IP สำหรับการเชื่อมต่อของผู้บริโภค โปรดดูที่การดูข้อมูลการเชื่อมต่อของผู้บริโภค

ซับเน็ตเหล่านี้ไม่สามารถใช้สำหรับทรัพยากร เช่น อินสแตนซ์ VM หรือกฎการส่งต่อ ซับเน็ตจะใช้เพื่อระบุที่อยู่ IP สำหรับ SNAT ของการเชื่อมต่อผู้บริโภคที่เข้ามาใหม่เท่านั้น

ซับเน็ต Private Service Connect ต้องมีที่อยู่ IP อย่างน้อย 1 รายการสำหรับ VM ของผู้บริโภคทุกๆ 63 รายการ เพื่อที่ VM ของผู้บริโภคแต่ละรายการมีการจัดสรรโทเค็นต้นทาง 1,024 รายการสำหรับการแปลที่อยู่เครือข่าย

ขนาดต่ำสุดสำหรับซับเน็ตของ Private Service Connect คือ /24

ไฟล์แนบของบริการ

ผู้ผลิตบริการแสดงบริการของตนผ่านไฟล์แนบบริการ

  • หากต้องการแสดงบริการ ผู้ผลิตบริการจะสร้างไฟล์แนบบริการที่อ้างอิงกฎการส่งต่อตัวจัดสรรภาระงานของบริการ
  • หากต้องการเข้าถึงบริการ ผู้บริโภคบริการจะสร้างปลายทางที่อ้างถึงไฟล์แนบของบริการ

ค่ากำหนดการเชื่อมต่อ

เมื่อสร้างบริการ คุณจะต้องเลือกวิธีทำให้บริการนั้นใช้งานได้ ซึ่งมี 2 ตัวเลือกดังนี้

  • ยอมรับการเชื่อมต่อสำหรับทุกโปรเจ็กต์โดยอัตโนมัติ - ลูกค้าบริการทุกรายสามารถกำหนดค่าปลายทางและเชื่อมต่อกับบริการได้โดยอัตโนมัติ
  • ยอมรับการเชื่อมต่อสำหรับโปรเจ็กต์ที่เลือก - ผู้ใช้บริการจะกำหนดค่าปลายทางให้เชื่อมต่อกับบริการ และผู้ผลิตบริการจะยอมรับหรือปฏิเสธคำขอการเชื่อมต่อ

5. สภาพแวดล้อมการทดสอบ

เครือข่ายผู้บริโภคประกอบด้วยที่อยู่ IP แบบคงที่ของ TCP ซึ่งใช้เพื่อสร้างคำขอไปยังผู้ผลิตบริการ นอกเหนือจากไฟล์แนบบริการเป้าหมายที่แมปกับไฟล์แนบบริการของผู้ผลิต (บริการที่เผยแพร่)

ตอนนี้ เรามาดูเครือข่ายโปรดิวเซอร์กัน โปรดสังเกตว่าเครือข่ายผู้ผลิตไม่มีการแมปกับเครือข่ายผู้บริโภค แต่เครือข่ายผู้ผลิตมีไฟล์แนบบริการ (บริการที่เผยแพร่) ที่ผู้บริโภคใช้สำหรับบริการต่างๆ ไฟล์แนบบริการของผู้ผลิตในห้องทดลองของเราคือ Load Balancer ของเลเยอร์ 4 (กฎการส่งต่อผู้ผลิต) ที่แมปกับบริการแบ็กเอนด์ที่รองรับแอปพลิเคชัน TCP

ซับเน็ตของ NAT และกฎไฟร์วอลล์ที่เกี่ยวข้องช่วยให้สื่อสารกับแอปพลิเคชันผู้ผลิตได้

28b09284a99eb60b.png

การตั้งค่าสภาพแวดล้อมตามเวลาที่สะดวก

  1. ลงชื่อเข้าใช้ Cloud Console และสร้างโปรเจ็กต์ใหม่หรือใช้โปรเจ็กต์ที่มีอยู่ซ้ำ หากยังไม่มีบัญชี Gmail หรือ Google Workspace คุณต้องสร้างบัญชี

96a9c957bc475304.png

b9a10ebdf5b5a448.png

a1e3c01a38fa61c2.png

โปรดจดจำรหัสโปรเจ็กต์ ซึ่งเป็นชื่อที่ไม่ซ้ำกันในโปรเจ็กต์ Google Cloud ทั้งหมด (ชื่อด้านบนมีคนใช้แล้ว และจะใช้ไม่ได้ ขออภัย) และจะมีการอ้างอิงใน Codelab ว่า PROJECT_ID ในภายหลัง

  1. ถัดไป คุณจะต้องเปิดใช้การเรียกเก็บเงินใน Cloud Console เพื่อใช้ทรัพยากร Google Cloud

การใช้งาน Codelab นี้น่าจะไม่มีค่าใช้จ่ายใดๆ หากมี ตรวจสอบว่าคุณได้ทำตามวิธีการใน "การล้างข้อมูล" ซึ่งจะแนะนำคุณเกี่ยวกับวิธีปิดทรัพยากรเพื่อไม่ให้มีการเรียกเก็บเงินนอกเหนือจากบทแนะนำนี้ ผู้ใช้ใหม่ของ Google Cloud จะมีสิทธิ์เข้าร่วมโปรแกรมทดลองใช้ฟรี$300 USD

เริ่มต้น Cloud Shell

แม้ว่าคุณจะดำเนินการ Google Cloud จากระยะไกลได้จากแล็ปท็อป แต่คุณจะใช้ Google Cloud Shell ซึ่งเป็นสภาพแวดล้อมแบบบรรทัดคำสั่งที่ทำงานในระบบคลาวด์ใน Codelab นี้

จากคอนโซล GCP ให้คลิกไอคอน Cloud Shell บนแถบเครื่องมือด้านขวาบนดังนี้

bce75f34b2c53987.png

การจัดสรรและเชื่อมต่อกับสภาพแวดล้อมนี้ควรใช้เวลาเพียงครู่เดียว เมื่อเสร็จแล้ว คุณจะเห็นข้อมูลต่อไปนี้

f6ef2b5f13479f3a.png

เครื่องเสมือนนี้เต็มไปด้วยเครื่องมือการพัฒนาทั้งหมดที่คุณต้องการ โดยมีไดเรกทอรีหลักขนาด 5 GB ที่ใช้งานได้ต่อเนื่องและทำงานบน Google Cloud ซึ่งช่วยเพิ่มประสิทธิภาพของเครือข่ายและการตรวจสอบสิทธิ์ได้อย่างมาก งานทั้งหมดใน Lab นี้สามารถทำได้โดยใช้เบราว์เซอร์

6. ก่อนเริ่มต้น

Codelab กำหนดให้มี 2 โปรเจ็กต์ แม้จะไม่ใช่ข้อกำหนดสำหรับ PSC จดบันทึกการอ้างอิงเพื่อสนับสนุนโปรเจ็กต์เดียวหรือหลายโปรเจ็กต์

โปรเจ็กต์เดียว - อัปเดตโปรเจ็กต์เพื่อสนับสนุนเครือข่ายผู้ผลิตและผู้บริโภค

ตรวจสอบว่าตั้งค่ารหัสโปรเจ็กต์ใน Cloud Shell แล้ว

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 แล้ว

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
prodproject=YOUR-PROJECT-NAME
echo $prodproject

7. สร้างเครือข่าย VPC ของ Producer

หมายเหตุ: ในส่วนต่อไปนี้ ให้ดำเนินการอัปเดตการกำหนดค่าในโปรเจ็กต์ที่มีบริการ Producer ของคุณ

เครือข่าย VPC

จาก Cloud Shell

gcloud compute networks create vpc-demo-producer --project=$prodproject --subnet-mode=custom

สร้างซับเน็ต

จาก Cloud Shell

gcloud compute networks subnets create vpc-demo-us-west2 --project=$prodproject --range=10.0.2.0/24 --network=vpc-demo-producer --region=us-west2

สร้างอินสแตนซ์ Cloud NAT

Cloud NAT ไม่ใช่ NAT เดียวกันกับที่ใช้สำหรับ PSC มีการใช้ Cloud NAT สำหรับการเข้าถึงอินเทอร์เน็ตเพื่อดาวน์โหลดแพ็กเกจแอปพลิเคชันอย่างชัดเจน

สร้าง Cloud Router

จาก Cloud Shell

gcloud compute routers create crnatprod --network vpc-demo-producer --region us-west2

สร้าง Cloud NAT

จาก Cloud Shell

gcloud compute routers nats create cloudnatprod --router=crnatprod --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --enable-logging --region us-west2

8. สร้างอินสแตนซ์การประมวลผล

สร้างอินสแตนซ์ www-01 จาก Cloud Shell

gcloud compute instances create www-01 \
    --zone=us-west2-a \
    --image-family=debian-9 \
    --image-project=debian-cloud \
    --subnet=vpc-demo-us-west2 --no-address \
    --metadata=startup-script='#! /bin/bash
apt-get update
apt-get install tcpdump -y
apt-get install apache2 -y
a2ensite default-ssl
apt-get install iperf3 -y
a2enmod ssl
vm_hostname="$(curl -H "Metadata-Flavor:Google" \
http://169.254.169.254/computeMetadata/v1/instance/name)"
filter="{print \$NF}"
vm_zone="$(curl -H "Metadata-Flavor:Google" \
http://169.254.169.254/computeMetadata/v1/instance/zone \
| awk -F/ "${filter}")"
echo "Page on $vm_hostname in $vm_zone" | \
tee /var/www/html/index.html
systemctl restart apache2
iperf3 -s -p 5050'

สร้างอินสแตนซ์ www-02 จาก Cloud Shell

gcloud compute instances create www-02 \
    --zone=us-west2-a \
    --image-family=debian-9 \
    --image-project=debian-cloud \
    --subnet=vpc-demo-us-west2 --no-address \
    --metadata=startup-script='#! /bin/bash
apt-get update
apt-get install tcpdump -y
apt-get install apache2 -y
a2ensite default-ssl
apt-get install iperf3 -y
a2enmod ssl
vm_hostname="$(curl -H "Metadata-Flavor:Google" \
http://169.254.169.254/computeMetadata/v1/instance/name)"
filter="{print \$NF}"
vm_zone="$(curl -H "Metadata-Flavor:Google" \
http://169.254.169.254/computeMetadata/v1/instance/zone \
| awk -F/ "${filter}")"
echo "Page on $vm_hostname in $vm_zone" | \
tee /var/www/html/index.html
systemctl restart apache2
iperf3 -s -p 5050'

9. สร้างกลุ่มอินสแตนซ์ที่ไม่มีการจัดการ

สร้างกลุ่มอินสแตนซ์ที่ไม่มีการจัดการซึ่งประกอบด้วย www-01 และ www-02

จาก Cloud Shell

gcloud compute instance-groups unmanaged create vpc-demo-ig-www --zone=us-west2-a

gcloud compute instance-groups unmanaged add-instances vpc-demo-ig-www --zone=us-west2-a --instances=www-01,www-02

gcloud compute health-checks create http hc-http-80 --port=80

10. สร้างบริการแบ็กเอนด์ TCP, กฎการส่งต่อ และ ไฟร์วอลล์

สร้างบริการแบ็กเอนด์จาก Cloud Shell

gcloud compute backend-services create vpc-demo-www-be-tcp --load-balancing-scheme=internal --protocol=tcp --region=us-west2 --health-checks=hc-http-80

gcloud compute backend-services add-backend vpc-demo-www-be-tcp --region=us-west2 --instance-group=vpc-demo-ig-www --instance-group-zone=us-west2-a

สร้างกฎการส่งต่อจาก Cloud Shell

gcloud compute forwarding-rules create vpc-demo-www-ilb-tcp --region=us-west2 --load-balancing-scheme=internal --network=vpc-demo-producer --subnet=vpc-demo-us-west2 --address=10.0.2.10 --ip-protocol=TCP --ports=all --backend-service=vpc-demo-www-be-tcp --backend-service-region=us-west2

จาก Cloud Shell ให้สร้างกฎไฟร์วอลล์เพื่อเปิดใช้การตรวจสอบประสิทธิภาพแบ็กเอนด์

gcloud compute firewall-rules create vpc-demo-health-checks --allow tcp:80,tcp:443 --network vpc-demo-producer --source-ranges 130.211.0.0/22,35.191.0.0/16 --enable-logging

หากต้องการอนุญาตให้ IAP เชื่อมต่อกับอินสแตนซ์ VM ให้สร้างกฎของไฟร์วอลล์ที่มีลักษณะดังนี้

  • ใช้กับอินสแตนซ์ VM ทั้งหมดที่คุณต้องการให้เข้าถึงได้โดยใช้ IAP
  • อนุญาตการรับส่งข้อมูลขาเข้าจากช่วง IP 35.235.240.0/20 ช่วงนี้ประกอบด้วยที่อยู่ IP ทั้งหมดที่ IAP ใช้สำหรับการส่งต่อ TCP

จาก Cloud Shell

gcloud compute firewall-rules create psclab-iap-prod --network vpc-demo-producer --allow tcp:22 --source-ranges=35.235.240.0/20 --enable-logging

11. สร้างซับเน็ต TCP NAT

จาก Cloud Shell

gcloud compute networks subnets create vpc-demo-us-west2-psc-tcp --network=vpc-demo-producer --region=us-west2 --range=192.168.0.0/24 --purpose=private-service-connect

12. สร้างไฟล์แนบบริการ TCP และกฎไฟร์วอลล์

จาก Cloud Shell สร้างไฟล์แนบบริการ TCP

gcloud compute service-attachments create vpc-demo-psc-west2-tcp --region=us-west2 --producer-forwarding-rule=vpc-demo-www-ilb-tcp --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=vpc-demo-us-west2-psc-tcp

ตรวจสอบไฟล์แนบบริการ TCP

gcloud compute service-attachments describe vpc-demo-psc-west2-tcp --region us-west2

จาก Cloud Shell ให้สร้างกฎไฟร์วอลล์ที่อนุญาตให้มีการเข้าถึงซับเน็ต TCP NAT ไปยังแบ็กเอนด์ ILB

gcloud compute --project=$prodproject firewall-rules create vpc-demo-allowpsc-tcp --direction=INGRESS --priority=1000 --network=vpc-demo-producer --action=ALLOW --rules=all --source-ranges=192.168.0.0/24 --enable-logging

13. สร้างเครือข่าย VPC สำหรับผู้บริโภค

หมายเหตุ: ในส่วนต่อไปนี้ ให้ดำเนินการอัปเดตการกำหนดค่าในโปรเจ็กต์ที่มี Consumer Service ของคุณ

ในส่วนต่อไปนี้จะมีการกำหนดค่า VPC สำหรับผู้บริโภคในโปรเจ็กต์แยกต่างหาก การสื่อสารระหว่างเครือข่ายผู้บริโภคและผู้ผลิตจะทำได้ผ่านไฟล์แนบของบริการที่กำหนดไว้ในเครือข่ายผู้บริโภค

เครือข่าย VPC

Codelab กำหนดให้มี 2 โปรเจ็กต์ แม้จะไม่ใช่ข้อกำหนดสำหรับ PSC จดบันทึกการอ้างอิงเพื่อสนับสนุนโปรเจ็กต์เดียวหรือหลายโปรเจ็กต์

โปรเจ็กต์เดียว - อัปเดตโปรเจ็กต์เพื่อสนับสนุนเครือข่ายผู้ผลิตและผู้บริโภค

ตรวจสอบว่าตั้งค่ารหัสโปรเจ็กต์ใน Cloud Shell แล้ว

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 แล้ว

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
consumerproject=YOUR-PROJECT-NAME
echo $consumerproject

จาก 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-west2

สร้างที่อยู่ IP แบบคงที่สำหรับแอปพลิเคชัน TCP

จาก Cloud Shell

gcloud compute addresses create vpc-consumer-psc-tcp --region=us-west2 --subnet=consumer-subnet --addresses 10.0.60.100

สร้างกฎไฟร์วอลล์

หากต้องการอนุญาตให้ IAP เชื่อมต่อกับอินสแตนซ์ VM ให้สร้างกฎของไฟร์วอลล์ที่มีลักษณะดังนี้

  • ใช้กับอินสแตนซ์ VM ทั้งหมดที่คุณต้องการให้เข้าถึงได้โดยใช้ IAP
  • อนุญาตการรับส่งข้อมูลขาเข้าจากช่วง IP 35.235.240.0/20 ช่วงนี้ประกอบด้วยที่อยู่ IP ทั้งหมดที่ IAP ใช้สำหรับการส่งต่อ TCP

จาก 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

สร้างอินสแตนซ์ Cloud NAT

Cloud NAT ไม่ใช่ NAT เดียวกันกับที่ใช้สำหรับ PSC มีการใช้ Cloud NAT สำหรับการเข้าถึงอินเทอร์เน็ตเพื่อดาวน์โหลดแพ็กเกจแอปพลิเคชัน

สร้าง Cloud Router

จาก Cloud Shell

gcloud compute routers create crnatconsumer --network vpc-demo-consumer --region us-west2

สร้าง Cloud NAT

จาก Cloud Shell

gcloud compute routers nats create cloudnatconsumer --router=crnatconsumer --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --enable-logging --region us-west2

14. สร้าง VM ของอินสแตนซ์ทดสอบ

จาก Cloud Shell

gcloud compute instances create test-instance-1 \
    --zone=us-west2-a \
    --image-family=debian-9 \
    --image-project=debian-cloud \
    --subnet=consumer-subnet --no-address \
    --metadata=startup-script='#! /bin/bash
apt-get update
apt-get install iperf3 -y
apt-get install tcpdump -y'

15. สร้างไฟล์แนบบริการ TCP

จาก Cloud Shell

gcloud compute forwarding-rules create vpc-consumer-psc-fr-tcp --region=us-west2 --network=vpc-demo-consumer --address=vpc-consumer-psc-tcp --target-service-attachment=projects/$prodproject/regions/us-west2/serviceAttachments/vpc-demo-psc-west2-tcp

16. การตรวจสอบความถูกต้อง

เราจะใช้ CURL, TCPDUMP และ บันทึกไฟร์วอลล์ เพื่อตรวจสอบการสื่อสารของผู้บริโภคและผู้ผลิต

ภายในโปรเจ็กต์ของผู้บริโภค ที่อยู่ IP แบบคงที่จะใช้เพื่อเริ่มการสื่อสารกับ Producer การแมปที่อยู่ IP แบบคงที่กับกฎการส่งต่อผู้บริโภคนี้จะได้รับการตรวจสอบโดยใช้ไวยากรณ์ต่อไปนี้

หมายเหตุ: ในส่วนต่อไปนี้ ให้ดำเนินการอัปเดตการกำหนดค่าในโปรเจ็กต์ที่มี Consumer Service ของคุณ

จาก Cloud Shell สำหรับ VPC สำหรับผู้บริโภค ให้ระบุกฎการส่งต่อ TCP และ IP แบบคงที่

gcloud compute forwarding-rules describe vpc-consumer-psc-fr-tcp --region us-west2

เอาต์พุต:

IPAddress: 10.0.60.100
IPProtocol: TCP
creationTimestamp: '2021-07-14T13:34:23.359-07:00'
id: '2768158450402915488'
kind: compute#forwardingRule
labelFingerprint: 42WmSpB8rSM=
name: vpc-consumer-psc-fr-tcp
<snip>

17. การตรวจสอบ TCP

หมายเหตุ: ในส่วนต่อไปนี้ ให้ดำเนินการอัปเดตการกำหนดค่าในโปรเจ็กต์ที่มีบริการ Producer ของคุณ

จากโปรเจ็กต์ Producer ให้ระบุ "www-01" &amp; "www-02" และเปิดเซสชัน SSH 1 รายการต่ออินสแตนซ์

6d0bb8c5cb115876.png

จาก "www-01" ดำเนินการ TCPDUMP เพื่อตรวจสอบ NAT

sudo tcpdump -i any net 192.168.0.0/16 -n

จาก "www-02" ดำเนินการ TCPDUMP เพื่อตรวจสอบ NAT

sudo tcpdump -i any net 192.168.0.0/16 -n

หมายเหตุ: ในส่วนต่อไปนี้ ให้ดำเนินการอัปเดตการกำหนดค่าในโปรเจ็กต์ที่มี Consumer Service ของคุณ

จากโครงการผู้บริโภค ให้ระบุ "test-instance-1" และเริ่ม 2 เซสชัน

จาก "test-instance-1" เซสชันที่ 1 ดำเนินการ TCPDUMP เพื่อตรวจสอบผู้บริโภค

sudo tcpdump -i any host 10.0.60.100 -n

จาก "test-instance-1" เซสชันที่ 2 ดำเนินการตรวจสอบ TCP

curl -v 10.0.60.100 

18. การสังเกตการณ์ - ผู้บริโภค

จาก "test-instance-1" CURL ของเซสชันที่ 2 สำเร็จและให้ 200 OK

@test-instance-1:~$ curl -v 10.0.60.100 
* Rebuilt URL to: 10.0.60.100/
*   Trying 10.0.60.100...
* TCP_NODELAY set
* Connected to 10.0.60.100 (10.0.60.100) port 80 (#0)
> GET / HTTP/1.1
> Host: 10.0.60.100
> User-Agent: curl/7.52.1
> Accept: */*
> 
< HTTP/1.1 200 OK
< Date: Wed, 14 Jul 2021 21:20:22 GMT
< Server: Apache/2.4.25 (Debian)
< Last-Modified: Wed, 14 Jul 2021 20:09:09 GMT
< ETag: "1d-5c71aed5edabd"
< Accept-Ranges: bytes
< Content-Length: 29
< Content-Type: text/html
< 
Page on www-01 in us-west2-a
* Curl_http_done: called premature == 0
* Connection #0 to host 10.0.60.100 left intact

จาก "test-instance-1" เซสชันที่ 1 TCPDUMP ระบุอินสแตนซ์ VM → การสื่อสารและการตอบสนอง IP แบบคงที่ของ TCP

21:20:22.572052 IP 10.0.60.2.59432 > 10.0.60.100.80: Flags [P.], seq 1:76, ack 1, win 222, options [nop,nop,TS val 634554 ecr 998739], length 75: HTTP: GET / HTTP/1.1

21:20:22.572688 IP 10.0.60.100.80 > 10.0.60.2.59432: Flags [P.], seq 1:257, ack 76, win 220, options [nop,nop,TS val 998739 ecr 634554], length 256: HTTP: HTTP/1.1 200 OK

การบันทึกไฟร์วอลล์

ใช้เครื่องมือสำรวจบันทึกเพื่อตรวจสอบกฎไฟร์วอลล์ "vpc-consumner-psc" กำลังบันทึกโฟลว์ระหว่างอินสแตนซ์ VM และ IP แบบคงที่

  1. จาก Cloud Console ให้ระบุการบันทึกการดำเนินการ → เครื่องมือสำรวจบันทึก
  2. ในช่องการค้นหา ให้อัปเดตรายการด้านล่างด้วย yourconsumerproject แล้วเลือก "Run Query"

logName:(projects/yourconsumerproject/logs/compute.googleapis.com%2Ffirewall) AND jsonPayload.rule_details.reference:("network:vpc-demo-consumer/firewall:vpc-consumer-psc")

  1. ผลการค้นหาจะแสดงข้อมูลต่อไปนี้ตามภาพหน้าจอที่ให้ไว้

b573c878a8d6d01f.png

  1. ขยายบันทึกและระบุผลลัพธ์ที่ให้ไว้ด้านล่าง จดบันทึก dest_ip: 10.0.60.100 คือ IP แบบ StatIC TCP และ src_ip: 10.0.60.2 คือที่อยู่ IP ของอินสแตนซ์ VM

1b4f46b3e61f6f12.png

19. การสังเกตการณ์ - ผู้ผลิต

จากอินสแตนซ์แบ็กเอนด์ "www-01" หรือ "www-02" พบการสื่อสารต่อไปนี้ระหว่างซับเน็ต TCP NAT และ TCP ILB

21:20:22.572186 IP 192.168.0.2.1024 > 10.0.2.10.80: Flags [P.], seq 1:76, ack 1, win 222, options [nop,nop,TS val 634554 ecr 998739], length 75: HTTP: GET / HTTP/1.1

21:20:22.572679 IP 10.0.2.10.80 > 192.168.0.2.1024: Flags [P.], seq 1:257, ack 76, win 220, options [nop,nop,TS val 998739 ecr 634554], length 256: HTTP: HTTP/1.1 200 OK

20. การบันทึกไฟร์วอลล์

ใช้เครื่องมือสำรวจบันทึกเพื่อตรวจสอบกฎไฟร์วอลล์ "vpc-demo-allowpsc-tcp" กำลังบันทึก TCP NAT และ โฟลว์ TCP ILB โดยทำตามขั้นตอนต่อไปนี้

  1. จาก Cloud Console ให้ระบุการบันทึกการดำเนินการ → เครื่องมือสำรวจบันทึก
  2. ในช่องการค้นหา ให้อัปเดตรายการด้านล่างด้วย yourprodproject แล้วเลือก "เรียกใช้การค้นหา"

logName:(projects/yourprodproject/logs/compute.googleapis.com%2Ffirewall) AND jsonPayload.rule_details.reference:("network:vpc-demo-manufacturers/firewall:vpc-demo-allowpsc-tcp")

  1. ผลการค้นหาจะแสดงข้อมูลต่อไปนี้ตามภาพหน้าจอที่ให้ไว้

8ce6b0d17d76ad6d.png

  1. ขยายบันทึกและระบุผลลัพธ์ที่ให้ไว้ด้านล่าง จดบันทึก dest_ip ของ TCP ILB: 10.0.2.10 และ NAT TCP source_range (192.168.0.0/24) และ src_ip ที่เกี่ยวข้อง: 192.168.0.2

e157a7af8cb667e.png

21. เปิดใช้โปรโตคอลของพร็อกซี

โดยค่าเริ่มต้น Private Service Connect จะแปลที่อยู่ IP ต้นทางของผู้บริโภคเป็นที่อยู่ในซับเน็ตของ Private Service Connect รายการใดรายการหนึ่งในเครือข่าย VPC ของผู้ผลิตบริการ หากต้องการดูที่อยู่ IP ต้นทางเดิมของผู้บริโภคแทน คุณสามารถเปิดใช้โปรโตคอลของ PROXY ได้ หากเปิดใช้โปรโตคอล PROXY คุณจะรับที่อยู่ IP ต้นทางและรหัสการเชื่อมต่อ PSC ของผู้บริโภคได้จากส่วนหัวโปรโตคอลของ PROXY

e9d1c49971b10ed0.png

การอ้างอิงเอกสาร

ลบบริการที่เผยแพร่ของผู้ผลิต

หมายเหตุ: ในส่วนต่อไปนี้ ให้ดำเนินการอัปเดตการกำหนดค่าในโปรเจ็กต์ที่มีบริการ Producer ของคุณ

จาก Cloud Shell ให้ลบไฟล์แนบบริการ TCP

gcloud compute service-attachments delete vpc-demo-psc-west2-tcp --region=us-west2 --quiet

ระบบจะลบไฟล์แนบของบริการตรวจสอบจาก Cloud Shell (แสดงแล้ว 0 รายการ)

gcloud compute service-attachments list

สร้างไฟล์แนบบริการ TCP ที่เปิดใช้โปรโตคอลพร็อกซี

gcloud compute service-attachments create vpc-demo-psc-west2-tcp --region=us-west2 \
--producer-forwarding-rule=vpc-demo-www-ilb-tcp \
--connection-preference=ACCEPT_AUTOMATIC \
--nat-subnets=vpc-demo-us-west2-psc-tcp \
--enable-proxy-protocol

ระบบจะสร้างไฟล์แนบบริการการตรวจสอบจาก Cloud Shell โดยเปิดใช้โปรโตคอลพร็อกซี (จริง)

gcloud compute service-attachments describe vpc-demo-psc-west2-tcp --region=us-west2 | grep -i enableProxyProtocol:

หมายเหตุ: ในส่วนต่อไปนี้ ให้ดำเนินการอัปเดตการกำหนดค่าในโปรเจ็กต์ที่มี Consumer Service ของคุณ

ลบกฎการส่งต่อ TCP จาก Cloud Shell

gcloud compute forwarding-rules delete vpc-consumer-psc-fr-tcp --region=us-west2 --quiet

สร้างกฎการส่งต่อ TCP อีกครั้งเพื่อเชื่อมโยงกับไฟล์แนบของบริการที่สร้างขึ้นก่อนหน้านี้ (ผู้ผลิต)

จาก Cloud Shell ให้สร้างกฎการส่งต่อ TCP

gcloud compute forwarding-rules create vpc-consumer-psc-fr-tcp \
--region=us-west2 --network=vpc-demo-consumer \
--address=vpc-consumer-psc-tcp \
--target-service-attachment=projects/$prodproject/regions/us-west2/serviceAttachments/vpc-demo-psc-west2-tcp

การตรวจสอบโปรโตคอลพร็อกซี

หมายเหตุ: ในส่วนต่อไปนี้ ให้ดำเนินการอัปเดตการกำหนดค่าในโปรเจ็กต์ที่มีบริการ Producer ของคุณ

จากโปรเจ็กต์ Producer ให้ระบุ "www-01" &amp; "www-02" และเปิดใช้งาน 1 เซสชันต่ออินสแตนซ์

6d0bb8c5cb115876.png

จาก "www-01" ดำเนินการ TCPDUMP เพื่อตรวจสอบ NAT

sudo tcpdump -nnvvXSs 1514 net 192.168.0.0/16

จาก "www-02" ดำเนินการ TCPDUMP เพื่อตรวจสอบ NAT

sudo tcpdump -nnvvXSs 1514 net 192.168.0.0/16

หมายเหตุ: ในส่วนต่อไปนี้ ให้ดำเนินการอัปเดตการกำหนดค่าในโปรเจ็กต์ที่มี Consumer Service ของคุณ

จากโครงการผู้บริโภค ให้ระบุ "test-instance-1" แล้วเปิดเซสชันเดียว

จาก "test-instance-1" เซสชันทำการ curl

curl 10.0.60.100 

การสังเกตการณ์ - ผู้บริโภค

โปรดทราบว่าถ้าเปิดใช้ PROXY Protocol v2 แต่ไม่มีการกำหนดค่าแอปพลิเคชันให้รองรับ ข้อความแสดงข้อผิดพลาดจะปรากฏขึ้นหากมีการเชื่อมต่อจากไคลเอ็นต์ตามตัวอย่างด้านล่าง ต้องอัปเดต Apache เพื่อรองรับส่วนหัวและ v2 ของพร็อกซีเพิ่มเติม ไม่ได้ครอบคลุมใน Codelab

จาก "test-instance-1" CURL ของเซสชันจะสร้างคำขอที่ไม่ถูกต้อง 400 รายการตามที่คาดหวัง แม้ว่าการค้นหาแบ็กเอนด์จะสำเร็จก็ตาม

@test-instance-1:~$ curl 10.0.60.100 
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.4.25 (Debian) Server at www-02.c.deepakmichaelprod.internal Port 80</address>

การสังเกตการณ์ - ผู้บริโภค

จากอินสแตนซ์แบ็กเอนด์ "www-01" หรือ "www-02" การสื่อสารต่อไปนี้ระหว่างซับเน็ต TCP NAT และ TCP ILB จะสังเกตได้ด้วยโปรโตคอลพร็อกซีที่ฝังอยู่ในการบันทึก

ในกรณีส่วนใหญ่ แพ็กเก็ตที่ 3 ใน tcpdump มีองค์ประกอบข้อมูลโปรโตคอลพร็อกซี (IE) ที่เกี่ยวข้อง (ไม่บังคับ) ระบุแพ็กเก็ตที่มีขนาด 39 ไบต์ที่มีโปรโตคอลพร็อกซี IE

192.168.0.3.1025 > 10.0.2.10.80: Flags [P.], cksum 0xb617 (correct), seq 2729454396:2729454435, ack 1311105819, win 28160, length 39: HTTP
        0x0000:  4500 004f 0000 4000 4006 6df4 c0a8 0003  E..O..@.@.m.....
        0x0010:  0a00 020a 0401 0050 a2b0 2b3c 4e25 e31b  .......P..+<N%..
        0x0020:  5018 6e00 b617 0000 0d0a 0d0a 000d 0a51  P.n............Q
        0x0030:  5549 540a 2111 0017 0a00 3c02 0a00 3c64  UIT.!.....<...<d
        0x0040:  8138 0050 e000 0800 9b34 d70a 003c 64    .8.P.....4...<d

ระบุลายเซ็นโปรโตคอล PROXY: 0d0a0d0a000d0a515549540a ในการดักจับแพ็กเก็ต

เมื่อระบุลายเซ็นโปรโตคอลของ PROXY แล้ว คุณจะแยกรายละเอียดและถอดรหัสช่องต่างๆ ได้ดังนี้

ลายเซ็นโปรโตคอลของ PROXY: 0d0a0d0a000d0a515549540a

ฟิลด์โปรโตคอลของ PROXY อื่นๆ: 21 11 00 17

IP และพอร์ต: 0a003c02 0a003c64 8138 0050

ประเภท TLV: e0

TLV ความยาว: 00 08

pscConnection ID: 009b34d70a003c64

เลขฐานสิบหก

ทศนิยม / IP

ลายเซ็นโปรโตคอลของ PROXY

0d0a0d0a000d0a515549540a

เวอร์ชัน โปรโตคอล ความยาว

21 11 0017

IP ของ Src

0a003c02

10.0.60.2

IP ของ DST

0a003c64

10.0.60.100

พอร์ต Src

8138

33080

พอร์ต Dst

0050

80

ประเภท TLV (PP2_TYPE_GCP)

e0

ความยาว TLV

0008

pscConnectionId

00004dde290a003c64

43686719580552292

นอกจากนี้ ยังสามารถตรวจสอบ pscConnectionId ได้โดยอธิบายกฎการส่งต่อผู้บริโภคด้านล่าง และตรวจสอบว่าตรงกับกฎต่อไปนี้

หมายเหตุ: ในส่วนต่อไปนี้ ให้ดำเนินการอัปเดตการกำหนดค่าในโปรเจ็กต์ที่มี Consumer Service ของคุณ

จาก Cloud Shell อธิบายกฎการส่งต่อ TCP

gcloud compute forwarding-rules describe vpc-consumer-psc-fr-tcp --region=us-west2

เอาต์พุตที่อธิบาย pscConnectionID

$ gcloud compute forwarding-rules describe vpc-consumer-psc-fr-tcp --region=us-west2
IPAddress: 10.0.60.100
IPProtocol: TCP
creationTimestamp: '2021-07-14T16:50:31.766-07:00'
id: '4443494505307621032'
kind: compute#forwardingRule
labelFingerprint: 42WmSpB8rSM=
name: vpc-consumer-psc-fr-tcp
network: https://www.googleapis.com/compute/v1/projects/deepakmichaeldev/global/networks/vpc-demo-consumer
networkTier: PREMIUM
pscConnectionId: '43686719580552292'
pscConnectionStatus: ACCEPTED

22. นโยบายการเชื่อมต่อ

คุณสลับระหว่างการยอมรับโปรเจ็กต์แบบอัตโนมัติและแบบที่อาจไม่เหมาะสมสำหรับบริการที่เผยแพร่ได้

การเปลี่ยนจากการยอมรับอัตโนมัติเป็นการยอมรับอย่างชัดแจ้งจะไม่ส่งผลต่ออุปกรณ์ปลายทางของผู้บริโภคที่เคยเชื่อมต่อกับบริการก่อนการเปลี่ยนแปลงนี้ ปลายทางของผู้ใช้ที่มีอยู่จะเชื่อมต่อกับบริการที่เผยแพร่ได้จนกว่าไฟล์แนบของบริการจะถูกลบ ต้องยอมรับปลายทางของผู้ใช้ใหม่ก่อนจึงจะเชื่อมต่อกับบริการได้ โปรดดูข้อมูลเพิ่มเติมที่หัวข้อการจัดการคำขอสิทธิ์เข้าถึงบริการที่เผยแพร่

ในส่วนนี้ คุณจะได้แก้ไขนโยบายการเชื่อมต่อของผู้ผลิตเพื่ออนุมัติไฟล์แนบบริการของผู้บริโภคอย่างชัดเจน

หมายเหตุ: ในส่วนต่อไปนี้ ให้ดำเนินการอัปเดตการกำหนดค่าในโปรเจ็กต์ที่มีบริการ Producer ของคุณ

Cloud Shell จากบริการผู้ผลิต ให้อัปเดตนโยบายค่ากำหนดการเชื่อมต่อจากการยอมรับโดยอัตโนมัติเป็นยอมรับด้วยตนเอง

gcloud compute service-attachments update vpc-demo-psc-west2-tcp --region=us-west2 --connection-preference ACCEPT_MANUAL

ระบุสถานะปลายทางโดยไปที่ Network Services → Private Service Connect → บริการที่เผยแพร่แล้ว → vpc-demo-psc-west2-tcp → โปรเจ็กต์ที่เชื่อมต่อ

e1d90d1563e10731.png

ประกาศ โปรเจ็กต์ของผู้ใช้เปลี่ยนเป็น "รอดำเนินการ" สถานะในส่วน "โปรเจ็กต์ที่เชื่อมต่อ"

ยอมรับโปรเจ็กต์ของผู้บริโภคโดยดําเนินการต่อไปนี้ใน Cloud Shell อย่าลืมอัปเดตชื่อโปรเจ็กต์ที่เหมาะสม

gcloud compute service-attachments update vpc-demo-psc-west2-tcp --region=us-west2 --consumer-accept-list $consumerproject=20

ระบุสถานะปลายทางโดยไปที่ Network Services → Private Service Connect → บริการที่เผยแพร่แล้ว → vpc-demo-psc-west2-tcp → โปรเจ็กต์ที่เชื่อมต่อ

35cba9ac640594a2.png

ประกาศ โปรเจ็กต์ของผู้บริโภคเปลี่ยนเป็น "ยอมรับแล้ว" สถานะในส่วน "โปรเจ็กต์ที่เชื่อมต่อ"

23. ขั้นตอนการทำความสะอาด

ขั้นตอนการล้างเครือข่าย Producer

หมายเหตุ: ในส่วนต่อไปนี้ ให้ดำเนินการอัปเดตการกำหนดค่าในโปรเจ็กต์ที่มีบริการ Producer ของคุณ

ลบคอมโพเนนต์ห้องทดลองจาก Cloud Shell เดียวในเทอร์มินัลโปรเจ็กต์ Producer

gcloud compute routers nats delete cloudnatprod --router=crnatprod --region=us-west2 --quiet

gcloud compute routers delete crnatprod --region=us-west2 --quiet

gcloud compute instances delete www-01 --zone=us-west2-a --quiet

gcloud compute instances delete www-02 --zone=us-west2-a --quiet

gcloud compute service-attachments delete vpc-demo-psc-west2-tcp --region=us-west2 --quiet

gcloud compute forwarding-rules delete vpc-demo-www-ilb-tcp --region=us-west2 --quiet

gcloud compute backend-services delete vpc-demo-www-be-tcp --region=us-west2 --quiet

gcloud compute instance-groups unmanaged delete vpc-demo-ig-www --zone=us-west2-a --quiet

gcloud compute health-checks delete hc-http-80 --quiet

gcloud compute firewall-rules delete vpc-demo-allowpsc-tcp --quiet

gcloud compute firewall-rules delete vpc-demo-health-checks --quiet

gcloud compute firewall-rules delete psclab-iap-prod --quiet

gcloud compute networks subnets delete vpc-demo-us-west2 --region=us-west2 --quiet

gcloud compute networks subnets delete vpc-demo-us-west2-psc-tcp --region=us-west2 --quiet

gcloud compute networks delete vpc-demo-producer --quiet

หมายเหตุ: ในส่วนต่อไปนี้ ให้ดำเนินการอัปเดตการกำหนดค่าในโปรเจ็กต์ที่มี Consumer Service ของคุณ

ขั้นตอนการล้างข้อมูลเครือข่ายของผู้บริโภค

ลบคอมโพเนนต์ห้องทดลองจาก Cloud Shell เดียวในเทอร์มินัลโปรเจ็กต์ Producer

gcloud compute routers nats delete cloudnatconsumer --router=crnatconsumer --region=us-west2 --quiet

gcloud compute routers delete crnatconsumer --region=us-west2 --quiet

gcloud compute instances delete test-instance-1 --zone=us-west2-a --quiet

gcloud compute forwarding-rules delete vpc-consumer-psc-fr-tcp --region=us-west2 --quiet

gcloud compute addresses delete vpc-consumer-psc-tcp --region=us-west2 --quiet

gcloud compute firewall-rules delete psclab-iap-consumer --quiet

gcloud compute networks subnets delete consumer-subnet --region=us-west2 --quiet

gcloud compute firewall-rules delete vpc-consumer-psc --quiet

gcloud compute networks delete vpc-demo-consumer --quiet

24. ยินดีด้วย

ขอแสดงความยินดีที่เรียน Codelab จนจบ

หัวข้อที่ครอบคลุม

  • สิทธิประโยชน์ของการเชื่อมต่อบริการส่วนตัว
  • แนวคิดหลักสำหรับผู้บริโภคบริการ
  • แนวคิดหลักสำหรับผู้ผลิตบริการ
  • สร้างสภาพแวดล้อมของผู้ผลิต
  • แสดงบริการ (สภาพแวดล้อมของผู้ผลิต) ผ่านไฟล์แนบของบริการ
  • สร้างสภาพแวดล้อมของผู้บริโภค
  • สร้างกฎการส่งต่อในเครือข่ายผู้ใช้ทั่วไป
  • ตรวจสอบการเข้าถึงของผู้บริโภค TCP
  • เปิดใช้และ ตรวจสอบโปรโตคอลของพร็อกซี
  • เปิดใช้การควบคุมการเข้าถึงนโยบาย