सुरक्षित करने वाली ऐसी कुंजियां जिन्हें ग्राहक मैनेज करता है (CMEK)

डिफ़ॉल्ट रूप से, Cloud Firestore में सेव किए गए पूरे डेटा को Google के डिफ़ॉल्ट एन्क्रिप्शन का इस्तेमाल करके एन्क्रिप्ट (सुरक्षित) किया जाता है. Cloud Firestore इस एन्क्रिप्शन को आपके लिए मैनेज और हैंडल करता है. इसके लिए, आपको कुछ भी करने की ज़रूरत नहीं होती.

अगर आपके डेटा को सुरक्षित रखने वाली कुंजियों के लिए, आपको नियमों या शर्तों का पालन करना ज़रूरी है, तो Cloud Firestore के लिए, ग्राहक की ओर से मैनेज की जाने वाली एन्क्रिप्शन कुंजियों (सीएमईके) का इस्तेमाल किया जा सकता है. आपके डेटा को सुरक्षित रखने वाली एन्क्रिप्शन कुंजियों को Google मैनेज करता है. हालांकि, आपके Cloud Firestore डेटाबेस को उस कुंजी का इस्तेमाल करके सुरक्षित किया जाता है जिसे Cloud Key Management Service (Cloud KMS) में कंट्रोल और मैनेज किया जाता है.

इस पेज पर, Cloud Firestore के लिए सीएमईके के बारे में बताया गया है. सीएमईके के बारे में ज़्यादा जानकारी के लिए, Cloud KMS का यह दस्तावेज़ देखें. इसमें यह भी बताया गया है कि इसे कब और क्यों चालू करना चाहिए:

Cloud Firestore के साथ सीएमईके से जुड़े टास्क करने के निर्देशों के लिए, सीएमईके का इस्तेमाल करें देखें.

सुविधाएं

  • डेटा कंट्रोल: सीएमईके की मदद से, केएमएस कुंजी को मैनेज किया जा सकता है. आपके पास Cloud Firestore डेटाबेस में सेव किए गए डेटा को एन्क्रिप्ट (सुरक्षित) करने के लिए इस्तेमाल की गई कुंजी को बदलने, बंद करने, और मिटाने का विकल्प होता है.
  • परफ़ॉर्मेंस: सीएमईके का Cloud Firestore एसएलए पर कोई असर नहीं पड़ता.
  • ऑडिट करने की सुविधा: अगर आपने Cloud KMS के लिए ऑडिट लॉग की सुविधा चालू की है, तो पासकोड पर की गई सभी कार्रवाइयां लॉग की जाती हैं. इन्हें Cloud Logging में देखा जा सकता है.
  • संगठन की नीति से जुड़ी पाबंदियां: सीएमईके के लिए संगठन की नीति से जुड़ी पाबंदियों का इस्तेमाल करके, अपने संगठन में Cloud Firestore डेटाबेस के लिए, एन्क्रिप्शन के पालन से जुड़ी ज़रूरी शर्तें तय की जा सकती हैं.

कीमत

Cloud KMS, कुंजी और उस कुंजी का इस्तेमाल करके किए जाने वाले किसी भी क्रिप्टोग्राफ़िक ऑपरेशन के लिए शुल्क लेता है. ज़्यादा जानकारी के लिए, Cloud KMS की कीमत देखें.

जब Cloud Firestore, Cloud KMS कुंजी से एन्क्रिप्ट या डिक्रिप्ट करने के लिए कहता है, तब आपसे ऑपरेशन के शुल्क लिए जाते हैं. ग्राहक की ओर से मैनेज की जाने वाली कुंजी से, डेटा को एन्क्रिप्ट (सुरक्षित) या डिक्रिप्ट करने की प्रोसेस हर पांच मिनट में होती है. यह प्रोसेस, डेटाबेस के अनुरोधों के साथ सिंक नहीं होती. Cloud Firestore से जनरेट होने वाले क्रिप्टोग्राफ़िक ऑपरेशन की अनुमानित संख्या को देखते हुए, आम तौर पर लागत कम होती है. Cloud Audit Logs के लिए शुल्क अलग से देना होता है. हालांकि, क्रिप्टोग्राफ़िक ऑपरेशन की अनुमानित संख्या को देखते हुए, यह शुल्क आम तौर पर कम होता है.

सीएमईके से सुरक्षित डेटाबेस का इस्तेमाल करने के लिए, कोई अतिरिक्त Cloud Firestore शुल्क नहीं लिया जाता. साथ ही, Cloud Firestore कीमत लागू रहती है.

अगर किसी डेटाबेस के लिए अपनी कुंजी को वापस ले लिया जाता है, तो स्टोरेज की कीमत उस दिन के साइज़ के हिसाब से ली जाएगी जिस दिन कुंजी उपलब्ध थी. डेटाबेस के मिटने या कुंजी के फिर से उपलब्ध होने तक, आपको डेटाबेस के साइज़ के हिसाब से स्टोरेज का शुल्क देना होगा.

सीएमईके की मदद से क्या सुरक्षित किया जाता है

Cloud Firestore सीएमईके से सुरक्षित डेटाबेस बनाने पर, डेटा को सेव होने के बाद सुरक्षित रखने के लिए, Cloud KMS कुंजी का इस्तेमाल किया जाता है. इसमें वह डेटा शामिल है जिसे डिस्क या फ़्लैश ड्राइव पर सेव किया जाता है. इसमें इंडेक्स और बैकअप भी शामिल हैं. कुछ अपवाद लागू होते हैं. यहां दिए गए डेटा टाइप, Google के डिफ़ॉल्ट एन्क्रिप्शन (सुरक्षित करने का तरीका) से एन्क्रिप्ट (सुरक्षित) किए जाते हैं, न कि सीएमईके कुंजी से:

  • ट्रांज़िट स्थिति वाला डेटा या मेमोरी में मौजूद डेटा
  • डेटाबेस का मेटाडेटा

कुंजी का स्टेटस 'उपलब्ध नहीं है' होने पर क्या होता है

डेटा के हर अनुरोध पर, एन्क्रिप्ट (सुरक्षित) और डिक्रिप्ट करने की कार्रवाइयां नहीं की जाती हैं. इसके बजाय, Cloud Firestore सिस्टम हर पांच मिनट में Cloud KMS को पोल करता है, ताकि यह पता लगाया जा सके कि कुंजी अब भी उपलब्ध है या नहीं. अगर कुंजी उपलब्ध होती है, तो वह एन्क्रिप्ट और डिक्रिप्ट करने की कार्रवाइयां करता है.

अगर सिस्टम को पता चलता है कि कुंजी उपलब्ध नहीं है, तो 10 मिनट के अंदर Cloud Firestore डेटाबेस को किए जाने वाले किसी भी कॉल के लिए, INVALID_ARGUMENT गड़बड़ी का मैसेज दिखता है. इसमें डेटा को पढ़ने, लिखने, और क्वेरी करने के लिए किए जाने वाले कॉल भी शामिल हैं. गड़बड़ी का मैसेज इस तरह दिखता है:

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

अगर डेटाबेस में टाइम-टू-लाइव (टीटीएल) नीतियां हैं और कुंजी उपलब्ध न होने के दौरान, समयसीमा खत्म होने का कोई भी समय पार हो जाता है, तो टीटीएल के हिसाब से डेटा मिटाने में तब तक देरी होगी, जब तक कुंजी को वापस नहीं लाया जाता. अगर डेटाबेस में ज़्यादा समय तक चलने वाली कार्रवाई जारी हैं, तो उन पर इस तरह असर पड़ेगा:

कुंजियां तब उपलब्ध नहीं मानी जाती हैं, जब जान-बूझकर Cloud Firestore को कुंजी ऐक्सेस करने की अनुमति नहीं दी जाती. इसमें इस तरह का कॉन्टेंट शामिल है:

अगर कुंजी को वापस लाया जाता है, तो पोलिंग ऑपरेशन को पता चलता है कि कुंजी फिर से उपलब्ध है. ऐक्सेस फिर से चालू हो जाता है. आम तौर पर, इसमें कुछ मिनट लगते हैं. हालांकि, कुछ मामलों में कुछ घंटे भी लग सकते हैं. ध्यान दें कि Cloud KMS कुंजियों पर कुछ कार्रवाइयां करने में तीन घंटे लग सकते हैं. जैसे, किसी कुंजी को बंद करना या उसे मिटाना. Cloud Firestore को किसी भी बदलाव का पता तब तक नहीं चलता, जब तक वह Cloud KMS में लागू नहीं हो जाता.

स्थिति के आधार पर, कुंजी को वापस लाने के लिए ये काम किए जाते हैं:

  • बंद किए गए कुंजी के वर्शन को फिर से चालू करना.
  • नष्ट किए गए कुंजी वर्शन को वापस लाना. कुंजी के किसी वर्शन को हमेशा के लिए मिटाने से पहले, उसे मिटाने के लिए शेड्यूल किया जाता है. कुंजी को सिर्फ़ उस अवधि के दौरान वापस लाया जा सकता है जब कुंजी के वर्शन को मिटाने के लिए शेड्यूल किया गया हो. ऐसी कुंजी को वापस नहीं लाया जा सकता जिसे पहले ही हमेशा के लिए मिटा दिया गया है.
  • Cloud Firestore सर्विस एजेंट को कुंजी ऐक्सेस करने की अनुमति फिर से देना.

डेटा सुरक्षित करने वाली कुंजी का नया वर्शन बनाने से जुड़ी ज़रूरी बातें

सीएमईके कुंजी को रोटेट करने पर, Cloud Firestore डेटाबेस को सीएमईके कुंजी के नए प्राइमरी वर्शन के साथ फिर से एन्क्रिप्ट करता है. फिर से एन्क्रिप्ट करने की प्रोसेस के दौरान, कुंजी के पुराने और नए, दोनों वर्शन उपलब्ध रखें. डेटा को फिर से एन्क्रिप्ट करने के बाद, सीएमईके कुंजी के पुराने वर्शन को बंद करने या मिटाने से, डेटाबेस का ऐक्सेस बंद नहीं होगा. ऐसा इसलिए, क्योंकि डेटाबेस को नई प्राथमिक कुंजी के वर्शन से एन्क्रिप्ट किया गया है.

डेटाबेस को सुरक्षित रखने के लिए इस्तेमाल किए जा रहे कुंजी के वर्शन भी देखे जा सकते हैं. ज़्यादा जानकारी के लिए, इस्तेमाल की जा रही कुंजी देखें लेख पढ़ें.

बाहरी कुंजी से जुड़ी ध्यान रखने वाली मुख्य बातें

Cloud EKM कुंजी का इस्तेमाल करने पर, Google के पास बाहरी कुंजी मैनेजमेंट पार्टनर सिस्टम में, बाहरी तौर पर मैनेज की जाने वाली कुंजी की उपलब्धता पर कोई कंट्रोल नहीं होता.

अगर बाहरी तौर पर मैनेज की जाने वाली कुंजी उपलब्ध नहीं है, तो Cloud Firestore कुंजी के कैश मेमोरी में सेव किए गए वर्शन का इस्तेमाल करके, डेटाबेस के सभी ऑपरेशन को एक घंटे तक जारी रखता है.

अगर एक घंटे के बाद भी Cloud Firestore, Cloud KMS से कनेक्ट नहीं हो पाता है, तो Cloud Firestore सुरक्षा के तौर पर डेटाबेस को ऑफ़लाइन करना शुरू कर देता है. डेटाबेस को किए गए कॉल, INVALID_ARGUMENT गड़बड़ी के साथ फ़ेल हो जाएंगे. इसमें गड़बड़ी की अतिरिक्त जानकारी शामिल होगी.

बाहरी कुंजियों का इस्तेमाल करते समय, ध्यान रखने वाली अन्य बातों के बारे में जानने के लिए, Cloud External Key Manager का दस्तावेज़ देखें.

बैकअप लें और बहाल करें

बैकअप में एन्क्रिप्ट करने का वही तरीका इस्तेमाल किया जाता है जो उस डेटाबेस में किया जाता है जिससे आपने इसे बनाया है. जब सीएमईके से सुरक्षित किया गया Cloud Firestore डेटाबेस, बैकअप बनाता है, तो वह बैकअप को उस प्राइमरी कुंजी के वर्शन से एन्क्रिप्ट (सुरक्षित) करता है जिसका इस्तेमाल बैकअप बनाते समय किया गया था.

Cloud Firestore, बैकअप शेड्यूल करने की सुविधा चालू करने के 24 घंटे बाद, सीएमईके डेटाबेस का पहला बैकअप बनाता है.

Cloud Firestore बैकअप के बारे में ज़्यादा जानने के लिए, डेटा का बैक अप लेना और उसे वापस पाना लेख पढ़ें.

बैकअप से वापस लाया गया डेटाबेस, डिफ़ॉल्ट रूप से एन्क्रिप्ट करने के उसी तरीके का इस्तेमाल करता है जो बैकअप के लिए इस्तेमाल किया गया था. डेटाबेस को वापस लाने के दौरान, एन्क्रिप्ट करने का कोई दूसरा तरीका चुना जा सकता है. इसके लिए, इनमें से कोई एक तरीका अपनाएं:

  • नई कुंजी के साथ सीएमईके डेटाबेस को वापस लाना.
  • ऐसे नॉन-सीएमईके डेटाबेस में वापस जाएं जो Google के डिफ़ॉल्ट एन्क्रिप्शन का इस्तेमाल करता है.
  • डेटा को ऐसे डेटाबेस में वापस लाएं जो एन्क्रिप्ट करने के लिए उसी तरीके का इस्तेमाल करता हो जिसका इस्तेमाल बैकअप के लिए किया गया था.

बैकअप से Cloud Firestore डेटाबेस को वापस लाने के बारे में ज़्यादा जानने के लिए, डेटाबेस के बैकअप से डेटा वापस लाना लेख पढ़ें. बैकअप से, सीएमईके से सुरक्षित किए गए Cloud Firestore डेटाबेस को वापस लाने के बारे में ज़्यादा जानने के लिए, सीएमईके से सुरक्षित किए गए डेटाबेस को वापस लाना लेख पढ़ें.

क्लोन बनाएं

डिफ़ॉल्ट रूप से, किसी दूसरे डेटाबेस से क्लोन किया गया डेटाबेस, एन्क्रिप्ट करने के लिए उसी तरीके का इस्तेमाल करता है जो सोर्स डेटाबेस में इस्तेमाल किया गया है. डेटाबेस को क्लोन करते समय, एन्क्रिप्ट करने का कोई दूसरा तरीका चुना जा सकता है. इसके लिए, इनमें से कोई एक तरीका अपनाएं:

  • नई कुंजी का इस्तेमाल करके, सीएमईके डेटाबेस में क्लोन करें.
  • किसी ऐसे नॉन-सीएमईके डेटाबेस में क्लोन करें जो Google के डिफ़ॉल्ट एन्क्रिप्शन का इस्तेमाल करता है.
  • (डिफ़ॉल्ट) किसी ऐसे डेटाबेस में क्लोन करें जो सोर्स डेटाबेस की तरह ही एन्क्रिप्शन का इस्तेमाल करता है.

Cloud Firestore डेटाबेस को क्लोन करने के बारे में ज़्यादा जानने के लिए, डेटाबेस को क्लोन करना लेख पढ़ें. सीएमईके से सुरक्षित Cloud Firestore डेटाबेस को क्लोन करने के बारे में ज़्यादा जानकारी के लिए, सीएमईके से सुरक्षित डेटाबेस को क्लोन करना लेख पढ़ें.

मुख्य ट्रैकिंग

कुंजी ट्रैकिंग का इस्तेमाल करके, उन संसाधनों को देखा जा सकता है जिन्हें कोई कुंजी सुरक्षित रखती है. उदाहरण के लिए, Cloud Firestore डेटाबेस. कुंजी को ट्रैक करने के बारे में ज़्यादा जानने के लिए, कुंजी के इस्तेमाल की जानकारी देखना लेख पढ़ें.

सीएमईके और कुंजी की उपलब्धता

कुंजियां उपलब्ध न होने या बंद होने पर, सीएमईके की सुविधा वाले डेटाबेस में ये समस्याएं आ सकती हैं:

  • आपके पास ऐसे सीएमईके डेटाबेस को मिटाने का विकल्प है जिसकी कुंजियां उपलब्ध नहीं हैं.

  • सीएमईके की सुविधा वाला डेटाबेस बनाने पर, बंद की गई कुंजियां Google Cloud कंसोल में उपलब्ध कुंजियों की सूची में नहीं दिखती हैं. अगर आपने मैन्युअल तरीके से ऐसी कुंजी डाली है जो बंद है, तो डेटाबेस बनाने की प्रोसेस पूरी नहीं होगी. साथ ही, आपको INVALID_ARGUMENT गड़बड़ी 400 का मैसेज दिखेगा.

सीमाएं

  • सीएमईके से सुरक्षित किए गए डेटाबेस के लिए, कुंजी को नहीं बदला जा सकता. कुंजियों को रोटेट किया जा सकता है. साथ ही, उन्हें चालू और बंद किया जा सकता है.

  • मौजूदा डेटाबेस पर सीएमईके को चालू नहीं किया जा सकता. सीएमईके को सिर्फ़ नए डेटाबेस पर चालू किया जा सकता है. साथ ही, डेटाबेस बनाते समय इसे चालू करना ज़रूरी है. किसी मौजूदा नॉन-सीएमईके डेटाबेस में मौजूद डेटा को सीएमईके से सुरक्षित डेटाबेस में माइग्रेट करने के लिए, अपना डेटा एक्सपोर्ट करें. इसके बाद, डेटा को सीएमईके से सुरक्षित नए डेटाबेस में इंपोर्ट करें. इसके अलावा, नॉन-सीएमईके डेटाबेस से डेटा को सीएमईके डेटाबेस में वापस लाया जा सकता है या क्लोन किया जा सकता है.

  • Cloud Firestore, सीएमईके से सुरक्षित किए गए कुछ डेटाबेस के साथ ही काम करता है.

आगे क्या करना है