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

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

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

তুমি শিখবে।

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

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

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

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

dMbN6g9RawQj_VXCSYpdYncY-DbaRzr2GbnwoV7jFf1u3avxJtmGPmKpMYgiaMH-qu80a_NJ9p2IIXFppYk8x3wyymZXavjglNLJhuXieCem56H30hwXtd8PvXGpXJO9gEUDu3cZw

ci9Oe6PgnbNuSYlMyvbXF1JdQyiHoEgnhl4PlV_MFagm2ppzhueRkqX4eLjJllZco_2zCp0V0bpTupUSKji9KkQyWqj11pqit1K1faS1V6aFxLpGtQd5Q55

8-tA_Lheyo8SscAVKrGii2coplQp2_D1Iosb2ViABY0UUO1A8cimXUu6Wf1R9zJIRExL5 OB2j946aIiFtyKTzxDcNnuznmR45vZ2HMoK3o67jxuoUJCAnqvEX6NgPGFjCVNgASc-lg

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

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

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

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

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

vezHz_9nBUSt_0pD8eMHkzgHehRa83ILgMpcztEJtGZspECiZTk47O02PYk6Zp7jyStful3AIDEZU8qcCNbiXF4WcpkUdJi2LoUbxTWg4cZ4skDnvGKNywBZlDBzzWha111IZ1KqXQ

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

wQQCzLZ7_omk2cuoBaKVPnniKDFG6MsP8h2OA0j3Iw9LRSFQ9TkD6Ccq4dcUASpoD5UKe1Ur7bIgYn5gAh2r6BlQDnpFmgyAtv9x2D6ppXS0pfjfxViuEfoetgLvgVeduekc2hgU2Q

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

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

ক্লাউড কেএমএস ব্যবহার করার আগে, আপনাকে প্রথমে আপনার প্রকল্পে পরিষেবাটি সক্ষম করতে হবে। এটি প্রতি প্রকল্পে কেবল একবার করতে হবে। ক্লাউড কেএমএস পরিষেবা সক্ষম করতে, নিম্নলিখিত কমান্ডটি চালান:

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

এটি সক্রিয় করতে এক মিনিট পর্যন্ত সময় লাগতে পারে। এটি সম্পন্ন হলে কমান্ডটি সাফল্যের রিপোর্ট করবে।

৪. KMS কী তৈরি করুন

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

এনক্রিপ্ট করা ডেটা (যা "ciphertext" নামেও পরিচিত) ডিস্কে 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 কমান্ড লাইন টুল ফাইল থেকে সাইফারটেক্সট পড়ে এবং ক্লাউড KMS ব্যবহার করে এটি ডিক্রিপ্ট করে। লক্ষ্য করুন এই উদাহরণে --plaintext-file আর্গুমেন্টটি - হিসাবে নির্দিষ্ট করা হয়েছে। এটি gcloud টার্মিনালে ফলাফল প্রিন্ট করার নির্দেশ দেয়।

কনসোলটি my-contents প্রিন্ট করবে, যা উপরের ফাইলের প্লেইনটেক্সট মান।

৭. কী ঘোরান

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

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

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

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

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

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

৮. অভিনন্দন!

আপনি ক্লাউড কেএমএস এপিআই সক্ষম করেছেন, একটি সিমেট্রিক এনক্রিপশন কী তৈরি করেছেন এবং ডেটা এনক্রিপ্ট এবং ডিক্রিপ্ট করেছেন! ক্লাউড কেএমএস একটি শক্তিশালী পণ্য এবং এনক্রিপশন/ডিক্রিপশন এর ক্ষমতার উপরিভাগকে কেবল স্ক্র্যাচ করে।

পরিষ্কার করা

যদি আপনার অন্বেষণ শেষ হয়ে যায়, তাহলে অনুগ্রহ করে আপনার প্রকল্পটি মুছে ফেলার কথা বিবেচনা করুন।

  • ক্লাউড প্ল্যাটফর্ম কনসোলে যান
  • আপনি যে প্রকল্পটি বন্ধ করতে চান তা নির্বাচন করুন, তারপর উপরে "মুছুন" এ ক্লিক করুন। এটি প্রকল্পটি মুছে ফেলার জন্য সময়সূচী করে।

আরও জানুন

লাইসেন্স

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