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

หากฐานข้อมูลมีนโยบายเวลาในการใช้งาน (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 ได้ด้วย

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