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

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

เกี่ยวกับ Codelab นี้

subjectอัปเดตล่าสุดเมื่อ พ.ค. 21, 2024
account_circleเขียนโดย Juan Silva, Robert Basomingera

1 บทนำ

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

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

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

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

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

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

1a62ebea85d6d4fc.png

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

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

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

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

f7c75ab82028cb15.png

ค่าใช้จ่าย

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

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

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

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

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

43d5af2d5f084bb4.png

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

9f75d949ca9992c4.png

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

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

914d603103cb21.png

4 ตรวจสอบว่าบังคับใช้ขอบเขตแล้ว

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

d5073543f783e9c7.png

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

ก่อนอื่นเราต้องระบุว่าปัญหาคืออะไร เพื่อกำหนดวิธีแก้ปัญหา

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

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

  1. คลิกส่วนหัว VPC Service Controls แล้วเลือก "แก้ปัญหาการปฏิเสธ" ซึ่งจะเปิดเครื่องมือแก้ปัญหาการควบคุมบริการ 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 ตัวเลือกในการแก้ไขการปฏิเสธนี้ใน Project Z

  • สร้างระดับการเข้าถึงเพื่ออนุญาตการเข้าถึงโปรเจ็กต์ภายในขอบเขตโดยการให้สิทธิ์เข้าถึง 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 และ/หรือโปรเจ็กต์ที่อยู่ในระบบคลาวด์เพื่อหลีกเลี่ยงการเรียกเก็บเงินได้ด้วย การลบโปรเจ็กต์ที่อยู่ในระบบคลาวด์จะหยุดการเรียกเก็บเงินสำหรับทรัพยากรทั้งหมดที่ใช้ในโปรเจ็กต์นั้น

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

da0abf0894fe03cd.png

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

8 ยินดีด้วย

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

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

ใบอนุญาต

ผลงานนี้ได้รับอนุญาตภายใต้ใบอนุญาตทั่วไปครีเอทีฟคอมมอนส์แบบระบุแหล่งที่มา 2.0