सुरक्षित करने वाली ऐसी कुंजियां जिन्हें ग्राहक मैनेज करता है (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 डेटाबेस को किए जाने वाले किसी भी कॉल के लिए, The customer-managed encryption key required by the requested resource is not accessible मैसेज के साथ FAILED_PRECONDITION गड़बड़ी का मैसेज दिखता है. इसमें डेटा को पढ़ने, लिखने, और क्वेरी करने के लिए किए जाने वाले कॉल भी शामिल हैं.

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

कुंजियां तब उपलब्ध नहीं मानी जाती हैं, जब जान-बूझकर 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 बकेट और डेटा वापस पाने या क्लोन करने से बनाए गए सभी डेटाबेस, सीएमईके से सुरक्षित हों.

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