คีย์การเข้ารหัสลับที่จัดการโดยลูกค้า (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 ไม่ส่งผลต่อ 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

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

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

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

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

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

The customer-managed encryption key required by the requested
resource is not accessible.

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

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

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

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

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

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

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

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

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

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

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

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

ดูข้อควรพิจารณาเพิ่มเติมเมื่อใช้คีย์ภายนอกได้ในเอกสารประกอบของ 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

  • คุณสามารถลบฐานข้อมูล CMEK ที่มีคีย์ที่ไม่พร้อมใช้งานได้

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

ข้อจำกัด

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

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

  • Cloud Firestore รองรับฐานข้อมูลที่ได้รับการปกป้องด้วย CMEK ในจำนวนจำกัด

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