บทแนะนำเบื้องต้นสำหรับการควบคุมบริการ VPC 1

1. บทนำ

การควบคุมบริการ VPC (VPC-SC) คือการควบคุมความปลอดภัยระดับองค์กรใน Google Cloud ที่ช่วยให้ลูกค้าองค์กรลดความเสี่ยงในการลักลอบนำข้อมูลออกได้ การควบคุมบริการ VPC ให้การเข้าถึงบริการแบบหลายผู้เช่าในรูปแบบ Zero Trust โดยช่วยให้ไคลเอ็นต์จำกัดการเข้าถึง IP ที่ได้รับอนุญาต บริบทของไคลเอ็นต์ และพารามิเตอร์ของอุปกรณ์ขณะเชื่อมต่อกับบริการแบบหลายผู้เช่าจากอินเทอร์เน็ตและบริการอื่นๆ เพื่อลดการสูญเสียทั้งที่ตั้งใจและไม่ตั้งใจ คุณสามารถใช้การควบคุมบริการ VPC เพื่อสร้างขอบเขตที่ปกป้องทรัพยากรและข้อมูลของบริการที่คุณระบุอย่างชัดเจน

เป้าหมายของบทแนะนำนี้มีดังนี้

  • ทำความเข้าใจพื้นฐานของการควบคุมบริการ VPC
  • สร้างขอบเขตบริการ VPC
  • ปกป้องโปรเจ็กต์ด้วยการควบคุมบริการ VPC
  • แก้ปัญหาการละเมิดขาเข้าของการควบคุมบริการ VPC

2. การตั้งค่าและข้อกำหนด

สำหรับบทแนะนำนี้ เราต้องมีข้อกำหนดเบื้องต้นต่อไปนี้

  • องค์กร GCP
  • โฟลเดอร์ภายใต้องค์กร
  • โปรเจ็กต์ GCP 2 รายการภายในองค์กรเดียวกันซึ่งวางไว้ใต้โฟลเดอร์
  • สิทธิ์ที่จำเป็นที่ระดับองค์กร
  • บัญชีสำหรับการเรียกเก็บเงินสำหรับทั้ง 2 โปรเจ็กต์

1a62ebea85d6d4fc.png

การตั้งค่าทรัพยากร

  1. ในคอนโซล Google Cloud ให้สร้างโฟลเดอร์ภายใต้องค์กรและโปรเจ็กต์ใหม่ 2 รายการ (คุณสามารถนำโปรเจ็กต์ที่มีอยู่มาใช้ซ้ำได้)

(หากยังไม่มีบัญชี Google Workspace/Cloud Identity คุณต้องสร้างบัญชีเนื่องจากคุณจะต้องมีองค์กรสำหรับบทแนะนำนี้)

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

f7c75ab82028cb15.png

ค่าใช้จ่าย

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

มีเพียงอินสแตนซ์ VM เท่านั้นที่จะสร้างค่าใช้จ่าย คุณดูค่าใช้จ่ายโดยประมาณได้ในเครื่องคำนวณราคา

3. สร้างขอบเขต

ในห้องทดลองนี้ เราจะทำตามขั้นตอนต่อไปนี้

  1. ใน Google Console ให้เลือกองค์กรและ เข้าถึงการควบคุมบริการ VPC โปรดตรวจสอบว่าคุณอยู่ในระดับองค์กร

43d5af2d5f084bb4.png

  1. คลิก "จัดการนโยบาย" เพื่อสร้างนโยบายการเข้าถึงใหม่ที่มีขอบเขตเป็นโฟลเดอร์ "Codelab"

9f75d949ca9992c4.png

  1. สร้างขอบเขตใหม่ในโหมดบังคับใช้ เราจะตั้งชื่อว่า "SuperProtection" สำหรับบทแนะนำนี้
  • เมื่อสร้างขอบเขต ให้เลือกโปรเจ็กต์ที่จะบังคับใช้เป็น ProjectZ
  • เลือกประเภทขอบเขตเป็น "ปกติ"
  • ในกล่องโต้ตอบระบุบริการที่จะจำกัด ให้เลือกบริการที่จะจำกัดเป็น "Compute Engine"

การตั้งค่าขอบเขตควรมีลักษณะดังนี้

914d603103cb21.png

4. ตรวจสอบว่ามีการบังคับใช้ขอบเขต

  1. เข้าถึง ProjectX และตรวจสอบว่าคุณเข้าถึง Compute Engine API ได้หรือไม่โดยไปที่หน้าแรกของอินสแตนซ์ VM คุณควรจะดำเนินการได้เนื่องจากโปรเจ็กต์ X ไม่ได้รับการปกป้องโดยขอบเขต VPC SC ที่สร้างขึ้น
  2. เข้าถึง ProjectZ และตรวจสอบว่าคุณเข้าถึง Compute Engine ได้หรือไม่ คุณจะเห็นว่าการควบคุมบริการ VPC ไม่อนุญาตคำขอเนื่องจากขอบเขตบริการ SuperProtection ปกป้อง ProjectZ และ Compute Engine API

d5073543f783e9c7.png

5. การแก้ปัญหาการปฏิเสธ

ก่อนอื่นเราต้องระบุให้ได้ว่าปัญหาที่เกิดขึ้นคืออะไร เพื่อพิจารณาวิธีแก้ปัญหา

  1. บันทึกการควบคุมบริการ VPC มีรายละเอียดเกี่ยวกับคำขอไปยังทรัพยากรที่ได้รับการปกป้องและเหตุผลที่การควบคุมบริการ VPC ปฏิเสธคำขอ มาค้นหารหัสที่ไม่ซ้ำกันของการควบคุมบริการ VPC ในบันทึกการตรวจสอบของ ProjectZ โดยใช้การค้นหาต่อไปนี้ใน Logs Explorer
resource.type="audited_resource"
protoPayload.metadata."@type"="type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"

ซึ่งจะแสดงบันทึกการตรวจสอบการควบคุมบริการ VPC ทั้งหมด เราจะมองหาบันทึกข้อผิดพลาดล่าสุด

  1. คลิกในส่วนหัวการควบคุมบริการ VPC แล้วเลือก "แก้ปัญหาการปฏิเสธ" ซึ่งจะเปิดเครื่องมือแก้ปัญหาการควบคุมบริการ VPC

API นี้จะแสดงเหตุผลของการละเมิดใน UI ที่ใช้งานง่าย และจะแสดงว่าเป็นการละเมิดขาเข้าหรือขาออกหรือไม่ รวมถึงข้อมูลอื่นๆ ที่มีประโยชน์

สำหรับแบบฝึกหัดนี้ เราจะมองหาข้อมูลต่อไปนี้

"principalEmail": "user@domain"
"callerIp": "PUBLIC_IP_ADDRESS"
"serviceName": "compute.googleapis.com"
"servicePerimeterName":
"accessPolicies/[POLICY_NUMBER]/servicePerimeters/SuperProtection
"ingressViolations": [
        {
"targetResource": "projects/[PROJECT_NUMBER]",
"servicePerimeter": "accessPolicies/[POLICY_NUMBER]/servicePerimeters/SuperProtection"
        }
      ],
"violationReason": "NO_MATCHING_ACCESS_LEVEL",
"resourceNames": "[PROJECT_ID]"

เรามี 2 ตัวเลือกในการแก้ไขการปฏิเสธนี้ใน ProjectZ

  • การสร้างระดับการเข้าถึงเพื่ออนุญาตการเข้าถึงโปรเจ็กต์ภายในขอบเขตโดยการให้สิทธิ์เข้าถึง IP ของระบบ
  • สร้างกฎขาเข้าเพื่ออนุญาตให้ไคลเอ็นต์ API จากภายนอกขอบเขตบริการเข้าถึงทรัพยากรภายในขอบเขตบริการ

ในบทแนะนำนี้ เราจะแก้ปัญหาโดยการสร้างระดับการเข้าถึง

  1. ไปที่เครื่องมือจัดการสิทธิ์เข้าถึงตามบริบทที่ขอบเขตโฟลเดอร์ (Codelab) แล้วสร้างระดับการเข้าถึงใหม่
  2. ใช้ "โหมดพื้นฐาน" แล้วเราจะอนุญาตให้เข้าถึงเมื่อตรงตามเครือข่ายย่อยของ IP และสถานที่ตั้งทางภูมิศาสตร์

678f0f9d7bac921d.png

  1. ไปที่การควบคุมบริการ VPC ที่ขอบเขตขององค์กร เลือกนโยบายการเข้าถึงสำหรับ Codelab นี้ แล้วแก้ไขขอบเขตที่เราสร้างไว้ก่อนหน้านี้
  2. เพิ่มระดับการเข้าถึงที่สร้างขึ้นในขอบเขตโฟลเดอร์ แล้วบันทึก

c0af5691dfe9dd75.png

6. ผลการทดสอบ

ยืนยันว่าเรามีสิทธิ์เข้าถึง Compute Engine และสร้างอินสแตนซ์ VM ได้ ตอนนี้เราได้สร้างระดับการเข้าถึงแล้ว ลองเข้าถึง Compute Engine ใน ProjectZ และสร้างอินสแตนซ์ VM กัน

  1. ไปที่ Compute Engine แล้วคลิกสร้างอินสแตนซ์

c1206aaf18497ec1.png

  1. ปล่อยให้ทุกอย่างเป็นค่าเริ่มต้นและลองสร้างอินสแตนซ์ VM ราคาถูก

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

5b2ded02f669b2ef.png

7. ล้างข้อมูล

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

  1. หากต้องการลบอินสแตนซ์ VM ให้เลือกช่องทำเครื่องหมายทางด้านซ้ายของชื่ออินสแตนซ์ VM แล้วคลิกลบ

da0abf0894fe03cd.png

  1. หากต้องการลบขอบเขต ให้ทำตามขั้นตอนต่อไปนี้
  • ในคอนโซล Google Cloud ให้คลิกความปลอดภัย แล้วคลิกการควบคุมบริการ VPC ที่ขอบเขตขององค์กร
  • ในหน้าการควบคุมบริการ VPC ในแถวของตารางที่ตรงกับขอบเขตที่คุณต้องการลบ ให้คลิก "ไอคอนลบ"
  1. หากต้องการลบระดับการเข้าถึง ให้ทำตามขั้นตอนต่อไปนี้
  1. หากต้องการปิดโปรเจ็กต์ ให้ทำตามขั้นตอนต่อไปนี้
  • ใน Google Cloud Console ให้ไปที่หน้าการตั้งค่า IAM และผู้ดูแลระบบของโปรเจ็กต์ที่ต้องการลบ
  • ในหน้าการตั้งค่า IAM และผู้ดูแลระบบ ให้คลิกปิด
  • ป้อนรหัสโปรเจ็กต์ แล้วคลิกปิดเครื่องต่อไป

8. ยินดีด้วย

ใน Codelab นี้ คุณได้สร้างขอบเขตการควบคุมบริการ VPC บังคับใช้ และแก้ปัญหา

ดูข้อมูลเพิ่มเติม

ใบอนุญาต

ผลงานนี้ได้รับอนุญาตภายใต้สัญญาอนุญาตครีเอทีฟคอมมอนส์สำหรับยอมรับสิทธิของผู้สร้าง (Creative Commons Attribution License) 2.0 แบบทั่วไป