डिफ़ॉल्ट रूप से, Cloud Firestore में सेव किया गया सारा डेटा, Google के डिफ़ॉल्ट एन्क्रिप्शन का इस्तेमाल करके एन्क्रिप्ट (सुरक्षित) किया जाता है. Cloud Firestore, आपके लिए इस एन्क्रिप्शन को मैनेज करता है. इसके लिए, आपको कुछ करने की ज़रूरत नहीं है.
अगर आपके पास अपने डेटा को सुरक्षित रखने वाली कुंजियों से जुड़ी, कानूनी तौर पर पालन की जाने वाली या नियमों से जुड़ी खास शर्तें हैं, तो Cloud Firestore के लिए, ग्राहक की ओर से मैनेज की जाने वाली एन्क्रिप्शन कुंजियों (CMEK) का इस्तेमाल किया जा सकता है. आपके डेटा को सुरक्षित रखने वाली एन्क्रिप्शन कुंजियों को Google मैनेज नहीं करता. आपके Cloud Firestore डेटाबेस को एक ऐसी कुंजी से सुरक्षित किया जाता है जिसे क्लाउड की कुंजी मैनेजमेंट सेवा (क्लाउड केएमएस) में कंट्रोल और मैनेज किया जाता है.
इस पेज पर, Cloud Firestore के लिए CMEK के बारे में बताया गया है. सीएमईके के बारे में ज़्यादा जानने के लिए, Cloud KMS का यह दस्तावेज़ देखें. इसमें यह भी बताया गया है कि इसे कब और क्यों चालू करना चाहिए:
- सुरक्षित करने वाली ऐसी 'की' जिनका मैनेजमेंट ग्राहक करता है (CMEK)
- सीएमईके इस्तेमाल करने के सबसे सही तरीके
Cloud Firestore की मदद से, CMEK से जुड़े टास्क करने के निर्देशों के लिए, CMEK का इस्तेमाल करना लेख पढ़ें.
सुविधाएं
- डेटा कंट्रोल: CMEK की मदद से, केएमएस कुंजी को मैनेज किया जा सकता है. आपके पास, अपने Cloud Firestore डेटाबेस में मौजूद डेटा को एन्क्रिप्ट (सुरक्षित) करने के लिए इस्तेमाल की गई कुंजी को रोटेट करने, बंद करने, और नष्ट करने का विकल्प होता है.
- परफ़ॉर्मेंस: सीएमईके से, Cloud Firestore एसएलए पर कोई असर नहीं पड़ता.
- ऑडिट की जा सकती है: अगर आपने क्लाउड केएमएस (KMS) के लिए ऑडिट लॉगिंग की सुविधा चालू की है, तो कुंजी पर किए गए सभी ऑपरेशन को लॉग किया जाता है और Cloud Logging में देखा जा सकता है.
- संगठन की नीति से जुड़ी पाबंदियां: अपने संगठन में Cloud Firestore डेटाबेस के लिए, एन्क्रिप्शन से जुड़ी नीति का पालन करने से जुड़ी ज़रूरी शर्तों के बारे में बताने के लिए, संगठन की नीति से जुड़ी सीएमईके की पाबंदियां का इस्तेमाल किया जा सकता है.
कीमत
Cloud KMS, पासकोड की लागत और उस पासकोड का इस्तेमाल करके किए गए किसी भी क्रिप्टोग्राफ़िक ऑपरेशन के लिए शुल्क लेता है. ज़्यादा जानकारी के लिए, Cloud KMS की कीमत देखें.
जब Cloud Firestore, Cloud केएमएस कुंजी से एन्क्रिप्ट (सुरक्षित) या डिक्रिप्ट (अनचाहे कोड को हटाना) करने के लिए कहता है, तो आपको ऑपरेशन की लागत का बिल भेजा जाता है. ग्राहक के मैनेज किए जाने वाले पासकोड से, डेटा को हर पांच मिनट में एन्क्रिप्ट/डिक्रिप्ट किया जाता है. यह डेटाबेस के अनुरोधों के साथ सिंक नहीं होता. Cloud Firestore से जनरेट होने वाले क्रिप्टोग्राफ़िक ऑपरेशन की अनुमानित संख्या को देखते हुए, आम तौर पर लागत कम होती है. क्लाउड ऑडिट लॉग की लागत एक अतिरिक्त खर्च है. हालांकि, क्रिप्टोग्राफ़िक ऑपरेशन की अनुमानित संख्या को देखते हुए, आम तौर पर यह लागत कम होती है.
सीएमईके से सुरक्षित डेटाबेस का इस्तेमाल करने के लिए, Cloud Firestore से कोई अतिरिक्त शुल्क नहीं लिया जाता. साथ ही, Cloud Firestore की कीमत पहले की तरह ही लागू होती है.
अगर आपने किसी डेटाबेस के लिए अपनी कुंजी रद्द कर दी है, तो स्टोरेज का शुल्क उस आखिरी दिन के डेटा के आधार पर लिया जाएगा जब कुंजी उपलब्ध थी. जब तक डेटाबेस मिटाया नहीं जाता या फिर से पासकोड उपलब्ध नहीं हो जाता, तब तक आपको उस डेटाबेस के साइज़ के हिसाब से स्टोरेज शुल्क देना होगा.
CMEK की मदद से क्या सुरक्षित किया जाता है
Cloud Firestore सीएमईके से सुरक्षित डेटाबेस बनाने पर, डेटा को सुरक्षित रखने के लिए आपकी Cloud KMS पासकोड का इस्तेमाल किया जाता है. इसमें वह डेटा शामिल होता है जिसे डिस्क या फ़्लैश ड्राइव पर सेव किया जाता है. इसमें इंडेक्स और बैकअप भी शामिल हैं. हालांकि, कुछ मामलों में, जाने की छूट मिल सकती है. नीचे दिए गए डेटा टाइप, CMEK पासकी के बजाय Google के डिफ़ॉल्ट एन्क्रिप्शन से एन्क्रिप्ट (सुरक्षित) किए जाते हैं:
- ट्रांज़िट स्थिति वाला डेटा या मेमोरी में मौजूद डेटा
- डेटाबेस का मेटाडेटा
'उपलब्ध नहीं है' स्थिति वाले पासकोड को कैसे मैनेज किया जाता है
डेटा के हर अनुरोध पर, एन्क्रिप्ट और डिक्रिप्ट करने की कार्रवाइयां नहीं की जाती हैं. इसके बजाय, Cloud Firestore सिस्टम हर पांच मिनट में Cloud KMS से पूछता है कि कुंजी अब भी उपलब्ध है या नहीं. कुंजी उपलब्ध होने पर, सिस्टम एन्क्रिप्ट और डिक्रिप्ट करने की प्रोसेस करता है.
अगर सिस्टम को पता चलता है कि पासकोड उपलब्ध नहीं है, तो 10 मिनट के अंदर Cloud Firestore डेटाबेस के लिए किए गए सभी कॉल, FAILED_PRECONDITION
गड़बड़ी के साथ The customer-managed encryption key required by the requested
resource is not accessible
मैसेज दिखाते हैं. इन कॉल में, डेटा पढ़ना, डेटा लिखना, और क्वेरी शामिल हैं.
अगर डेटाबेस में टाइम-टू-लिव (TTL) नीतियां हैं और पासकोड उपलब्ध न होने पर, समयसीमा खत्म होने की कोई भी तारीख बीत जाती है, तो TTL की वजह से डेटा मिटाने में देरी होगी. ऐसा तब तक होगा, जब तक पासकोड वापस नहीं आ जाता. अगर डेटाबेस में लंबे समय से चल रहे ऑपरेशन जारी हैं, तो उन पर इनका असर पड़ेगा:
- डेटा इंपोर्ट या एक्सपोर्ट की प्रोसेस आगे नहीं बढ़ेगी और उसे
Failed
के तौर पर मार्क कर दिया जाएगा. अगर कुंजी वापस आ जाती है, तो जिन कार्रवाइयों को पूरा नहीं किया जा सका था उन्हें फिर से नहीं किया जाएगा. - इंडेक्स बनाने और नई टीटीएल नीतियां चालू करने वाले ऑपरेशन आगे नहीं बढ़ पाएंगे. अगर पासकोड वापस आ जाता है, तो रोकी गई कार्रवाइयों को फिर से शुरू किया जाएगा.
कुंजियों को तब उपलब्ध नहीं माना जाता, जब जान-बूझकर Cloud Firestore को कुंजी ऐक्सेस करने से रोका जाता है. इसमें इस तरह का कॉन्टेंट शामिल है:
- इस्तेमाल में मौजूद पासकोड का वर्शन बंद करना या नष्ट करना. किसी पासकोड के वर्शन को मिटाते समय सावधानी बरतें, क्योंकि ऐसा करने से डेटा वापस नहीं पाया जा सकता.
- Cloud Firestore सेवा खाते से कुंजी को ऐक्सेस करने की अनुमति हटाना.
अगर कुंजी को फिर से चालू किया जाता है, तो पोलिंग ऑपरेशन से पता चलता है कि कुंजी फिर से उपलब्ध है. आम तौर पर, ऐक्सेस कुछ ही मिनटों में फिर से चालू हो जाता है. हालांकि, कुछ मामलों में इसमें कुछ घंटे भी लग सकते हैं. ध्यान दें कि Cloud KMS की कुंजियों पर कुछ कार्रवाइयां करने के बाद, उन्हें लागू होने में तीन घंटे लग सकते हैं. जैसे, कुंजी को बंद करना या मिटाना. Cloud Firestore तब तक किसी भी बदलाव का पता नहीं लगाता, जब तक कि वे क्लाउड केएमएस (KMS) में लागू नहीं हो जाते.
किसी पासकोड को वापस पाने के लिए, आपको इनमें से कोई एक तरीका अपनाना होगा:
- बंद किए गए पासकोड के वर्शन को फिर से चालू करना.
- मिटाए गए पासकोड का वर्शन वापस लाया जा सकता है. हमेशा के लिए मिटाए जाने से पहले, किसी पासकोड के वर्शन को मिटाने के लिए शेड्यूल किया जाता है. किसी पासकोड को सिर्फ़ उस अवधि के दौरान वापस लाया जा सकता है जब पासकोड के किसी वर्शन को मिटाने के लिए शेड्यूल किया गया हो. किसी ऐसी कुंजी को वापस नहीं लाया जा सकता जिसे पहले ही हमेशा के लिए मिटा दिया गया है.
- Cloud Firestore सर्विस एजेंट को कुंजी ऐक्सेस करने की अनुमति फिर से देना.
डेटा सुरक्षित करने वाली कुंजी का नया वर्शन बनाने से जुड़ी बातें
सीएमईके पासकोड को रोटेट करने पर, Cloud Firestore सीएमईके पासकोड के नए प्राइमरी वर्शन का इस्तेमाल करके, डेटाबेस को फिर से एन्क्रिप्ट करता है. फिर से एन्क्रिप्ट करने की प्रोसेस के दौरान, कुंजी के पुराने और नए वर्शन, दोनों को उपलब्ध रखें. डेटा को फिर से एन्क्रिप्ट करने के बाद, सीएमईके पासकोड के पुराने वर्शन को बंद करने या मिटाने से, डेटाबेस का ऐक्सेस बंद नहीं होगा. इसकी वजह यह है कि डेटाबेस को प्राइमरी पासकोड के नए वर्शन से एन्क्रिप्ट किया गया है.
डेटाबेस को सुरक्षित रखने के लिए इस्तेमाल की जा रही कुंजियों के वर्शन भी देखे जा सकते हैं. ज़्यादा जानकारी के लिए, इस्तेमाल में चल रही कुंजी देखना लेख पढ़ें.
बाहरी कुंजी से जुड़ी बातें
Cloud EKM पासकोड का इस्तेमाल करने पर, Google के पास बाहरी पासकोड मैनेजमेंट पार्टनर सिस्टम में, बाहरी तौर पर मैनेज की जा रही पासकोड की उपलब्धता पर कंट्रोल नहीं होता.
अगर बाहरी तौर पर मैनेज की जाने वाली कोई कुंजी उपलब्ध नहीं है, तो Cloud Firestore एक घंटे तक डेटाबेस के सभी ऑपरेशन को पूरी कोशिश के साथ जारी रखता है.
अगर एक घंटे बाद भी Cloud Firestore, Cloud KMS से कनेक्ट नहीं हो पाता है, तो Cloud Firestore सुरक्षा के मकसद से डेटाबेस को ऑफ़लाइन कर देता है. डेटाबेस को कॉल करने पर, FAILED_PRECONDITION
गड़बड़ी का मैसेज दिखेगा. इसमें ज़्यादा जानकारी शामिल होगी.
बाहरी पासकोड इस्तेमाल करने के बारे में ज़्यादा जानकारी के लिए, Cloud External Key Manager का दस्तावेज़ देखें.
बैकअप लें और बहाल करें
बैकअप, उसी एन्क्रिप्शन (सुरक्षित) तरीके का इस्तेमाल करता है जिसका इस्तेमाल करके डेटाबेस बनाया गया था. सीएमईके से सुरक्षित Cloud Firestore डेटाबेस से बैकअप लेने पर, वह बैकअप को उस प्राइमरी पासकोड वर्शन से एन्क्रिप्ट करता है जिसका इस्तेमाल बैकअप लेने के समय किया गया था.
Cloud Firestore, बैकअप शेड्यूल करने की सुविधा चालू करने के 24 घंटे बाद, सीएमईके डेटाबेस का पहला बैकअप बनाता है.
Cloud Firestore के बैकअप के बारे में ज़्यादा जानने के लिए, डेटा का बैक अप लें और उसे वापस लाएं लेख पढ़ें.
बैकअप से वापस लाया गया डेटाबेस, डिफ़ॉल्ट रूप से उसी एन्क्रिप्शन तरीके का इस्तेमाल करता है जिसका इस्तेमाल बैकअप के लिए किया गया था. डेटाबेस को वापस लाने के दौरान, एन्क्रिप्शन का कोई दूसरा टाइप तय किया जा सकता है. इसके लिए, इनमें से कोई एक तरीका अपनाएं:
- नई दी गई कुंजी के साथ, CMEK डेटाबेस में वापस लाएं.
- Google के डिफ़ॉल्ट एन्क्रिप्शन का इस्तेमाल करने वाले ऐसे डेटाबेस में वापस लाएं जो सीएमईके का इस्तेमाल नहीं करता.
- उस डेटाबेस में डेटा को वापस लाएं जो बैकअप के लिए इस्तेमाल किए गए एन्क्रिप्शन का इस्तेमाल करता है.
बैकअप से Cloud Firestore डेटाबेस को वापस लाने के बारे में ज़्यादा जानने के लिए, डेटाबेस के बैकअप से डेटा वापस लाना लेख पढ़ें. बैकअप से, CMEK से सुरक्षित Cloud Firestore डेटाबेस को वापस लाने के बारे में ज़्यादा जानकारी के लिए, CMEK से सुरक्षित डेटाबेस को वापस लाना लेख पढ़ें.
की ट्रैकिंग
कुंजी ट्रैकिंग का इस्तेमाल करके, संसाधनों को देखा जा सकता है. उदाहरण के लिए, Cloud Firestore डेटाबेस, जिन्हें कुंजी से सुरक्षित किया जाता है. पासकोड ट्रैकिंग के बारे में ज़्यादा जानने के लिए, पासकोड के इस्तेमाल की जानकारी देखें लेख पढ़ें.
सीएमईके और पासकोड की उपलब्धता
अगर पासकोड उपलब्ध नहीं हैं या बंद हैं, तो सीएमईके की सुविधा वाले डेटाबेस में ये समस्याएं आ सकती हैं:
- सीएमईके की सुविधा वाले डेटाबेस में, Cloud Firestore किसी खास समय का डेटा वापस पाने (पीआईटीआर) की सेटिंग को बदला जा सकता है. भले ही, पासकोड उपलब्ध न हो, क्योंकि पीआईटीआर सेटिंग, डेटाबेस का मेटाडेटा होता है. इसे सीएमईके से एन्क्रिप्ट नहीं किया जाता.
- आपके पास उस CMEK डेटाबेस को मिटाने का विकल्प होता है जिसमें उपलब्ध कुंजियां नहीं हैं.
- सीएमईके की सुविधा वाला डेटाबेस बनाने पर, बंद की गई कुंजियां Google Cloud Console में उपलब्ध कुंजियों की सूची में नहीं दिखती हैं. अगर मैन्युअल तरीके से बंद की गई कोई कुंजी डाली जाती है, तो डेटाबेस बनाने की प्रोसेस पूरी नहीं हो पाएगी और आपको
FAILED_PRECONDITION
गड़बड़ी 400 का मैसेज दिखेगा.
सीमाएं
- सीएमईके से सुरक्षित किए गए डेटाबेस के लिए, पासकोड नहीं बदला जा सकता. आपके पास बटन को घुमाने, चालू करने, और बंद करने का विकल्प होता है.
- सीएमईके से सुरक्षित डेटाबेस, सिर्फ़ इकाई और दस्तावेज़ के डेटा के लिए कीवर्ड विज़ुअलाइज़र के साथ काम करते हैं, न कि इंडेक्स डेटा के लिए.
- मौजूदा डेटाबेस पर सीएमईके को चालू नहीं किया जा सकता. सीएमईके को सिर्फ़ नए डेटाबेस पर चालू किया जा सकता है. साथ ही, डेटाबेस बनाते समय आपको इसे चालू करना होगा. किसी मौजूदा ऐसे डेटाबेस का डेटा, जो CMEK से सुरक्षित नहीं है, को CMEK से सुरक्षित डेटाबेस में माइग्रेट करने के लिए, अपना डेटा एक्सपोर्ट करें. इसके बाद, डेटा को CMEK से सुरक्षित नए डेटाबेस में इंपोर्ट करें. डेटा को CMEK वाले डेटाबेस से, बिना CMEK वाले डेटाबेस में भी वापस लाया जा सकता है.
- Cloud Firestore, CMEK से सुरक्षित कुछ ही डेटाबेस के साथ काम करता है.
- हम Cloud Functions (पहले जनरेशन) के इंटिग्रेशन के साथ, CMEK सुरक्षा का इस्तेमाल नहीं करते. अगर आपको सीएमईके सुरक्षा चाहिए, तो Cloud Run फ़ंक्शन Firestore ट्रिगर (दूसरा जनरेशन) का इस्तेमाल करें.