โดยค่าเริ่มต้น ข้อมูลทั้งหมดที่ไม่มีการเคลื่อนไหวใน 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
หากฐานข้อมูลมี นโยบาย Time to Live (TTL) และหากเวลาหมดอายุเกินกำหนดขณะที่คีย์ไม่พร้อมใช้งาน ระบบจะเลื่อนการลบข้อมูลตาม TTL ออกไปจนกว่าจะมีการคืนสิทธิ์คีย์ หากฐานข้อมูลมีการดำเนินการที่ใช้เวลานานซึ่งกำลังดำเนินการอยู่ การดำเนินการเหล่านั้นจะได้รับผลกระทบดังนี้
- การดำเนินการนำเข้าหรือส่งออกข้อมูลจะหยุดดำเนินการต่อและถูกทำเครื่องหมายเป็น
Failedระบบจะไม่ ลองดำเนินการที่ล้มเหลวอีกครั้งหากมีการคืนสิทธิ์คีย์ - การดำเนินการสร้างดัชนีและการดำเนินการที่เปิดใช้นโยบาย TTL ใหม่จะหยุดดำเนินการต่อ ระบบจะลองดำเนินการที่หยุดอีกครั้งหากมีการคืนสิทธิ์คีย์
ระบบจะถือว่าคีย์ไม่พร้อมใช้งานในทุกสถานการณ์ที่ไม่อนุญาตให้ Cloud Firestoreเข้าถึงคีย์โดยเจตนา ซึ่งรวมถึงกรณีต่อไปนี้
- การปิดใช้ หรือ ทำลายเวอร์ชันคีย์ที่ใช้งานอยู่ โปรดใช้ความระมัดระวังเมื่อทำลายเวอร์ชันคีย์ เนื่องจากอาจทำให้ข้อมูลสูญหายอย่างกู้คืนไม่ได้
- การนำสิทธิ์เข้าถึง คีย์ออกจากบัญชีบริการ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_PRECONDITION400
ข้อจำกัด
- คุณจะเปลี่ยนคีย์สำหรับฐานข้อมูลที่ได้รับการปกป้องด้วย 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 ได้ด้วย