โดยค่าเริ่มต้น ข้อมูลทั้งหมดที่ไม่มีการเคลื่อนไหวใน Cloud Firestore จะได้รับการเข้ารหัสโดยใช้การเข้ารหัสเริ่มต้นของ Google Cloud Firestore จะจัดการการเข้ารหัสนี้ให้คุณโดยที่คุณไม่ต้องดำเนินการใดๆ เพิ่มเติม
หากคุณมีข้อกำหนดด้านการปฏิบัติตามข้อกำหนดหรือกฎระเบียบที่เฉพาะเจาะจงเกี่ยวกับคีย์ที่ปกป้องข้อมูลของคุณ คุณสามารถใช้คีย์การเข้ารหัสที่จัดการโดยลูกค้า (CMEK) สำหรับ Cloud Firestore ได้ ฐานข้อมูล Cloud Firestore ของคุณจะได้รับการปกป้องโดยใช้คีย์ที่คุณควบคุมและจัดการใน Cloud Key Management Service (Cloud KMS) แทนที่จะให้ Google จัดการคีย์การเข้ารหัสที่ปกป้องข้อมูลของคุณ
หน้านี้อธิบาย CMEK สำหรับ Cloud Firestore ดูข้อมูลเพิ่มเติมเกี่ยวกับ CMEK โดยทั่วไป รวมถึงกรณีและเหตุผลที่ควรเปิดใช้ได้ในเอกสารประกอบของ Cloud KMS ต่อไปนี้
ดูวิธีการทำงานที่เกี่ยวข้องกับ CMEK ด้วย Cloud Firestore ได้ที่หัวข้อใช้ CMEK
ฟีเจอร์
- การควบคุมข้อมูล: CMEK ช่วยให้คุณจัดการคีย์ KMS ได้ คุณสามารถหมุนเวียน ปิดใช้ และทำลายคีย์ที่ใช้เข้ารหัสข้อมูลที่ไม่มีการเคลื่อนไหวในฐานข้อมูล Cloud Firestore ได้
- ประสิทธิภาพ: CMEK ไม่ส่งผลต่อ SLA ของ Cloud Firestore
- ความสามารถในการตรวจสอบ: หากคุณเปิดใช้การบันทึกการตรวจสอบสำหรับ Cloud KMS ระบบจะบันทึกการดำเนินการทั้งหมดในคีย์และดูได้ใน Cloud Logging
- ข้อจำกัดของนโยบายองค์กร: คุณสามารถใช้ข้อจำกัดของนโยบายองค์กร CMEK เพื่อระบุข้อกำหนดด้านการปฏิบัติตามข้อกำหนดการเข้ารหัสสำหรับฐานข้อมูล Cloud Firestore ในองค์กรได้
ราคา
Cloud KMS จะเรียกเก็บค่าใช้จ่ายสำหรับคีย์และการดำเนินการเข้ารหัสที่ทำโดยใช้คีย์นั้น ดูข้อมูลเพิ่มเติมได้ที่ราคาของ Cloud KMS
ระบบจะเรียกเก็บเงินค่าใช้จ่ายในการดำเนินการเมื่อ Cloud Firestore ขอให้คีย์ Cloud KMS ดำเนินการเข้ารหัสหรือถอดรหัส การดำเนินการเข้ารหัส/ถอดรหัสโดยคีย์ที่จัดการโดยลูกค้าจะเกิดขึ้นทุกๆ 5 นาทีและไม่ได้ซิงค์กับคำขอฐานข้อมูล โดยทั่วไปแล้วค่าใช้จ่ายจะต่ำเมื่อพิจารณาจากจำนวนการดำเนินการเข้ารหัสที่คาดว่าจะเกิดขึ้นจาก Cloud Firestore ค่าใช้จ่ายสำหรับ Cloud Audit Logs เป็นค่าใช้จ่ายเพิ่มเติม แต่ก็คาดว่าโดยทั่วไปจะต่ำเมื่อพิจารณาจากจำนวนการดำเนินการด้านวิทยาการเข้ารหัสที่คาดไว้
การใช้ฐานข้อมูลที่ได้รับการปกป้องด้วย CMEK ไม่มีค่าใช้จ่ายเพิ่มเติมสำหรับ Cloud Firestore และยังคงใช้ราคาของ Cloud Firestore ต่อไป
หากคุณเพิกถอนคีย์สำหรับฐานข้อมูล ระบบจะเรียกเก็บค่าใช้จ่ายในการจัดเก็บข้อมูลตามขนาดของวันสุดท้ายที่คีย์พร้อมใช้งาน คุณจะยังคงมีค่าใช้จ่ายในการจัดเก็บข้อมูลตามขนาดฐานข้อมูลนั้นจนกว่าจะลบฐานข้อมูลหรือคีย์พร้อมใช้งานอีกครั้ง
ข้อมูลที่ได้รับการปกป้องด้วย CMEK
เมื่อคุณสร้างฐานข้อมูลที่ได้รับการปกป้องด้วย Cloud Firestore CMEK ระบบจะใช้คีย์ 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 จากข้อมูลสำรองได้ที่หัวข้อกู้คืนฐานข้อมูลที่ได้รับการปกป้องด้วย CMEK
โคลน
โดยค่าเริ่มต้น ฐานข้อมูลที่โคลนจากฐานข้อมูลอื่นจะใช้กลไกการเข้ารหัสเดียวกันกับฐานข้อมูลต้นทาง เมื่อโคลนฐานข้อมูล คุณสามารถระบุประเภทการเข้ารหัสที่แตกต่างกันได้ด้วยวิธีใดวิธีหนึ่งต่อไปนี้
- โคลนไปยังฐานข้อมูล CMEK ด้วยคีย์ที่ระบุใหม่
- โคลนไปยังฐานข้อมูลที่ไม่ใช่ CMEK ซึ่งใช้การเข้ารหัสเริ่มต้นของ Google
- (ค่าเริ่มต้น) โคลนไปยังฐานข้อมูลที่ใช้การเข้ารหัสเดียวกันกับฐานข้อมูลต้นทาง
ดูข้อมูลเพิ่มเติมเกี่ยวกับการโคลนฐานข้อมูล Cloud Firestore ได้ที่โคลนฐานข้อมูล ดูข้อมูลเพิ่มเติมเกี่ยวกับการโคลนฐานข้อมูล Cloud Firestore ที่ได้รับการปกป้องด้วย CMEK ได้ที่หัวข้อโคลนฐานข้อมูลที่ได้รับการปกป้องด้วย CMEK
การติดตามคีย์
คุณสามารถใช้การติดตามคีย์เพื่อดูทรัพยากร เช่น ฐานข้อมูล 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 ให้ใช้ทริกเกอร์ Firestore ของฟังก์ชัน Cloud Run (รุ่นที่ 2)
วิธีที่ข้อมูลออกจากฐานข้อมูลที่ได้รับการปกป้องด้วย CMEK
ผู้ใช้สามารถจัดเก็บข้อมูลที่แอปพลิเคชันของคุณคัดลอกได้ตามต้องการ แอปพลิเคชันที่เข้าถึงข้อมูล Cloud Firestore ต้องมีการควบคุมความปลอดภัยที่เหมาะสมเพื่อให้แน่ใจว่ามีเพียงผู้ที่ได้รับสิทธิ์เท่านั้นที่เข้าถึงข้อมูลได้ ดูรายละเอียดเพิ่มเติมได้ที่กฎความปลอดภัยและ IAM
คุณสามารถย้ายข้อมูลจากฐานข้อมูลที่ได้รับการปกป้องด้วย CMEK ไปยังฐานข้อมูลที่ไม่ใช่ CMEK ได้โดยใช้สำรองและกู้คืนข้อมูล โคลน หรือนำเข้าและส่งออก ใช้การควบคุม IAM ที่เหมาะสมเพื่อให้สิทธิ์สำหรับการดำเนินการเหล่านี้แก่ผู้ใช้ที่ได้รับอนุญาตเท่านั้น นอกจากนี้ คุณยังใช้ข้อจำกัดของนโยบายองค์กร CMEK เพื่อกำหนดให้ฐานข้อมูลที่สร้างขึ้นโดยการกู้คืนหรือโคลน และที่เก็บข้อมูล Cloud Storage ที่ใช้สำหรับการนำเข้าได้รับการปกป้องโดย CMEK ได้