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

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

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

आप सीखेंगे

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

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"

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

$ gcloud kms keys create "my-asymmetric-encryption-key" \
    --location "global" \
    --keyring "my-keyring" \
    --purpose "asymmetric-encryption" \
    --default-algorithm "rsa-decrypt-oaep-4096-sha512"

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

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

क्लाउड केएमएस से सार्वजनिक कुंजी डाउनलोड करें:

$ gcloud kms keys versions get-public-key "1" \
    --location "global" \
    --keyring "my-keyring" \
    --key "my-asymmetric-encryption-key" \
    --output-file ./key.pub

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

$ echo "my-contents" > ./data.txt
$ openssl pkeyutl -encrypt -pubin \
    -in ./data.txt \
    -inkey ./key.pub \
    -pkeyopt "rsa_padding_mode:oaep" \
    -pkeyopt "rsa_oaep_md:sha512" \
    -pkeyopt "rsa_mgf1_md:sha512" > ./data.txt.enc

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

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

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

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

एन्क्रिप्ट (सुरक्षित) करने के तरीके के उलट, एसिमेट्रिक क्लाउड केएमएस कुंजी की मदद से एन्क्रिप्ट (सुरक्षित) किए गए डेटा को डिक्रिप्ट करने के लिए, क्लाउड केएमएस सेवा का ऑनलाइन ऐक्सेस होना ज़रूरी है. gcloud कमांड लाइन टूल का इस्तेमाल करके, फ़ाइल से सादे टेक्स्ट को डिक्रिप्ट करें:

$ gcloud kms asymmetric-decrypt \


    --location "global" \
    --keyring "my-keyring" \
    --key "my-asymmetric-encryption-key" \
    --version "1" \
    --plaintext-file - \
    --ciphertext-file ./data.txt.enc

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

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

7. बधाई हो!

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

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

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

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

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

लाइसेंस

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