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

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

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

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

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