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

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

अगर आपके पास डेटा को सुरक्षित रखने वाली कुंजियों से जुड़ी, नियमों या कानूनों के पालन की कोई खास ज़रूरत है, तो 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 Firestore. Cloud Audit Logs की लागत एक अतिरिक्त खर्च है. हालांकि, क्रिप्टोग्राफ़िक कार्रवाइयों की अनुमानित संख्या को देखते हुए, यह भी आम तौर पर कम होती है.

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

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

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

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

  • ट्रांसफ़र किया जा रहा या मेमोरी में मौजूद डेटा
  • डेटाबेस का मेटाडेटा

कुंजी के उपलब्ध न होने की स्थिति को कैसे मैनेज किया जाता है

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

अगर सिस्टम को पता चलता है कि कुंजी उपलब्ध नहीं है, तो 10 मिनट के अंदर, Cloud Firestore डेटाबेस के लिए किए गए सभी कॉल, जैसे कि पढ़ने, लिखने, और क्वेरी करने के अनुरोध, FAILED_PRECONDITION गड़बड़ी दिखाते हैं. साथ ही, इनमें यह The customer-managed encryption key required by the requested resource is not accessible मैसेज दिखता है.

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

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

कुंजियों को किसी भी ऐसी स्थिति में उपलब्ध नहीं माना जाता है जिसमें Cloud Firestore को कुंजी ऐक्सेस करने की अनुमति नहीं होती. इनमें ये शामिल हैं:

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

किसी कुंजी को फिर से उपलब्ध कराने में, स्थिति के हिसाब से ये कार्रवाइयां शामिल होती हैं:

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

सीएमईके कुंजी को रोटेट करने पर, 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 (पहली पीढ़ी) के इंटिग्रेशन के साथ, सीएमईके की सुरक्षा की सुविधा उपलब्ध नहीं कराते. अगर आपको सीएमईके की सुरक्षा की सुविधा चाहिए, तो Cloud Run फ़ंक्शन के Firestore ट्रिगर (दूसरी पीढ़ी) का इस्तेमाल करें.

सीएमईके से सुरक्षित डेटाबेस से डेटा कैसे बाहर जा सकता है

  • आपके ऐप्लिकेशन से कॉपी किए गए डेटा को, उसके उपयोगकर्ता किसी भी तरीके से सेव कर सकते हैं. Cloud Firestore डेटा को ऐक्सेस करने वाले किसी भी ऐप्लिकेशन के लिए, सुरक्षा से जुड़े सही कंट्रोल ज़रूरी हैं. इससे यह पक्का किया जा सकता है कि डेटा को सिर्फ़ वे लोग ऐक्सेस कर पाएं जिनके पास इसकी अनुमति है. ज़्यादा जानकारी के लिए, सुरक्षा के नियम और IAM देखें.

  • सीएमईके से सुरक्षित डेटाबेस से डेटा को, नॉन-सीएमईके डेटाबेस में ले जाया जा सकता है. इसके लिए, बैकअप लेने और डेटा वापस पाने की सुविधा, क्लोन करने की सुविधा या इंपोर्ट और एक्सपोर्ट करने की सुविधा का इस्तेमाल किया जा सकता है. इन कार्रवाइयों के लिए, सिर्फ़ अनुमति वाले उपयोगकर्ताओं को अनुमति देने के लिए, IAM के सही कंट्रोल का इस्तेमाल करें. इसके अलावा, सीएमईके संगठन की नीति से जुड़ी पाबंदियों का इस्तेमाल करके, यह ज़रूरी किया जा सकता है कि वापस लाए गए या क्लोन किए गए सभी डेटाबेस और इंपोर्ट के लिए इस्तेमाल किए गए सभी Cloud Storage बकेट, सीएमईके से सुरक्षित हों.

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