การควบคุมบริการ VPC

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

บริการCloud Firestoreแบบรวม

API ต่อไปนี้จะรวมอยู่ด้วยกันในการควบคุมบริการ VPC

  • firestore.googleapis.com
  • datastore.googleapis.com
  • firestorekeyvisualizer.googleapis.com

เมื่อคุณจำกัดบริการ firestore.googleapis.com ในขอบเขต ขอบเขตจะจำกัดบริการ datastore.googleapis.com และ firestorekeyvisualizer.googleapis.com ด้วย

จำกัดบริการ datastore.googleapis.com

บริการ datastore.googleapis.com จะรวมอยู่ภายใต้บริการ firestore.googleapis.com หากต้องการจำกัดบริการ datastore.googleapis.com คุณต้องจำกัดบริการ firestore.googleapis.com ดังนี้

  • เมื่อสร้างขอบเขตบริการโดยใช้คอนโซล Google Cloud ให้เพิ่ม Cloud Firestore เป็นบริการที่จำกัด
  • เมื่อสร้างขอบเขตบริการโดยใช้ Google Cloud CLI ให้ใช้ firestore.googleapis.com แทน datastore.googleapis.com

    --perimeter-restricted-services=firestore.googleapis.com
    

App Engineบริการแบบรวมเดิมสำหรับ Datastore

App Engine บริการแบบรวมเดิมสำหรับ Datastore ไม่รองรับขอบเขตบริการ การปกป้องDatastore บริการด้วยขอบเขตบริการจะบล็อกการรับส่งข้อมูลจาก App Engineบริการแบบรวมเดิม บริการแบบรวมเดิม ได้แก่

การป้องกันการรับส่งข้อมูลขาออกจากขอบเขตในฟังก์ชันการนำเข้าและส่งออก

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

Cloud Firestore ตัวแทนบริการ

Cloud Firestore ใช้ตัวแทนบริการ Cloud Firestore เพื่อให้สิทธิ์ฟังก์ชันการนำเข้า และส่งออกแทนการใช้บัญชีบริการ App Engine ตัวแทนบริการและบัญชีบริการใช้รูปแบบการตั้งชื่อต่อไปนี้

Cloud Firestore ตัวแทนบริการ
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com

Cloud Firestore ก่อนหน้านี้ใช้App Engineบัญชีบริการเริ่มต้น แทนตัวแทนบริการ Cloud Firestore หากฐานข้อมูล ยังคงใช้บัญชีบริการ App Engine เพื่อนำเข้าหรือส่งออกข้อมูล เรา ขอแนะนำให้คุณทำตามวิธีการในส่วนนี้เพื่อย้ายข้อมูล ไปใช้ตัวแทนบริการ Cloud Firestore

บัญชีบริการ App Engine
PROJECT_ID@appspot.gserviceaccount.com

เราขอแนะนำให้ใช้ตัวแทนบริการ Cloud Firestore เนื่องจากตัวแทนบริการนี้สร้างขึ้นมาเพื่อ Cloud Firestore โดยเฉพาะ ส่วนบัญชีบริการ App Engine นั้นใช้ร่วมกัน โดยบริการมากกว่า 1 รายการ

ดูบัญชีการให้สิทธิ์

คุณสามารถดูบัญชีที่การดำเนินการนำเข้าและส่งออกใช้เพื่อให้สิทธิ์คำขอได้จากหน้านำเข้า/ส่งออก ในคอนโซล Google Cloud นอกจากนี้ คุณยังดูได้ว่าฐานข้อมูลใช้ ตัวแทนบริการ Cloud Firestore อยู่แล้วหรือไม่

  1. ดูบัญชีการให้สิทธิ์ข้างป้ายกำกับฟังก์ชันการนำเข้า/ส่งออกที่ทำงานเป็น

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

เราขอแนะนำให้ใช้เทคนิคแรกเนื่องจากจะจำกัดขอบเขตของ ผลกระทบไว้ที่โปรเจ็กต์ Cloud Firestore โปรเจ็กต์เดียว ส่วนเทคนิคที่ 2 ไม่ แนะนำให้ใช้เนื่องจากไม่ได้ย้ายข้อมูลสิทธิ์ของ Bucket ที่มีอยู่Cloud Storage อย่างไรก็ตาม เทคนิคนี้จะช่วยให้องค์กรปฏิบัติตามข้อกำหนดด้านความปลอดภัยได้

ย้ายข้อมูลโดยตรวจสอบและอัปเดตสิทธิ์ของ Bucket Cloud Storage

กระบวนการย้ายข้อมูลมี 2 ขั้นตอน ดังนี้

  1. อัปเดตสิทธิ์ของ Bucket Cloud Storage ดูรายละเอียดในส่วนถัดไป
  2. ยืนยันการย้ายข้อมูลไปยังตัวแทนบริการ Cloud Firestore

สิทธิ์ของ Bucket สำหรับตัวแทนบริการ

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

เวิร์กโฟลว์การนำเข้าและส่งออกที่อยู่ในโปรเจ็กต์เดียวกันไม่จำเป็นต้องมีการเปลี่ยนแปลงสิทธิ์ เนื่องจากตัวแทนบริการ Cloud Firestore สามารถเข้าถึง Bucket ในโปรเจ็กต์เดียวกันได้โดยค่าเริ่มต้น

อัปเดตสิทธิ์ของ Cloud Storage Bucket จากโปรเจ็กต์อื่นเพื่ออนุญาตให้ ตัวแทนบริการ service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com เข้าถึงได้ โดยให้บทบาท Firestore Service Agent แก่ตัวแทนบริการ

บทบาท Firestore Service Agent จะให้สิทธิ์อ่านและเขียนสำหรับ Bucket ใน Cloud Storage หากต้องการให้สิทธิ์อ่านหรือเขียนเท่านั้น ให้ใช้ บทบาทที่กำหนดเอง

กระบวนการย้ายข้อมูลที่อธิบายไว้ในส่วนต่อไปนี้ จะช่วยคุณระบุ Cloud Storage Bucket ที่อาจต้องมีการอัปเดตสิทธิ์

ย้ายข้อมูลโปรเจ็กต์ไปยังตัวแทนบริการ Firestore

ทำตามขั้นตอนต่อไปนี้เพื่อย้ายข้อมูลจากบัญชีบริการ App Engine ไปยัง ตัวแทนบริการ Cloud Firestore เมื่อดำเนินการเสร็จแล้ว คุณจะยกเลิกการย้ายข้อมูลไม่ได้

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

    คลิกตรวจสอบสถานะ Bucket

    เมนูจะปรากฏขึ้นพร้อมตัวเลือกในการย้ายข้อมูลให้เสร็จสมบูรณ์และรายการ Cloud Storage Bucket ระบบอาจใช้เวลาสักครู่ในการโหลดรายการให้เสร็จสมบูรณ์

    รายการนี้ประกอบด้วย Bucket ที่ใช้ในฟังก์ชันการนำเข้าและส่งออกเมื่อไม่นานมานี้ แต่ปัจจุบันไม่ได้ให้สิทธิ์อ่านและ เขียนแก่ตัวแทนบริการ Cloud Firestore

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

    1. คลิกแก้ไข ในแถวของตาราง Bucket นี้ ซึ่งจะเป็นการเปิดหน้าสิทธิ์ของ Bucket นั้นในแท็บใหม่

    2. คลิกเพิ่ม
    3. ในช่องพรินซิเพิลใหม่ ให้ป้อนชื่อตัวแทนบริการ Cloud Firestore
    4. ในช่องเลือกบทบาท ให้เลือก ตัวแทนบริการ > ตัวแทนบริการ Firestore
    5. คลิกบันทึก
    6. กลับไปที่แท็บที่มีหน้าการนำเข้า/ส่งออกของ Cloud Firestore
    7. ทำตามขั้นตอนเหล่านี้ซ้ำสำหรับ Bucket อื่นๆ ในรายการ และอย่าลืมดูรายการทั้งหมด
  4. คลิกย้ายข้อมูลไปยังตัวแทนบริการ Firestore หากคุณ ยังมี Bucket ที่การตรวจสอบสิทธิ์ล้มเหลว คุณ ต้องยืนยันการย้ายข้อมูลโดยคลิกย้ายข้อมูล

    การแจ้งเตือนจะปรากฏขึ้นเมื่อการย้ายข้อมูลเสร็จสมบูรณ์ โดยคุณจะยกเลิกการย้ายข้อมูลไม่ได้

ดูสถานะการย้ายข้อมูล

วิธีตรวจสอบสถานะการย้ายข้อมูลของโปรเจ็กต์

  1. มองหาพรินซิเพิลข้างป้ายกำกับฟังก์ชันการนำเข้า/ส่งออกที่ทำงานเป็น

    หากพรินซิเพิลคือ service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com, แสดงว่าโปรเจ็กต์ได้ย้ายข้อมูลไปยังCloud Firestore ตัวแทนบริการแล้ว โดยคุณจะยกเลิกการย้ายข้อมูลไม่ได้

    หากโปรเจ็กต์ยังไม่ได้ย้ายข้อมูล แบนเนอร์จะปรากฏที่ด้านบนของหน้าพร้อมปุ่มตรวจสอบสถานะ Bucket โปรดดูหัวข้อ การย้ายข้อมูลไปยังตัวแทนบริการ Firestore เพื่อทำการย้ายข้อมูลให้เสร็จสมบูรณ์

เพิ่มข้อจำกัดของนโยบายทั่วทั้งองค์กร

  • ตั้งค่าข้อจำกัดต่อไปนี้ในนโยบายขององค์กร

    กำหนดให้ใช้ตัวแทนบริการ Firestore สำหรับการนำเข้า/ส่งออก (firestore.requireP4SAforImportExport)

    ข้อจำกัดนี้กำหนดให้ฟังก์ชันการนำเข้าและส่งออกต้องใช้ Cloud Firestoreตัวแทนบริการเพื่ออนุญาตคำขอ หากต้องการตั้งค่าข้อจำกัดนี้ โปรดดูหัวข้อ การสร้างและจัดการนโยบายขององค์กร

การใช้ข้อจำกัดของนโยบายขององค์กรนี้ไม่ได้ให้สิทธิ์ของ Bucket ที่Cloud Storageเหมาะสมแก่ตัวแทนบริการ Cloud Firestoreโดยอัตโนมัติ

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