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

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

ราคา

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

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

การใช้ฐานข้อมูลที่ปกป้องด้วย 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 เข้าถึงคีย์ ซึ่งรวมถึงเนื้อหาต่อไปนี้

หากมีการคืนสิทธิคีย์ การดำเนินการโพลจะตรวจพบว่าคีย์พร้อมใช้งานอีกครั้ง ระบบจะเปิดใช้สิทธิ์เข้าถึงอีกครั้งโดยปกติภายในไม่กี่นาที แต่อาจใช้เวลาถึง 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 ได้ที่สำรองและกู้คืนข้อมูล

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

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

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

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

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

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

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

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

ข้อจำกัด

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

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