1. ওভারভিউ
ক্লাউড কেএমএস হল একটি ক্লাউড-হোস্টেড কী ম্যানেজমেন্ট পরিষেবা যা আপনাকে আপনার ক্লাউড পরিষেবাগুলির জন্য ক্রিপ্টোগ্রাফিক কীগুলি পরিচালনা করতে দেয় যেভাবে আপনি প্রাঙ্গনে করেন। এতে হার্ডওয়্যার-ব্যাকড কীগুলির জন্য ক্লাউড এইচএসএম সহ বিভিন্ন কী প্রকার এবং উত্স ব্যবহার করে এনক্রিপশন, ডিক্রিপশন, স্বাক্ষর এবং যাচাইকরণের জন্য সমর্থন অন্তর্ভুক্ত রয়েছে। এই টিউটোরিয়ালটি আপনাকে শেখায় কিভাবে অপ্রতিসম ক্লাউড KMS কী ব্যবহার করে ডেটা এনক্রিপ্ট এবং ডিক্রিপ্ট করতে হয়।
আপনি শিখবেন
- ক্লাউড কেএমএস এপিআই কীভাবে সক্ষম করবেন
- কিভাবে একটি কী রিং তৈরি করবেন
- অপ্রতিসম এনক্রিপশন/ডিক্রিপশনের জন্য কীভাবে একটি ক্রিপ্টো কী তৈরি করবেন
2. সেটআপ এবং প্রয়োজনীয়তা
স্ব-গতিসম্পন্ন পরিবেশ সেটআপ
- ক্লাউড কনসোলে সাইন ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা বিদ্যমান একটি পুনরায় ব্যবহার করুন৷ (যদি আপনার ইতিমধ্যেই একটি Gmail বা G Suite অ্যাকাউন্ট না থাকে তবে আপনাকে অবশ্যই একটি তৈরি করতে হবে।)
প্রজেক্ট আইডিটি মনে রাখবেন, সমস্ত Google ক্লাউড প্রকল্প জুড়ে একটি অনন্য নাম (উপরের নামটি ইতিমধ্যে নেওয়া হয়েছে এবং আপনার জন্য কাজ করবে না, দুঃখিত!)। এটি পরে এই কোডল্যাবে PROJECT_ID
হিসাবে উল্লেখ করা হবে।
- এর পরে, Google ক্লাউড সংস্থানগুলি ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে৷
এই কোডল্যাবের মাধ্যমে চালানোর জন্য খুব বেশি খরচ করা উচিত নয়, যদি কিছু থাকে। "ক্লিনিং আপ" বিভাগে যে কোনও নির্দেশাবলী অনুসরণ করতে ভুলবেন না যা আপনাকে কীভাবে সংস্থানগুলি বন্ধ করতে হবে তা পরামর্শ দেয় যাতে আপনি এই টিউটোরিয়ালের বাইরে বিলিং করতে না পারেন৷ Google ক্লাউডের নতুন ব্যবহারকারীরা $300USD ফ্রি ট্রায়াল প্রোগ্রামের জন্য যোগ্য৷
ক্লাউড শেল শুরু করুন
এই কোডল্যাবে আপনি ক্লাউড শেল ব্যবহার করবেন, একটি বিনামূল্যের ভার্চুয়ালাইজড পরিবেশ যা Google ক্লাউডে চলছে। GCP কনসোল থেকে উপরের ডানদিকে টুলবারে ক্লাউড শেল আইকনে ক্লিক করুন:
পরিবেশের ব্যবস্থা করতে এবং সংযোগ করতে এটি শুধুমাত্র কয়েক মুহূর্ত নিতে হবে। এটি সমাপ্ত হলে, আপনি এই মত কিছু দেখতে হবে:
এই ভার্চুয়াল মেশিনটি আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুল দিয়ে লোড করা হয়েছে। এটি একটি ক্রমাগত 5GB হোম ডিরেক্টরি অফার করে এবং Google ক্লাউডে চলে, যা নেটওয়ার্ক কর্মক্ষমতা এবং প্রমাণীকরণকে ব্যাপকভাবে উন্নত করে। অন্যথায় নির্দেশ না দিলে, এই শেল থেকে সমস্ত কমান্ড চালান।
3. ক্লাউড KMS পরিষেবা সক্ষম করুন৷
আপনি ক্লাউড কেএমএস ব্যবহার করার আগে, আপনাকে প্রথমে আপনার প্রকল্পে পরিষেবাটি সক্ষম করতে হবে৷ এটি শুধুমাত্র প্রতি প্রকল্পের একবার করা প্রয়োজন। ক্লাউড কেএমএস পরিষেবা সক্ষম করতে, নিম্নলিখিত কমান্ডটি চালান:
$ gcloud services enable cloudkms.googleapis.com \ --project "${GOOGLE_CLOUD_PROJECT}"
এটি সক্ষম হতে এক মিনিট পর্যন্ত সময় লাগতে পারে৷ কমান্ডটি শেষ হলে সাফল্যের প্রতিবেদন করবে।
4. KMS কী তৈরি করুন
একটি ক্লাউড KMS কী রিং তৈরি করুন। ক্লাউড কেএমএসে, একটি কী রিং হল ক্রিপ্টোগ্রাফিক কীগুলির একটি যৌক্তিক সংগ্রহ। কী রিং-এ কীগুলি সম্পর্কে মেটাডেটা থাকে যেমন তাদের অবস্থান। 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 ক্লাউড 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
ফাইলটি খুললে, আপনি লক্ষ্য করবেন যে এটিতে অদ্ভুত, অমুদ্রিত অক্ষর রয়েছে। এর কারণ হল প্রাপ্ত তথ্য বাইনারি বিন্যাসে ।
ডাটাবেসে সাইফারটেক্সট সংরক্ষণ করার সময় বা HTTP অনুরোধের অংশ হিসাবে এটি প্রেরণ করার সময়, আপনাকে ডেটা এনকোড করতে হতে পারে। সাইফারটেক্সটের জন্য সবচেয়ে সাধারণ এনকোডিং প্রক্রিয়া হল 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. অভিনন্দন!
আপনি ক্লাউড কেএমএস এপিআই সক্ষম করেছেন, একটি অ্যাসিমেট্রিক এনক্রিপশন কী তৈরি করেছেন এবং এনক্রিপ্ট করা এবং ডিক্রিপ্ট করা ডেটা! ক্লাউড কেএমএস একটি শক্তিশালী পণ্য এবং এনক্রিপশন/ডিক্রিপশন শুধুমাত্র এর ক্ষমতার পৃষ্ঠকে স্ক্র্যাচ করে।
পরিষ্কার করুন
আপনি যদি অন্বেষণ শেষ করে থাকেন, তাহলে অনুগ্রহ করে আপনার প্রকল্প মুছে ফেলার কথা বিবেচনা করুন।
- ক্লাউড প্ল্যাটফর্ম কনসোলে যান
- আপনি যে প্রকল্পটি বন্ধ করতে চান তা নির্বাচন করুন, তারপরে শীর্ষে "মুছুন" এ ক্লিক করুন৷ এটি মুছে ফেলার জন্য প্রকল্পের সময়সূচী।
আরও জানুন
লাইসেন্স
এই কাজটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন 2.0 জেনেরিক লাইসেন্সের অধীনে লাইসেন্সপ্রাপ্ত।