คีย์การเข้ารหัสลับที่จัดการโดยลูกค้า (CMEK)

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

หากคุณมีข้อกำหนดด้านการปฏิบัติตามข้อกำหนดหรือข้อกำหนดด้านกฎระเบียบที่เฉพาะเจาะจงซึ่งเกี่ยวข้องกับคีย์ ที่ปกป้องข้อมูล คุณสามารถใช้คีย์การเข้ารหัสที่จัดการโดยลูกค้า (CMEK) สำหรับ Cloud Firestoreได้ แทนที่ Google จะจัดการคีย์การเข้ารหัสที่ปกป้อง ข้อมูล ฐานข้อมูล Cloud Firestore จะได้รับการปกป้องโดยใช้คีย์ที่คุณ ควบคุมและจัดการใน Cloud Key Management Service (Cloud KMS)

หน้านี้อธิบายเกี่ยวกับ CMEK สำหรับ Cloud Firestore ดูข้อมูลเพิ่มเติมเกี่ยวกับ CMEK โดยทั่วไป รวมถึงเวลาและเหตุผลที่ควรเปิดใช้ได้ในเอกสารประกอบของ Cloud KMS ต่อไปนี้

ดูวิธีการทำงานที่เกี่ยวข้องกับ CMEK ด้วย Cloud Firestore ได้ที่ ใช้ CMEK

ฟีเจอร์

  • การควบคุมข้อมูล: CMEK ช่วยให้คุณจัดการคีย์ KMS ได้ คุณสามารถ หมุนเวียน ปิดใช้ และทำลายคีย์ที่ใช้เข้ารหัสข้อมูลที่ไม่มีการเคลื่อนไหวใน ฐานข้อมูล Cloud Firestore ได้
  • ประสิทธิภาพ: CMEK ไม่ส่งผลต่อ Cloud Firestore SLA
  • ความสามารถในการตรวจสอบ: หากคุณ เปิดใช้การบันทึกการตรวจสอบสำหรับ Cloud KMS, ระบบจะบันทึกการดำเนินการทั้งหมดในคีย์และดูได้ใน Cloud Logging
  • ข้อจำกัดของนโยบายองค์กร: คุณสามารถใช้ ข้อจำกัดของนโยบายองค์กร CMEK เพื่อระบุข้อกำหนดด้านการปฏิบัติตามข้อกำหนดการเข้ารหัสสำหรับฐานข้อมูลCloud Firestore ในองค์กรได้

ราคา

Cloud KMS จะเรียกเก็บเงินสำหรับค่าใช้จ่ายของคีย์และการดำเนินการเข้ารหัสทั้งหมดที่ดำเนินการโดยใช้คีย์นั้น ดูข้อมูลเพิ่มเติมได้ที่ Cloud KMS ราคา

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

ไม่มีค่าใช้จ่าย Cloud Firestore เพิ่มเติมสำหรับการใช้ฐานข้อมูลที่ได้รับการปกป้องด้วย CMEK และราคา Cloud Firestore จะยังคงมีผลต่อไป

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

สิ่งที่ได้รับการปกป้องด้วย CMEK

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

  • ข้อมูลที่อยู่ระหว่างการส่งหรือในหน่วยความจำ
  • ข้อมูลเมตาของฐานข้อมูล

วิธีจัดการสถานะคีย์ที่ไม่พร้อมใช้งาน

ระบบจะไม่ส่งคำขอการดำเนินการเข้ารหัสและถอดรหัสในทุกคำขอข้อมูล แต่ระบบ Cloud Firestore จะสำรวจ Cloud KMS ทุกๆ 5 นาทีเพื่อตรวจสอบว่าคีย์ยังคงพร้อมใช้งานหรือไม่ จากนั้นจึงดำเนินการเข้ารหัสและถอดรหัสหากคีย์พร้อมใช้งาน

หากระบบตรวจพบว่าคีย์ไม่พร้อมใช้งาน ภายใน 10 นาที การเรียกฐานข้อมูล Cloud Firestore ในภายหลังทั้งหมด รวมถึงการอ่าน การเขียน และการค้นหา จะแสดงข้อผิดพลาด FAILED_PRECONDITION พร้อมข้อความ The customer-managed encryption key required by the requested resource is not accessible

หากฐานข้อมูลมี นโยบายเวลาอยู่ได้ (TTL) และหาก เวลาหมดอายุเกินกำหนดขณะที่คีย์ไม่พร้อมใช้งาน การลบข้อมูล โดย TTL จะล่าช้าจนกว่าจะมีการคืนสิทธิ์คีย์ หากฐานข้อมูลมีการดำเนินการที่ใช้เวลานานซึ่งกำลังดำเนินการอยู่ การดำเนินการเหล่านั้นจะได้รับผลกระทบดังนี้

ระบบจะถือว่าคีย์ไม่พร้อมใช้งานในทุกสถานการณ์ที่ไม่อนุญาตให้ Cloud Firestoreเข้าถึงคีย์โดยเจตนา ซึ่งรวมถึงกรณีต่อไปนี้

หากมีการคืนสิทธิ์คีย์ การดำเนินการสำรวจจะตรวจพบว่าคีย์พร้อมใช้งานอีกครั้ง ระบบจะเปิดใช้สิทธิ์เข้าถึงอีกครั้ง โดยปกติภายในไม่กี่นาที แต่ในบางกรณีอาจใช้เวลาถึง 2-3 ชั่วโมง โปรดทราบว่าการดำเนินการบางอย่างในคีย์ Cloud KMS เช่น การปิดใช้หรือทำลายคีย์ อาจใช้เวลาถึง 3 ชั่วโมง ในการเผยแพร่ Cloud Firestore จะไม่ ตรวจพบการเปลี่ยนแปลงใดๆ จนกว่าการเปลี่ยนแปลงเหล่านั้นจะมีผลใน Cloud KMS

การคืนสิทธิ์คีย์เกี่ยวข้องกับการดำเนินการต่อไปนี้ ทั้งนี้ขึ้นอยู่กับสถานการณ์

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

ข้อควรพิจารณาเกี่ยวกับการหมุนเวียนคีย์

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

นอกจากนี้ คุณยังดูเวอร์ชันคีย์ที่ใช้ปกป้องฐานข้อมูลได้ด้วย ดูข้อมูลเพิ่มเติมได้ที่ ดูคีย์ที่ใช้งาน

ข้อควรพิจารณาเกี่ยวกับคีย์ภายนอก

เมื่อคุณใช้คีย์ Cloud EKM, Google จะควบคุมความพร้อมใช้งานคีย์ที่จัดการภายนอกในระบบพาร์ทเนอร์การจัดการคีย์ภายนอกไม่ได้

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

หลังจากผ่านไป 1 ชั่วโมง หาก Cloud Firestore ยังคงเชื่อมต่อกับ Cloud KMS ไม่ได้ Cloud Firestore จะเริ่มนำฐานข้อมูลออกจากระบบเพื่อเป็น มาตรการป้องกัน การเรียกฐานข้อมูลจะล้มเหลวโดยแสดงข้อผิดพลาด FAILED_PRECONDITION ซึ่งมีรายละเอียดเพิ่มเติม

ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้คีย์ภายนอกได้ในเอกสารประกอบของ Cloud External Key Manager

สำรองข้อมูลและกู้คืน

ข้อมูลสำรองจะใช้กลไกการเข้ารหัสเดียวกับฐานข้อมูลที่คุณสร้างข้อมูลสำรอง เมื่อฐานข้อมูล Cloud Firestore ที่ได้รับการปกป้องด้วย CMEK สร้างข้อมูลสำรอง ระบบจะเข้ารหัสข้อมูลสำรองด้วยเวอร์ชันคีย์หลักที่ใช้ในขณะที่ สร้างข้อมูลสำรอง

Cloud Firestore จะสร้างข้อมูลสำรองแรกของฐานข้อมูล CMEK หลังจากผ่านไป 24 ชั่วโมงนับจากเวลาที่คุณเปิดใช้กำหนดการสำรองข้อมูล

ดูข้อมูลเพิ่มเติมเกี่ยวกับข้อมูลสำรองCloud Firestoreได้ที่สำรองและ กู้คืนข้อมูล

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

  • กู้คืนไปยังฐานข้อมูล CMEK ที่มีคีย์ที่ระบุใหม่
  • กู้คืนไปยังฐานข้อมูลที่ไม่ใช่ CMEK ซึ่งใช้การเข้ารหัสเริ่มต้นของ Google
  • กู้คืนไปยังฐานข้อมูลที่ใช้การเข้ารหัสเดียวกับข้อมูลสำรอง

ดูข้อมูลเพิ่มเติมเกี่ยวกับการกู้คืนฐานข้อมูล Cloud Firestore จากข้อมูลสำรอง ได้ที่ กู้คืนข้อมูลจากข้อมูลสำรองฐานข้อมูล ดูข้อมูลเพิ่มเติมเกี่ยวกับการกู้คืนฐานข้อมูล Cloud Firestore ที่ได้รับการปกป้องด้วย CMEK จากข้อมูลสำรองได้ที่กู้คืนฐานข้อมูลที่ได้รับการปกป้องด้วย CMEKCloud Firestore

โคลน

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

  • โคลนไปยังฐานข้อมูล CMEK ที่มีคีย์ที่ระบุใหม่
  • โคลนไปยังฐานข้อมูลที่ไม่ใช่ CMEK ซึ่งใช้ การเข้ารหัสเริ่มต้นของ Google
  • (ค่าเริ่มต้น) โคลนไปยังฐานข้อมูลที่ใช้การเข้ารหัสเดียวกับฐานข้อมูลต้นทาง

ดูข้อมูลเพิ่มเติมเกี่ยวกับการโคลนฐานข้อมูล Cloud Firestore ได้ที่ โคลนฐานข้อมูล ดูข้อมูลเพิ่มเติมเกี่ยวกับการโคลนฐานข้อมูลที่ได้รับการปกป้องด้วย CMEK ได้ที่ โคลนฐานข้อมูลที่ได้รับการปกป้องด้วย CMEKCloud Firestore

การติดตามคีย์

คุณสามารถใช้การติดตามคีย์เพื่อดูทรัพยากร เช่น Cloud Firestore ฐานข้อมูล ที่คีย์ปกป้อง ดูข้อมูลเพิ่มเติมเกี่ยวกับการติดตามคีย์ได้ที่ ดูการใช้งานคีย์

CMEK และความพร้อมใช้งานคีย์

เมื่อคีย์ไม่พร้อมใช้งานหรือปิดใช้ โปรดทราบลักษณะการทำงานต่อไปนี้ที่อาจเกิดขึ้นในฐานข้อมูลที่เปิดใช้ CMEK

  • คุณสามารถเปลี่ยนการตั้งค่าการกู้คืนช่วงเวลา (PITR) ของ Cloud Firestore ในฐานข้อมูลที่เปิดใช้ CMEK ได้ แม้ว่าคีย์จะไม่พร้อมใช้งานก็ตาม เนื่องจากค่า PITR เป็นข้อมูลเมตาของฐานข้อมูล ซึ่ง CMEK จะไม่เข้ารหัส
  • คุณสามารถลบฐานข้อมูล CMEK ที่มีคีย์ไม่พร้อมใช้งานได้
  • เมื่อคุณสร้างฐานข้อมูลที่เปิดใช้ CMEK คีย์ที่ปิดใช้แล้วจะไม่แสดงในรายการคีย์ที่พร้อมใช้งานในคอนโซล Google Cloud หากคุณป้อนคีย์ที่ปิดใช้แล้วด้วยตนเอง กระบวนการสร้างฐานข้อมูลจะล้มเหลวโดยแสดงข้อผิดพลาด FAILED_PRECONDITION 400

ข้อจำกัด

  • คุณจะเปลี่ยนคีย์สำหรับฐานข้อมูลที่ได้รับการปกป้องด้วย CMEK ไม่ได้ แต่สามารถหมุนเวียน เปิดใช้ และปิดใช้คีย์ได้
  • ฐานข้อมูลที่ได้รับการปกป้องด้วย CMEK รองรับ Key Visualizer สำหรับข้อมูลเอนทิตีและ เอกสารเท่านั้น ไม่รองรับข้อมูลดัชนี
  • คุณจะเปิดใช้ CMEK ในฐานข้อมูลที่มีอยู่ไม่ได้ คุณเปิดใช้ CMEK ได้เฉพาะในฐานข้อมูลใหม่ และต้องเปิดใช้เมื่อสร้างฐานข้อมูล หากต้องการย้ายข้อมูลในฐานข้อมูลที่ไม่ใช่ CMEK ที่มีอยู่ไปยังฐานข้อมูลที่ได้รับการปกป้องด้วย CMEK ให้ส่งออกข้อมูล แล้วนำเข้าข้อมูลไปยังฐานข้อมูลใหม่ที่ได้รับการปกป้องด้วย CMEK นอกจากนี้ คุณยังกู้คืนหรือโคลนข้อมูลจากฐานข้อมูลที่ไม่ใช่ CMEK ไปยังฐานข้อมูล CMEK ได้ด้วย
  • Cloud Firestore รองรับฐานข้อมูลที่ได้รับการปกป้องด้วย CMEK จำนวนจำกัด
  • เราไม่รองรับการปกป้องด้วย CMEK ที่มีการผสานรวมกับ Cloud Functions (รุ่นที่ 1) หากต้องการมีการปกป้องด้วย CMEK ให้ใช้ Cloud Run ฟังก์ชัน Cloud Run, ทริกเกอร์ Firestore (รุ่นที่ 2)

วิธีที่ข้อมูลออกจากฐานข้อมูลที่ได้รับการปกป้องด้วย CMEK ได้

  • แอปพลิเคชันของคุณสามารถคัดลอกข้อมูลและจัดเก็บข้อมูลดังกล่าวในรูปแบบใดก็ได้ที่ผู้ใช้ต้องการ แอปพลิเคชันที่เข้าถึงข้อมูล Cloud Firestore ต้องมีการควบคุมความปลอดภัยที่เหมาะสมเพื่อให้แน่ใจว่าเฉพาะผู้ที่ได้รับอนุญาตอย่างถูกต้องเท่านั้นที่จะเข้าถึงข้อมูลได้ ดูรายละเอียดเพิ่มเติมได้ที่กฎความปลอดภัยและIAM

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

ขั้นตอนถัดไป