डिफ़ॉल्ट रूप से, 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 डेटाबेस को किए जाने वाले किसी भी कॉल के लिए, The customer-managed encryption key required by the requested
resource is not accessible मैसेज के साथ FAILED_PRECONDITION गड़बड़ी का मैसेज दिखता है. इसमें डेटा को पढ़ना, लिखना, और क्वेरी करना शामिल है.
अगर डेटाबेस में टाइम-टू-लिव (टीटीएल) नीतियां हैं और कुंजी उपलब्ध न होने पर, डेटा के खत्म होने की कोई भी समयसीमा पार हो जाती है, तो टीटीएल के हिसाब से डेटा मिटाने में तब तक देरी होगी, जब तक कुंजी को वापस नहीं लाया जाता. अगर डेटाबेस में ज़्यादा समय तक चलने वाली कार्रवाई जारी हैं, तो उन पर इस तरह असर पड़ेगा:
- डेटा इंपोर्ट या एक्सपोर्ट करने की प्रोसेस रुक जाएगी और उसे
Failedके तौर पर मार्क कर दिया जाएगा. अगर कुंजी को वापस लाया जाता है, तो पूरी न हो सकी कार्रवाइयों को फिर से नहीं किया जाएगा. - इंडेक्स बनाने और टीटीएल की नई नीतियां चालू करने की प्रोसेस रुक जाएगी. अगर कुंजी को वापस लाया जाता है, तो रोकी गई कार्रवाइयों को फिर से शुरू किया जाएगा.
कुंजियां तब उपलब्ध नहीं मानी जाती हैं, जब जान-बूझकर Cloud Firestore को कुंजी ऐक्सेस करने की अनुमति नहीं दी जाती. इसमें इस तरह का कॉन्टेंट शामिल है:
- इस्तेमाल किए जा रहे कुंजी वर्शन को बंद या नष्ट करना. कुंजी के किसी वर्शन को मिटाते समय सावधानी बरतें, क्योंकि इससे डेटा हमेशा के लिए मिट सकता है.
- अनुमति हटाना: Cloud Firestore सेवा खाते से कुंजी को ऐक्सेस करने की अनुमति हटाना.
अगर कुंजी को वापस लाया जाता है, तो पोलिंग ऑपरेशन को पता चलता है कि कुंजी फिर से उपलब्ध है. आम तौर पर, कुछ ही मिनटों में ऐक्सेस फिर से चालू हो जाता है. हालांकि, कुछ मामलों में इसमें कुछ घंटे भी लग सकते हैं. ध्यान दें कि Cloud KMS की कुंजियों पर कुछ कार्रवाइयां करने में तीन घंटे लग सकते हैं. जैसे, किसी कुंजी को बंद करना या उसे मिटाना. Cloud Firestore को तब तक किसी बदलाव का पता नहीं चलता, जब तक वह Cloud 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 के बैकअप के बारे में ज़्यादा जानने के लिए, डेटा का बैक अप लेना और उसे वापस लाना लेख पढ़ें.
बैकअप से वापस लाया गया डेटाबेस, डिफ़ॉल्ट रूप से एन्क्रिप्ट करने के उसी तरीके का इस्तेमाल करता है जो बैकअप के लिए इस्तेमाल किया गया था. डेटाबेस को वापस लाने के दौरान, एन्क्रिप्ट करने का कोई दूसरा तरीका चुना जा सकता है. इसके लिए, इनमें से कोई एक तरीका अपनाएं:
- नई कुंजी के साथ सीएमईके डेटाबेस में वापस लाना.
- किसी ऐसे नॉन-सीएमईके डेटाबेस में डेटा वापस लाना जो Google के डिफ़ॉल्ट एन्क्रिप्शन का इस्तेमाल करता है.
- डेटाबेस को ऐसे डेटाबेस में वापस लाएं जो बैकअप के लिए इस्तेमाल किए गए एन्क्रिप्शन का इस्तेमाल करता हो.
बैकअप से Cloud Firestore डेटाबेस को वापस लाने के बारे में ज़्यादा जानने के लिए, डेटाबेस के बैकअप से डेटा वापस लाना लेख पढ़ें. बैकअप से, सीएमईके से सुरक्षित किए गए Cloud Firestore डेटाबेस को वापस लाने के बारे में ज़्यादा जानने के लिए, सीएमईके से सुरक्षित किए गए डेटाबेस को वापस लाना लेख पढ़ें.
क्लोन बनाएं
डिफ़ॉल्ट रूप से, किसी दूसरे डेटाबेस से क्लोन किया गया डेटाबेस, एन्क्रिप्ट करने के लिए उसी तरीके का इस्तेमाल करता है जिसका इस्तेमाल सोर्स डेटाबेस करता है. डेटाबेस को क्लोन करते समय, एन्क्रिप्ट करने का कोई दूसरा तरीका तय किया जा सकता है. इसके लिए, इनमें से कोई एक तरीका अपनाएं:
- नई कुंजी का इस्तेमाल करके, सीएमईके डेटाबेस में क्लोन करें.
- किसी ऐसे नॉन-सीएमईके डेटाबेस में क्लोन करें जो Google के डिफ़ॉल्ट एन्क्रिप्शन का इस्तेमाल करता है.
- (डिफ़ॉल्ट) किसी ऐसे डेटाबेस में क्लोन करें जो सोर्स डेटाबेस की तरह ही एन्क्रिप्शन का इस्तेमाल करता है.
Cloud Firestore डेटाबेस को क्लोन करने के बारे में ज़्यादा जानने के लिए, डेटाबेस को क्लोन करना लेख पढ़ें. सीएमईके से सुरक्षित किए गए Cloud Firestore डेटाबेस को क्लोन करने के बारे में ज़्यादा जानने के लिए, सीएमईके से सुरक्षित किए गए डेटाबेस को क्लोन करना लेख पढ़ें.
मुख्य ट्रैकिंग
कुंजी ट्रैकिंग का इस्तेमाल करके, उन संसाधनों को देखा जा सकता है जिन्हें कोई कुंजी सुरक्षित रखती है. उदाहरण के लिए, Cloud Firestore डेटाबेस. कुंजी को ट्रैक करने के बारे में ज़्यादा जानने के लिए, कुंजी के इस्तेमाल की जानकारी देखें.
सीएमईके और कुंजी की उपलब्धता
कुंजियां उपलब्ध न होने या बंद होने पर, सीएमईके की सुविधा वाले डेटाबेस में ये समस्याएं आ सकती हैं:
- सीएमईके की सुविधा वाले डेटाबेस पर, Cloud Firestore के लिए पिछले समय की रिकवरी (पीआईटीआर) की सेटिंग बदली जा सकती हैं. भले ही, कुंजी उपलब्ध न हो. ऐसा इसलिए, क्योंकि पीआईटीआर की सेटिंग, डेटाबेस का मेटाडेटा होती हैं. इन्हें सीएमईके से एन्क्रिप्ट नहीं किया जाता.
- आपके पास ऐसे सीएमईके डेटाबेस को मिटाने का विकल्प होता है जिसमें कुंजियां उपलब्ध नहीं हैं.
- सीएमईके की सुविधा वाला डेटाबेस बनाने पर, बंद की गई कुंजियां Google Cloud Console में उपलब्ध कुंजियों की सूची में नहीं दिखती हैं. अगर आपने मैन्युअल तरीके से ऐसी कुंजी डाली है जो बंद है, तो डेटाबेस बनाने की प्रोसेस पूरी नहीं हो पाएगी. साथ ही, आपको
FAILED_PRECONDITIONगड़बड़ी 400 दिखेगी.
सीमाएं
- सीएमईके से सुरक्षित किए गए डेटाबेस के लिए, कुंजी को नहीं बदला जा सकता. कुंजियों को रोटेट, चालू, और बंद किया जा सकता है.
- सीएमईके से सुरक्षित किए गए डेटाबेस, सिर्फ़ इकाई और दस्तावेज़ के डेटा के लिए Key Visualizer के साथ काम करते हैं. ये इंडेक्स डेटा के लिए काम नहीं करते.
- मौजूदा डेटाबेस पर सीएमईके को चालू नहीं किया जा सकता. सीएमईके को सिर्फ़ नए डेटाबेस पर चालू किया जा सकता है. साथ ही, डेटाबेस बनाते समय इसे चालू करना ज़रूरी है. किसी मौजूदा नॉन-सीएमईके डेटाबेस में मौजूद डेटा को सीएमईके से सुरक्षित डेटाबेस में माइग्रेट करने के लिए, अपना डेटा एक्सपोर्ट करें. इसके बाद, डेटा को सीएमईके से सुरक्षित नए डेटाबेस में इंपोर्ट करें. आपके पास नॉन-सीएमईके डेटाबेस से डेटा को सीएमईके डेटाबेस में वापस लाने या क्लोन करने का विकल्प भी होता है.
- Cloud Firestore, सीएमईके से सुरक्षित किए गए कुछ ही डेटाबेस के साथ काम करता है.
- Cloud Functions (1st gen) इंटिग्रेशन के साथ, सीएमईके सुरक्षा की सुविधा काम नहीं करती. अगर आपको सीएमईके की सुरक्षा चाहिए, तो Cloud Run फ़ंक्शन Firestore ट्रिगर (दूसरी जनरेशन) का इस्तेमाल करें.
सीएमईके से सुरक्षित किए गए डेटाबेस से डेटा कैसे बाहर जा सकता है
आपके ऐप्लिकेशन से कॉपी किए गए डेटा को, उपयोगकर्ता अपनी पसंद के मुताबिक सेव कर सकते हैं. Cloud Firestore डेटा को ऐक्सेस करने वाले किसी भी ऐप्लिकेशन के लिए, सुरक्षा से जुड़े सही कंट्रोल ज़रूरी हैं. इससे यह पक्का किया जा सकता है कि डेटा को सिर्फ़ वे लोग ऐक्सेस कर पाएं जिनके पास इसकी अनुमति है. ज़्यादा जानकारी के लिए, सुरक्षा के नियम और IAM देखें.
सीएमईके से सुरक्षित किए गए डेटाबेस के डेटा को, सीएमईके से सुरक्षित नहीं किए गए डेटाबेस में ट्रांसफ़र किया जा सकता है. इसके लिए, बैकअप लें और उसे रिस्टोर करें, क्लोन करें या इंपोर्ट करें और एक्सपोर्ट करें का इस्तेमाल करें. सही IAM कंट्रोल का इस्तेमाल करें, ताकि सिर्फ़ अनुमति पा चुके उपयोगकर्ताओं को ही ये कार्रवाइयां करने की अनुमति मिले. इसके अलावा, सीएमईके संगठन की नीति की पाबंदियों का इस्तेमाल करके, यह ज़रूरी किया जा सकता है कि डेटा वापस पाने या क्लोन करने से बनाए गए सभी डेटाबेस और इंपोर्ट के लिए इस्तेमाल की जाने वाली सभी Cloud Storage बकेट, सीएमईके से सुरक्षित हों.