क्लाउड केएमएस की मदद से डेटा एन्क्रिप्ट (सुरक्षित) और डिक्रिप्ट करें

1. खास जानकारी

क्लाउड केएमएस (KMS), क्लाउड पर होस्ट की जाने वाली कुंजी मैनेज करने वाली सेवा है. इससे क्लाउड सेवाओं के लिए क्रिप्टोग्राफ़िक कुंजियों को उसी तरह मैनेज किया जा सकता है जैसे कंपनी की इमारत में किया जाता है. इसमें हार्डवेयर-बैक्ड कुंजियों के लिए Cloud HSM के साथ-साथ कई तरह की कुंजी टाइप और सोर्स का इस्तेमाल करके, एन्क्रिप्ट (सुरक्षित) करने, डिक्रिप्ट करने, साइन करने, और पुष्टि करने की सुविधा शामिल है. इस ट्यूटोरियल में सिमेट्रिक क्लाउड केएमएस कुंजियों का इस्तेमाल करके, डेटा को एन्क्रिप्ट (सुरक्षित) और डिक्रिप्ट करने का तरीका बताया गया है.

आप सीखेंगे

  • क्लाउड केएमएस एपीआई को चालू करने का तरीका
  • क्लाउड केएमएस की रिंग बनाने का तरीका
  • सिमेट्रिक एन्क्रिप्शन या डिक्रिप्शन के लिए, क्लाउड केएमएस क्रिप्टो कुंजी बनाने का तरीका
  • क्लाउड केएमएस (KMS) क्रिप्टो कुंजी को सिमेट्रिक कुंजी को घुमाने का तरीका

2. सेटअप और ज़रूरी शर्तें

अपने हिसाब से एनवायरमेंट सेटअप करना

  1. Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. (अगर आपके पास पहले से Gmail या G Suite खाता नहीं है, तो आपको एक खाता बनाना होगा.)

dMbN6g9RawQj_VXCSYpdYncY-DbaRzr2GbnwoV7jFf1u3avxJtmGPmKpMYgiaMH-qu80a_NJ9p2IIXFppYk8x3wyymZXavjglNLJJhuXieCem56H30hwXtd8PvXGpXJO9gEUDu3cZw

ci9Oe6PgnbNuSYlMyvbXF1JdQyiHoEgnhl4PlV_MFagm2ppzhueRkqX4eLjJllZco_2zCp0V0bpTupUSKji9KkQyWqj11pqit1K1faS1V6aFxLGQdkuzGp4rsQTan7F01iePL5DtqQ

8-tA_Lheyo8SscAVKrGii2coplQp2_D1Iosb2ViABY0UUO1A8cimXUu6Wf1R9zJIRExL5OB2j946aIiFtyKTzxDcNnuznmR45vZ2HMoK3o67jxuoUJCAnqvEX6NgPGFjCVNgASc-lg

प्रोजेक्ट आईडी याद रखें. यह Google Cloud के सभी प्रोजेक्ट के लिए एक खास नाम होता है (ऊपर दिया गया नाम पहले ही ले लिया गया है और यह आपके लिए काम नहीं करेगा!). बाद में, इस कोडलैब को इस कोडलैब में PROJECT_ID के तौर पर दिखाया जाएगा.

  1. इसके बाद, आपको Google Cloud के संसाधनों का इस्तेमाल करने के लिए, Cloud Console में बिलिंग की सुविधा चालू करनी होगी.

इस कोडलैब का इस्तेमाल करने पर, आपको ज़्यादा पैसे नहीं चुकाने होंगे. "साफ़ करना" सेक्शन में दिए गए निर्देशों का पालन करना न भूलें सेक्शन में, संसाधनों को बंद करने का तरीका बताया गया है. इससे इस ट्यूटोरियल के अलावा बिलिंग की सुविधा नहीं मिलेगी. Google Cloud के नए उपयोगकर्ता, 300USD डॉलर के मुफ़्त में आज़माने वाले प्रोग्राम में हिस्सा ले सकते हैं.

Cloud Shell शुरू करना

इस कोडलैब में Cloud Shell का इस्तेमाल किया जा सकेगा. यह Google Cloud पर चलने वाला एक ऐसा वर्चुअल एनवायरमेंट है जिसे बिना किसी शुल्क के इस्तेमाल किया जा सकता है. GCP कंसोल में, सबसे ऊपर दाईं ओर मौजूद टूलबार पर क्लाउड शेल आइकॉन पर क्लिक करें:

vezHz_9nBUSt_0pD8eMHkzgHehRa83ILgMpcztEJtGZspECiZTk47O02PYk6Zp7jyStful3AIDEZU8qcCNbiXF4WcpkUdJi2LoUbxTWg4cZ4skDnvGKNywBZlDBzzWha111IZ1KqXQ

प्रावधान करने और एनवायरमेंट से कनेक्ट होने में कुछ ही समय लगेगा. उसके पूरा हो जाने पर, आपको कुछ ऐसा दिखाई देगा:

wQQCzLZ7_omk2cuoBaKVPnniKDFG6MsP8h2OA0j3Iw9LRSFQ9TkD6Ccq4dcUASPoD5UKe1Ur7bIgYn5gAh2r6BlQDnpFmgyAtv9x2D6ppXS0pfjfxViuEfoetgLvgVeduekc2hgU2Q

इस वर्चुअल मशीन में ऐसे सभी डेवलपमेंट टूल मौजूद हैं जिनकी आपको ज़रूरत पड़ेगी. यह पांच जीबी की स्थायी होम डायरेक्ट्री उपलब्ध कराता है और Google Cloud पर चलता है. यह नेटवर्क की परफ़ॉर्मेंस और पुष्टि करने की प्रक्रिया को बेहतर बनाता है. जब तक निर्देश न दिया जाए, इस शेल से सभी कमांड चलाएँ.

3. क्लाउड केएमएस सेवा चालू करें

क्लाउड केएमएस (KMS) का इस्तेमाल करने से पहले, आपको अपने प्रोजेक्ट में सेवा चालू करनी होगी. ऐसा हर प्रोजेक्ट के लिए सिर्फ़ एक बार करना होगा. क्लाउड केएमएस सेवा चालू करने के लिए, नीचे दिया गया निर्देश चलाएं:

$ gcloud services enable cloudkms.googleapis.com \
    --project "${GOOGLE_CLOUD_PROJECT}"

इसे चालू होने में एक मिनट लग सकता है. इस निर्देश के पूरा होने पर, यह पूरा हो जाएगा.

4. केएमएस कुंजी बनाएं

क्लाउड केएमएस की रिंग बनाएं. क्लाउड केएमएस में 'की रिंग', क्रिप्टोग्राफ़िक कुंजियों का एक लॉजिकल कलेक्शन होता है. की के रिंग में कुंजियों के बारे में मेटाडेटा होता है, जैसे कि उनकी जगह की जानकारी. global क्षेत्र में my-keyring नाम का एक की-रिंग बनाएं:

$ gcloud kms keyrings create "my-keyring" \
    --location "global"

अब आपने अभी-अभी जो की रिंग बनाई है उसमें encryption के मकसद से, my-symmetric-key नाम की एक क्रिप्टो कुंजी बनाएं.

$ gcloud kms keys create "my-symmetric-key" \
    --location "global" \
    --keyring "my-keyring" \
    --purpose "encryption"

5. डेटा एन्क्रिप्ट करें

एन्क्रिप्ट (सुरक्षित) करने के लिए, डेटा वाली फ़ाइल बनाएं और फ़ाइल में मौजूद डेटा को एन्क्रिप्ट करने के लिए, gcloud कमांड लाइन टूल का इस्तेमाल करें:

$ echo "my-contents" > ./data.txt
$ gcloud kms encrypt \
    --location "global" \
    --keyring "my-keyring" \
    --key "my-symmetric-key" \
    --plaintext-file ./data.txt \
    --ciphertext-file ./data.txt.enc

एन्क्रिप्ट (सुरक्षित) किया गया डेटा (जिसे "साइफ़रटेक्स्ट" भी कहा जाता है) डिस्क पर data.txt.enc में सेव किया जाता है. data.txt.enc फ़ाइल खोलने पर आप देखेंगे कि इसमें अजीब और प्रिंट न किए जा सकने वाले वर्ण हैं. इसकी वजह यह है कि इससे मिलने वाला डेटा बाइनरी फ़ॉर्मैट में होता है.

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

क्लाउड केएमएस आपका दिया गया कोई भी सादा टेक्स्ट सेव नहीं करता. आपको इस सादे टेक्स्ट को किसी सुरक्षित जगह पर सेव करना होगा, क्योंकि सादे टेक्स्ट की वैल्यू को फिर से पाने के लिए इसकी ज़रूरत होगी.

6. डेटा डिक्रिप्ट करें

gcloud कमांड लाइन टूल का इस्तेमाल करके, फ़ाइल से सादे टेक्स्ट को डिक्रिप्ट करें:

$ gcloud kms decrypt \
    --location "global" \
    --keyring "my-keyring" \
    --key "my-symmetric-key" \
    --plaintext-file - \
    --ciphertext-file ./data.txt.enc

gcloud कमांड लाइन टूल, फ़ाइल में मौजूद सादे टेक्स्ट को पढ़ता है और क्लाउड केएमएस का इस्तेमाल करके उसे डिक्रिप्ट करता है. ध्यान दें कि इस उदाहरण में, --plaintext-file आर्ग्युमेंट को - के तौर पर दिखाया गया है. इससे gcloud को निर्देश मिलता है कि वह नतीजा, टर्मिनल पर प्रिंट करे.

कंसोल, my-contents को प्रिंट करेगा. ऊपर दी गई फ़ाइल में, सादे टेक्स्ट वाली वैल्यू वही है.

7. कुंजियां घुमाएं

क्लाउड केएमएस में क्रिप्टो कुंजी, असल में क्रिप्टो कुंजी के वर्शन का कलेक्शन होती है. क्रिप्टोग्राफ़िक पासकोड का नया वर्शन बनाने के लिए, नए वर्शन बनाए जा सकते हैं. क्लाउड केएमएस शेड्यूल के हिसाब से कुंजियों को अपने-आप बदल भी सकता है.

किसी कुंजी को मैन्युअल तरीके से बदलने के लिए, क्रिप्टो कुंजी का नया वर्शन बनाएं और उसे मुख्य वर्शन के तौर पर सेट करें:

$ gcloud kms keys versions create \
    --location "global" \
    --keyring "my-keyring" \
    --key "my-symmetric-key" \
    --primary

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

पुराने क्रिप्टो कुंजी वर्शन का इस्तेमाल करके एन्क्रिप्ट (सुरक्षित) की गई एन्क्रिप्टेड वैल्यू को क्लाउड केएमएस (KMS) से डिक्रिप्ट होने से रोकने के लिए, क्रिप्टो पासकोड के उस वर्शन को बंद किया जा सकता है या बंद किया जा सकता है. बंद करने की प्रक्रिया पहले जैसी हो सकती है, जबकि बंद करना स्थायी होता है. किसी वर्शन को बंद करने के लिए:

$ gcloud kms keys versions disable "1" \
    --location "global" \
    --keyring "my-keyring" \
    --key "my-symmetric-key"

8. बधाई हो!

आपने Cloud KMS API को चालू किया, सिमेट्रिक एन्क्रिप्शन कुंजी बनाई, और एन्क्रिप्ट (सुरक्षित) और डिक्रिप्ट किया गया डेटा बनाया! क्लाउड केएमएस एक बेहतरीन प्रॉडक्ट है. इसे एन्क्रिप्ट (सुरक्षित)/डिक्रिप्ट (सुरक्षित) करने की सुविधा, इसकी सुविधाओं को बेहद कम कर देती है.

खाली करने के लिए जगह

अगर आपने एक्सप्लोर कर लिया है, तो कृपया अपना प्रोजेक्ट मिटाने के बारे में सोचें.

  • Cloud Platform कंसोल पर जाएं
  • वह प्रोजेक्ट चुनें जिसे शट डाउन करना है. इसके बाद, "मिटाएं" पर क्लिक करें क्लिक करें. इससे प्रोजेक्ट, मिटाने के लिए शेड्यूल हो जाता है.

ज़्यादा जानें

लाइसेंस

इस काम को क्रिएटिव कॉमंस एट्रिब्यूशन 2.0 जेनरिक लाइसेंस के तहत लाइसेंस मिला है.