1. บทนำ
การควบคุมบริการ VPC (VPC-SC) คือการควบคุมความปลอดภัยระดับองค์กรใน Google Cloud ที่ช่วยให้ลูกค้าองค์กรสามารถลดความเสี่ยงในการขโมยข้อมูล การควบคุมบริการ VPC มอบการเข้าถึงบริการแบบ Zero Trust ในรูปแบบ Zero Trust โดยการเปิดโอกาสให้ไคลเอ็นต์จำกัดการเข้าถึง IP, บริบทของไคลเอ็นต์ และพารามิเตอร์อุปกรณ์ที่ได้รับอนุญาต ขณะที่เชื่อมต่อกับบริการแบบกลุ่มผู้ใช้จำนวนมากจากอินเทอร์เน็ตและบริการอื่นๆ เพื่อลดการสูญเสียทั้งโดยตั้งใจและไม่ได้ตั้งใจ คุณสามารถใช้การควบคุมบริการ VPC เพื่อสร้างขอบเขตที่ปกป้องทรัพยากรและข้อมูลของบริการที่คุณระบุอย่างชัดเจนได้
เป้าหมายของบทแนะนำนี้คือ
- ทำความเข้าใจพื้นฐานของการควบคุมบริการ VPC
- สร้างขอบเขตบริการ VPC
- ปกป้องโปรเจ็กต์ด้วยการควบคุมบริการ VPC
- แก้ปัญหาการละเมิดข้อมูลขาเข้าของการควบคุมบริการ VPC
2. การตั้งค่าและข้อกำหนด
สำหรับบทแนะนำนี้ เราจำเป็นต้องมีข้อกำหนดล่วงหน้าต่อไปนี้
- องค์กร GCP
- โฟลเดอร์ภายใต้องค์กร
- โปรเจ็กต์ GCP 2 รายการภายในองค์กรเดียวกันซึ่งอยู่ภายใต้โฟลเดอร์
- สิทธิ์ที่จำเป็นในระดับองค์กร
- บัญชีสำหรับการเรียกเก็บเงินของทั้ง 2 โปรเจ็กต์
การตั้งค่าทรัพยากร
- ใน Google Cloud Console ให้สร้างโฟลเดอร์ในส่วนองค์กร และโปรเจ็กต์ใหม่ 2 โปรเจ็กต์ (คุณนำโปรเจ็กต์ที่มีอยู่กลับมาใช้ใหม่ได้)
(หากยังไม่มีบัญชี Google Workspace/Cloud Identity คุณจะต้องสร้างบัญชีใหม่ เนื่องจากคุณจะต้องมีองค์กรสำหรับบทแนะนำนี้)
- ตรวจสอบว่าคุณมีสิทธิ์ที่ถูกต้องสำหรับบทแนะนำนี้ในระดับองค์กร
- บทบาท IAM สำหรับโฟลเดอร์
- สิทธิ์และบทบาทสำหรับโปรเจ็กต์
- สิทธิ์และบทบาทที่จำเป็นในการกำหนดค่าการควบคุมบริการ VPC
- สิทธิ์และบทบาทที่จำเป็นต่อการจัดการ Compute Engine
- ตรวจสอบว่าทั้ง 2 โปรเจ็กต์อยู่ภายใต้โฟลเดอร์เนื่องจากเราต้องสร้างนโยบายที่กำหนดขอบเขตในระดับโฟลเดอร์ ดูข้อมูลเกี่ยวกับการย้ายโปรเจ็กต์ไปยังโฟลเดอร์
ค่าใช้จ่าย
คุณต้องเปิดใช้การเรียกเก็บเงินใน Cloud Console เพื่อใช้ทรัพยากร/API ของระบบคลาวด์ การใช้งาน Codelab นี้จะไม่มีค่าใช้จ่ายใดๆ หากมี หากต้องการปิดทรัพยากรเพื่อหลีกเลี่ยงการเรียกเก็บเงินที่นอกเหนือจากบทแนะนำนี้ คุณสามารถลบทรัพยากรที่คุณสร้างหรือลบโปรเจ็กต์ได้ ผู้ใช้ Google Cloud ใหม่มีสิทธิ์เข้าร่วมโปรแกรมช่วงทดลองใช้ฟรีมูลค่า $300 USD
ทรัพยากรเดียวที่จะทำให้มีค่าใช้จ่ายคืออินสแตนซ์ VM คุณดูค่าใช้จ่ายโดยประมาณได้ในเครื่องคำนวณราคา
3. สร้างขอบเขต
ในห้องทดลองนี้ เราจะดําเนินการตามขั้นตอนต่อไปนี้
- ใน Google Console ให้เลือกองค์กรของคุณและ เข้าถึงการควบคุมบริการ VPC โปรดตรวจสอบว่าคุณอยู่ในระดับองค์กร
- คลิก "จัดการนโยบาย" เพื่อสร้างนโยบายการเข้าถึงใหม่ที่กำหนดขอบเขตไว้เป็น "Codelab" โฟลเดอร์
- สร้างขอบเขตใหม่ในโหมดบังคับใช้ ตั้งชื่อว่า "SuperProtection" สำหรับบทแนะนำนี้
- เมื่อสร้างขอบเขต ให้เลือกโปรเจ็กต์ที่จะบังคับใช้เป็น Project Z
- เลือกประเภทขอบเขตเป็น "ปกติ"
- ในกล่องโต้ตอบระบุบริการเพื่อจำกัด ให้เลือกบริการที่จะจำกัดเป็น "Compute Engine"
การตั้งค่าขอบเขตควรมีลักษณะดังนี้
4. ตรวจสอบว่าบังคับใช้ขอบเขตแล้ว
- เข้าถึง ProjectX และยืนยันว่าคุณสามารถเข้าถึง Compute Engine API ได้โดยไปที่หน้าแรกของอินสแตนซ์ VM คุณควรทำได้เนื่องจาก Project X ไม่ได้รับการปกป้องโดยขอบเขต VPC SC ที่สร้างขึ้น
- เข้าถึง ProjectZ และยืนยันว่าคุณสามารถเข้าถึง Compute Engine ได้หรือไม่ คุณจะเห็นได้ว่าการควบคุมบริการ VPC ไม่อนุญาตคําขอดังกล่าวเนื่องจาก SuperProtection ของขอบเขตบริการปกป้อง ProjectZ และ Compute Engine API
5. การแก้ปัญหาการปฏิเสธ
ก่อนอื่นเราต้องระบุว่าปัญหาคืออะไร เพื่อกำหนดวิธีแก้ปัญหา
- บันทึกการควบคุมบริการ VPC ประกอบด้วยรายละเอียดเกี่ยวกับคำขอไปยังทรัพยากรที่มีการป้องกันและเหตุผลที่การควบคุมบริการ VPC ปฏิเสธคำขอ หารหัสที่ไม่ซ้ำกันสำหรับการควบคุมบริการ VPC ในบันทึกการตรวจสอบของ ProjectZ โดยใช้การค้นหาต่อไปนี้ใน Logging Explorer
resource.type="audited_resource" protoPayload.metadata."@type"="type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"
ซึ่งจะแสดงบันทึกการตรวจสอบการควบคุมบริการ VPC ทั้งหมด เราจะมองหาบันทึกข้อผิดพลาดรายการสุดท้าย
- คลิกส่วนหัว 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 จากภายนอกขอบเขตบริการไปยังทรัพยากรภายในขอบเขตบริการ
ในบทแนะนำนี้ เราจะแก้ปัญหาด้วยการสร้างระดับการเข้าถึง
- ไปที่เครื่องมือจัดการสิทธิ์เข้าถึงตามบริบทที่ขอบเขตของโฟลเดอร์ (Codelab) แล้วสร้างระดับการเข้าถึงใหม่
- ใช้ "โหมดพื้นฐาน" และเราจะอนุญาตให้เข้าถึงได้เมื่อมีเครือข่ายย่อยของ IP และตำแหน่งทางภูมิศาสตร์
- ไปที่การควบคุมบริการ VPC ที่ขอบเขตองค์กร เลือกนโยบายการเข้าถึงสำหรับ Codelab นี้และแก้ไขขอบเขตที่เราสร้างไว้ก่อนหน้านี้
- เพิ่มระดับการเข้าถึงที่สร้างในขอบเขตของโฟลเดอร์แล้วบันทึก
6. ผลการทดสอบ
ยืนยันว่าเรามีสิทธิ์เข้าถึง Compute Engine และสร้างอินสแตนซ์ VM ได้ ในตอนนี้เราได้สร้างระดับการเข้าถึงแล้ว เราจะมาลองเข้าถึง Compute Engine ใน ProjectZ และสร้างอินสแตนซ์ VM กัน
- ไปที่ Compute Engine แล้วคลิกสร้างอินสแตนซ์
- ปล่อยทุกอย่างไว้เป็นค่าเริ่มต้น แล้วลองสร้างอินสแตนซ์ VM ที่มีต้นทุนต่ำ
หลังจากผ่านไปประมาณ 1 นาที คุณควรเห็นอินสแตนซ์ VM สร้างขึ้นและยืนยันได้ว่าคุณมีสิทธิ์เข้าถึง Compute Engine ที่มีการป้องกันภายในขอบเขตโดยสมบูรณ์ได้
7. ล้างข้อมูล
แม้ว่าจะไม่มีการเรียกเก็บเงินแยกต่างหากสำหรับการใช้การควบคุมบริการ VPC เมื่อไม่ได้ใช้งานบริการ แต่แนวทางปฏิบัติแนะนำคือล้างการตั้งค่าที่ใช้ในห้องทดลองนี้ นอกจากนี้ คุณยังลบอินสแตนซ์ VM และ/หรือโปรเจ็กต์ที่อยู่ในระบบคลาวด์เพื่อหลีกเลี่ยงการเรียกเก็บเงินได้ด้วย การลบโปรเจ็กต์ที่อยู่ในระบบคลาวด์จะหยุดการเรียกเก็บเงินสำหรับทรัพยากรทั้งหมดที่ใช้ในโปรเจ็กต์นั้น
- หากต้องการลบอินสแตนซ์ VM ให้เลือกช่องทำเครื่องหมายทางด้านซ้ายของชื่ออินสแตนซ์ VM แล้วคลิกลบ
- หากต้องการลบขอบเขต ให้ทำตามขั้นตอนต่อไปนี้
- ในคอนโซล Google Cloud ให้คลิกความปลอดภัย แล้วคลิกการควบคุมบริการ VPC ที่ขอบเขตขององค์กร
- ในหน้าการควบคุมบริการ VPC ให้คลิก "ลบไอคอน" ในแถวของตารางที่ตรงกับขอบเขตที่ต้องการลบ
- หากต้องการลบระดับการเข้าถึง ให้ทำตามขั้นตอนต่อไปนี้
- ในคอนโซล Google Cloud ให้เปิดหน้าเครื่องมือจัดการสิทธิ์เข้าถึงตามบริบทที่ขอบเขตโฟลเดอร์
- ในตาราง ในแถวของระดับการเข้าถึงที่คุณต้องการลบ ให้คลิก "ลบไอคอน" แล้วคลิกลบ
- หากต้องการปิดโปรเจ็กต์ ให้ทำตามขั้นตอนต่อไปนี้
- ในคอนโซล Google Cloud ให้ไปที่ IAM & การตั้งค่าผู้ดูแลระบบของโปรเจ็กต์ที่ต้องการลบ
- เกี่ยวกับ IAM และ คลิก ปิดการทำงาน ในหน้าการตั้งค่าของผู้ดูแลระบบ
- ป้อนรหัสโปรเจ็กต์ แล้วคลิกปิดเครื่อง
8. ยินดีด้วย
ใน Codelab นี้ คุณได้สร้างขอบเขตการควบคุมบริการ VPC บังคับใช้ และแก้ปัญหาแล้ว
ดูข้อมูลเพิ่มเติม
- ดูเอกสารประกอบเกี่ยวกับการควบคุมบริการ VPC
- โปรดดูเอกสารเกี่ยวกับเครื่องมือจัดการสิทธิ์เข้าถึงตามบริบท
- โปรดดูเอกสารเครื่องมือแก้ปัญหา VPC-SC
ใบอนุญาต
ผลงานนี้ได้รับอนุญาตภายใต้ใบอนุญาตทั่วไปครีเอทีฟคอมมอนส์แบบระบุแหล่งที่มา 2.0