ক্লাউড কেএমএস দিয়ে ডেটা এনক্রিপ্ট এবং ডিক্রিপ্ট করুন

১. সংক্ষিপ্ত বিবরণ

ক্লাউড কেএমএস হলো একটি ক্লাউড-হোস্টেড কী ম্যানেজমেন্ট পরিষেবা, যা আপনাকে আপনার ক্লাউড পরিষেবাগুলির জন্য ক্রিপ্টোগ্রাফিক কীগুলি ঠিক অন-প্রিমিসেসের মতোই পরিচালনা করতে দেয়। এতে হার্ডওয়্যার-সমর্থিত কী-এর জন্য ক্লাউড এইচএসএম সহ বিভিন্ন ধরণের ও উৎসের কী ব্যবহার করে এনক্রিপশন, ডিক্রিপশন, সাইনিং এবং ভেরিফিকেশনের সুবিধা রয়েছে। এই টিউটোরিয়ালটি আপনাকে সিমেট্রিক ক্লাউড কেএমএস কী ব্যবহার করে ডেটা এনক্রিপ্ট এবং ডিক্রিপ্ট করার পদ্ধতি শেখাবে।

তুমি শিখবে

  • ক্লাউড কেএমএস এপিআই কীভাবে সক্রিয় করবেন
  • কীভাবে একটি ক্লাউড কেএমএস কী রিং তৈরি করবেন
  • সিমেট্রিক এনক্রিপশন/ডিক্রিপশনের জন্য কীভাবে একটি ক্লাউড কেএমএস ক্রিপ্টো কী তৈরি করবেন
  • একটি প্রতিসম ক্লাউড কেএমএস ক্রিপ্টো কী কীভাবে ঘোরান

২. সেটআপ এবং প্রয়োজনীয়তা

স্ব-গতিতে পরিবেশ সেটআপ

  1. ক্লাউড কনসোলে সাইন ইন করুন এবং একটি নতুন প্রজেক্ট তৈরি করুন অথবা বিদ্যমান কোনো প্রজেক্ট পুনরায় ব্যবহার করুন। (যদি আপনার আগে থেকে Gmail বা G Suite অ্যাকাউন্ট না থাকে, তবে আপনাকে অবশ্যই একটি তৈরি করতে হবে।)

dMbN6g9RawQj_VXCSYpdYncY-DbaRzr2GbnwoV7jFf1u3avxJtmGPmKpMYgiaMH-qu80a_NJ9p2IIXFppYk8x3wyymZXavjglNLJJhuXieCem56H30hwXtd8PvXGpXJO9gEUDu3cZw

ci9Oe6PgnbNuSYlMyvbXF1JdQyiHoEgnhl4PlV_MFagm2ppzhueRkqX4eLjJllZco_2zCp0V0bpTupUSKji9KkQyWqj11pqit1K1faS1V6aFxLpGtQd5Q55

8-tA_Lheyo8SscAVKrGii2coplQp2_D1Iosb2ViABY0UUO1A8cimXUu6Wf1R9zJIRExL5 OB2j946aIiFtyKTzxDcNnuznmR45vZ2HMoK3o67jxuoUJCAnqvEX6NgPGFjCVNgASc-lg

প্রজেক্ট আইডিটি মনে রাখবেন, যা সমস্ত গুগল ক্লাউড প্রজেক্ট জুড়ে একটি অনন্য নাম (উপরের নামটি ইতিমধ্যে ব্যবহৃত হয়েছে এবং আপনার জন্য কাজ করবে না, দুঃখিত!)। এই কোডল্যাবে এটিকে পরবর্তীতে PROJECT_ID হিসাবে উল্লেখ করা হবে।

  1. এরপরে, গুগল ক্লাউড রিসোর্স ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং চালু করতে হবে।

এই কোডল্যাবটি চালাতে খুব বেশি খরচ হওয়ার কথা নয়, এমনকি আদৌ কোনো খরচ নাও হতে পারে। "পরিষ্কার-পরিচ্ছন্নতা" (Cleaning up) বিভাগে দেওয়া নির্দেশাবলী অবশ্যই অনুসরণ করবেন, যেখানে রিসোর্স বন্ধ করার পরামর্শ দেওয়া হয়েছে, যাতে এই টিউটোরিয়ালের বাইরে আপনার কোনো বিল না আসে। গুগল ক্লাউডের নতুন ব্যবহারকারীরা ৩০০ মার্কিন ডলারের ফ্রি ট্রায়াল প্রোগ্রামের জন্য যোগ্য।

ক্লাউড শেল শুরু করুন

এই কোডল্যাবে আপনি ক্লাউড শেল ব্যবহার করবেন, যা গুগল ক্লাউডে চালিত একটি বিনামূল্যের ভার্চুয়ালাইজড পরিবেশ। জিসিপি কনসোল থেকে উপরের ডানদিকের টুলবারে থাকা ক্লাউড শেল আইকনে ক্লিক করুন:

vezHz_9nBUSt_0pD8eMHkzgHehRa83ILgMpcztEJtGZspECiZTk47O02PYk6Zp7jyStful3AIDEZU8qcCNbiXF4WcpkUdJi2LoUbxTWg4cZ4skDnvGKNywBZlDBzzWha111IZ1KqXQ

পরিবেশটি প্রস্তুত করতে এবং এর সাথে সংযোগ স্থাপন করতে মাত্র কয়েক মুহূর্ত সময় লাগবে। এটি শেষ হলে, আপনি এইরকম কিছু দেখতে পাবেন:

wQQCzLZ7_omk2cuoBaKVPnniKDFG6MsP8h2OA0j3Iw9LRSFQ9TkD6Ccq4dcUASPoD5UKe1Ur7bIgYn5gAh2r6BlQDnpFmgyAtv9x2D6ppXS0pfjfxViuEfoetgLvgVeduekc2hgU2Q

এই ভার্চুয়াল মেশিনটিতে আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুল লোড করা আছে। এটি একটি স্থায়ী ৫ জিবি হোম ডিরেক্টরি প্রদান করে এবং গুগল ক্লাউডে চলে, যা নেটওয়ার্ক পারফরম্যান্স ও অথেনটিকেশনকে ব্যাপকভাবে উন্নত করে। অন্য কোনো নির্দেশনা না থাকলে, সমস্ত কমান্ড এই শেল থেকেই চালান।

৩. ক্লাউড কেএমএস পরিষেবা সক্রিয় করুন

Cloud KMS ব্যবহার করার আগে, আপনাকে প্রথমে আপনার প্রোজেক্টে সার্ভিসটি এনাবল করতে হবে। প্রতি প্রোজেক্টে এটি শুধুমাত্র একবারই করতে হবে। Cloud KMS সার্ভিসটি এনাবল করতে, নিম্নলিখিত কমান্ডটি চালান:

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

এটি চালু হতে এক মিনিট পর্যন্ত সময় লাগতে পারে। প্রক্রিয়াটি শেষ হলে কমান্ডটি সফলতার বার্তা দেবে।

৪. কেএমএস কী তৈরি করুন

একটি ক্লাউড কেএমএস কী রিং তৈরি করুন। ক্লাউড কেএমএস-এ, কী রিং হলো ক্রিপ্টোগ্রাফিক কী-গুলোর একটি যৌক্তিক সংগ্রহ। কী রিং-টিতে কী-গুলো সম্পর্কে মেটাডেটা থাকে, যেমন তাদের অবস্থান। 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"

৫. ডেটা এনক্রিপ্ট করুন

এনক্রিপ্ট করার জন্য ডেটা সহ একটি ফাইল তৈরি করুন এবং ফাইলের ডেটা এনক্রিপ্ট করতে 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 ফাইলটি খোলেন, তাহলে লক্ষ্য করবেন যে এতে অদ্ভুত, মুদ্রণ-অযোগ্য অক্ষর রয়েছে। এর কারণ হলো, প্রাপ্ত ডেটা বাইনারি ফরম্যাটে থাকে।

ডাটাবেসে সাইফারটেক্সট সংরক্ষণ করার সময় বা HTTP অনুরোধের অংশ হিসেবে প্রেরণ করার সময়, ডেটা এনকোড করার প্রয়োজন হতে পারে। একটি প্রচলিত এনকোডিং পদ্ধতি হলো বেস৬৪ (base64)।

ক্লাউড কেএমএস আপনার দেওয়া কোনো প্লেইনটেক্সট সংরক্ষণ করে না। আপনাকে এই সাইফারটেক্সটটি একটি সুরক্ষিত স্থানে সংরক্ষণ করতে হবে, কারণ প্লেইনটেক্সট মানটি পুনরুদ্ধার করার জন্য এটির প্রয়োজন হবে।

৬. ডেটা ডিক্রিপ্ট করুন

gcloud কমান্ড লাইন টুল ব্যবহার করে ফাইল থেকে সাইফারটেক্সটটি ডিক্রিপ্ট করুন:

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

gcloud কমান্ড লাইন টুলটি ফাইল থেকে সাইফারটেক্সট পড়ে এবং ক্লাউড কেএমএস (Cloud KMS) ব্যবহার করে তা ডিক্রিপ্ট করে। লক্ষ্য করুন, এই উদাহরণে --plaintext-file আর্গুমেন্টটি - হিসেবে নির্দিষ্ট করা হয়েছে। এটি gcloud ফলাফলটি টার্মিনালে প্রিন্ট করার নির্দেশ দেয়।

কনসোল my-contents প্রিন্ট করবে, যা উপরের ফাইল থেকে নেওয়া একই প্লেইনটেক্সট ভ্যালু।

৭. কী ঘোরান

ক্লাউড কেএমএস-এ, একটি ক্রিপ্টো কী আসলে ক্রিপ্টো কী ভার্সনগুলোর একটি সংগ্রহ। কী রোটেশন করার জন্য আপনি নতুন ক্রিপ্টো কী ভার্সন তৈরি করতে পারেন। ক্লাউড কেএমএস একটি নির্দিষ্ট সময়সূচী অনুযায়ী স্বয়ংক্রিয়ভাবে কী রোটেশনও করতে পারে।

ম্যানুয়ালি একটি কী ঘোরানোর জন্য, একটি নতুন ক্রিপ্টো কী সংস্করণ তৈরি করুন এবং এটিকে প্রাথমিক সংস্করণ হিসেবে সেট করুন:

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

ভবিষ্যতে ডেটা এনক্রিপ্ট করার সমস্ত অনুরোধে এই নতুন কী ব্যবহার করা হবে। পূর্বে এনক্রিপ্ট করা ডেটা ডিক্রিপ্ট করার জন্য পুরোনো কীগুলো এখনও উপলব্ধ আছে। ক্লাউড কেএমএস প্রদত্ত সাইফারটেক্সটের উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে উপযুক্ত ডিক্রিপশন কী নির্ধারণ করে - ডিক্রিপশনের জন্য কোন ক্রিপ্টো কী সংস্করণ ব্যবহার করতে হবে তা আপনাকে নির্দিষ্ট করে বলতে হবে না।

ক্লাউড কেএমএস ব্যবহার করে পুরোনো ক্রিপ্টো কী ভার্সন দিয়ে এনক্রিপ্ট করা সাইফারটেক্সট ভ্যালু ডিক্রিপ্ট হওয়া থেকে আটকাতে, আপনি সেই ক্রিপ্টো কী ভার্সনটি নিষ্ক্রিয় বা ধ্বংস করতে পারেন। নিষ্ক্রিয় করা একটি পরিবর্তনযোগ্য প্রক্রিয়া, কিন্তু ধ্বংস করা স্থায়ী। একটি ভার্সন নিষ্ক্রিয় করতে:

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

৮. অভিনন্দন!

আপনি ক্লাউড কেএমএস এপিআই সক্রিয় করেছেন, একটি সিমেট্রিক এনক্রিপশন কী তৈরি করেছেন এবং ডেটা এনক্রিপ্ট ও ডিক্রিপ্ট করেছেন! ক্লাউড কেএমএস একটি শক্তিশালী পণ্য এবং এনক্রিপশন/ডিক্রিপশন এর সক্ষমতার একটি ক্ষুদ্র অংশ মাত্র।

পরিষ্কার করা

আপনার অনুসন্ধান শেষ হলে, অনুগ্রহ করে আপনার প্রজেক্টটি মুছে ফেলার কথা বিবেচনা করুন।

  • ক্লাউড প্ল্যাটফর্ম কনসোলে যান
  • যে প্রজেক্টটি বন্ধ করতে চান, সেটি নির্বাচন করুন, তারপর উপরে থাকা 'ডিলিট' বোতামে ক্লিক করুন। এটি প্রজেক্টটিকে মুছে ফেলার জন্য নির্ধারিত করে দেবে।

আরও জানুন

লাইসেন্স

এই কাজটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন ২.০ জেনেরিক লাইসেন্সের অধীনে রয়েছে।