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

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

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

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

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

โคลน

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

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

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

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

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

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