Cloud KMS দিয়ে শুরু করুন

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

এই টিউটোরিয়ালে, আপনি শিখবেন কীভাবে ক্লাউড সিকিউরিটি এবং প্রাইভেসি এপিআই-এর উন্নত বৈশিষ্ট্যগুলি ব্যবহার করতে হয়, যার মধ্যে রয়েছে:

  • একটি নিরাপদ ক্লাউড স্টোরেজ বালতি সেট আপ করা হচ্ছে
  • ক্লাউড কেএমএস ব্যবহার করে কী এবং এনক্রিপ্ট করা ডেটা পরিচালনা করা
  • ক্লাউড স্টোরেজ অডিট লগ দেখা হচ্ছে

আপনি এনরন কর্পাস থেকে সংক্ষিপ্ত ডেটা নেবেন, এটি এনক্রিপ্ট করবেন এবং ক্লাউড স্টোরেজে লোড করবেন।

তুমি শিখবে

  • কীভাবে ডেটা এনক্রিপ্ট করবেন এবং কী ম্যানেজমেন্ট সার্ভিস (কেএমএস) ব্যবহার করে এনক্রিপশন কীগুলি পরিচালনা করবেন

আপনি ব্যবহার করবেন

  • ক্লাউড কেএমএস
  • মেঘ স্টোরেজ
  • ক্লাউড SDK

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

আপনার যদি ইতিমধ্যে একটি Google অ্যাকাউন্ট না থাকে (Gmail বা Google Apps), তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে। Google ক্লাউড প্ল্যাটফর্ম কনসোলে সাইন-ইন করুন ( console.cloud.google.com ) এবং একটি নতুন প্রকল্প তৈরি করুন:

2016-02-10 12:45:26.png এর স্ক্রিনশট

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

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

এই কোডল্যাবের মাধ্যমে চালানোর জন্য আপনার কয়েক ডলারের বেশি খরচ করা উচিত নয়, তবে আপনি যদি আরও সংস্থান ব্যবহার করার সিদ্ধান্ত নেন বা আপনি যদি সেগুলিকে চলমান রেখে দেন তবে এটি আরও বেশি হতে পারে (এই নথির শেষে "পরিষ্কার" বিভাগটি দেখুন)।

Google ক্লাউড প্ল্যাটফর্মের নতুন ব্যবহারকারীরা $300 বিনামূল্যের ট্রায়ালের জন্য যোগ্য৷

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

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

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

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

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

$ export BUCKET_NAME=${GOOGLE_CLOUD_PROJECT}_enron_emails

তারপর বালতি তৈরি করুন:

$ gsutil mb gs://${BUCKET_NAME}

এনরন কর্পাস হল এনরন কর্পোরেশনের 158 জন কর্মচারী দ্বারা তৈরি করা 600,000-এর বেশি ইমেলের একটি বড় ডাটাবেস। এই ডেটা gs://enron_emails/ নামের ক্লাউড স্টোরেজ বাকেটটিতে কপি করা হয়েছে।

স্থানীয়ভাবে একটি ইমেল ফাইল ডাউনলোড করুন:

$ gsutil cp gs://enron_emails/allen-p/inbox/1. . # <-- don't forget the dot!

ডাউনলোড করা ফাইলটি যাচাই করতে পরীক্ষা করুন যে এটি আসলে একটি ইমেল:

$ tail 1.

ইমেলটিতে একটি বার্তা থাকবে যেমন:

Attached is the Delta position for 1/18...
# ...

ইমেল ছাড়াও, বালতিতে ছবিও রয়েছে। এই টিউটোরিয়ালটি প্লেইনটেক্সট ইমেল এবং ছবি উভয়ই ব্যবহার করে।

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

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

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

একটি ক্লাউড KMS কী রিং তৈরি করুন। ক্লাউড কেএমএসে, একটি কী রিং হল ক্রিপ্টোগ্রাফিক কীগুলির একটি যৌক্তিক সংগ্রহ। কী রিং-এ কীগুলি সম্পর্কে মেটাডেটা থাকে যেমন তাদের অবস্থান। global অঞ্চলে my-keyring নামে একটি কী রিং তৈরি করুন:

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

এখন আপনার তৈরি করা কী রিংয়ের ভিতরে উদ্দেশ্য encryption সহ enron-emails নামে একটি ক্রিপ্টো কী তৈরি করুন।

$ gcloud kms keys create "enron-emails" \
    --location "global" \
    --keyring "my-keyring" \
    --purpose "encryption"

ক্রিপ্টোগ্রাফিক কী ওয়েব UI খুলুন এবং নতুন তৈরি সংস্থানগুলি দেখুন। এটি প্রধান মেনুতে IAM এবং অ্যাডমিনের অধীনে উপলব্ধ।

আপনি ক্লাউড কনসোলে কী রিং এবং ক্রিপ্টো কী দেখতে এবং পরিচালনা করতে পারেন।

ক্লাউড কেএমএস ব্যবহার করে আমরা আগে ডাউনলোড করা ইমেলের বিষয়বস্তু এনক্রিপ্ট করুন। এই টিউটোরিয়ালটি gcloud কমান্ড লাইন টুল ব্যবহার করে, কিন্তু আপনি Cloud KMS API ব্যবহার করে ডেটা এনক্রিপ্ট করতে পারেন।

$ gcloud kms encrypt \
    --location "global" \
    --keyring "my-keyring" \
    --key "enron-emails" \
    --plaintext-file ./1. \
    --ciphertext-file ./1.enc

এটি ডিস্ক 1.enc এ একটি নতুন ফাইল তৈরি করবে, যাতে এনক্রিপ্ট করা ফাইলের বিষয়বস্তু রয়েছে। এখন যেহেতু ডেটা ক্লাউড KMS-এর সাথে এনক্রিপ্ট করা হয়েছে, ক্লাউড স্টোরেজ বাকেটে এনক্রিপ্ট করা ফাইলটি আপলোড করুন।

$ gsutil cp ./1.enc gs://${BUCKET_NAME}

ক্লাউড কেএমএস Google ক্লাউড আইডেন্টিটি এবং অ্যাক্সেস ম্যানেজমেন্ট (IAM) এর সাথে একীভূত। ক্লাউড কেএমএস আইএএম ভূমিকাগুলি মূলত দুটি বিভাগে বিভক্ত:

  • কী পরিচালনা করার অনুমতি
  • কী ব্যবহার করার অনুমতি

উদাহরণস্বরূপ, roles/cloudkms.admin ভূমিকা ধারককে কী রিং, ক্রিপ্টো কী তৈরি করতে, IAM নীতি সেট করতে এবং পরিচালনা-সম্পর্কিত ক্রিয়াকলাপ সম্পাদন করতে দেয়। roles/cloudkms.cryptoKeyEncrypterDecrypter ধারককে ডেটা এনক্রিপ্ট এবং ডিক্রিপ্ট করার অনুমতি দেয়, কিন্তু এটি পরিচালনার অনুমতি অন্তর্ভুক্ত করে না।

IAM ভূমিকা তাদের মূল সম্পদ দ্বারা উত্তরাধিকারসূত্রে প্রাপ্ত হয়। Google ক্লাউড প্রজেক্টে যদি কারো roles/cloudkms.admin ভূমিকা থাকে, তাহলে তারা সেই প্রোজেক্টের সমস্ত কীগুলির একজন প্রশাসক৷ একটি কী রিং-এ তাদের roles/cloudkms.admin , তারা সেই কী রিং-এর সমস্ত কীগুলির প্রশাসক৷ যদি তাদের একটি একক ক্রিপ্টো কী-তে roles/cloudkms.admin থাকে, তবে তারা শুধুমাত্র সেই কীটির একজন প্রশাসক।

এই অনুশীলনের জন্য, আপনার পরিচয় ব্যবহার করুন:

$ export MY_IDENTITY=you@gmail.com # or you@example.com

gcloud কমান্ড লাইন টুল ব্যবহার করে উপরে তৈরি করা কী রিং-এ ক্লাউড কেএমএস সংস্থানগুলি পরিচালনা করার ক্ষমতা পরিচয়টি বরাদ্দ করুন:

$ gcloud kms keyrings add-iam-policy-binding "my-keyring" \
    --location "global" \
    --member "user:${MY_IDENTITY}" \
    --role "roles/cloudkms.admin"

roles/cloudkms.admin ভূমিকার মধ্যে কী ব্যবহার করার অনুমতি নেই, শুধুমাত্র সেগুলি পরিচালনা করার জন্য। enron-emails ক্রিপ্টো কী ব্যবহার করে ডেটা এনক্রিপ্ট এবং ডিক্রিপ্ট করার ক্ষমতা আপনার পরিচয় প্রদান করতে:

$ gcloud kms keys add-iam-policy-binding "enron-emails" \
    --location "global" \
    --keyring "my-keyring" \
    --member "user:${MY_IDENTITY}" \
    --role "roles/cloudkms.cryptoKeyEncrypterDecrypter"

মনে রাখবেন যে প্রথম কমান্ডটি কী রিং-এ roles/cloudkms.admin ভূমিকা প্রদান করে, যেটিতে যেকোনো শিশু ক্রিপ্টো কী সংস্থান অন্তর্ভুক্ত থাকবে। দ্বিতীয় কমান্ডটি roles/cloudkms.cryptoKeyEncrypterDecrypter করে, কিন্তু শুধুমাত্র enron-emails ক্রিপ্টো কী-তে।

এছাড়াও আপনি ক্লাউড কনসোলে ক্লাউড KMS UI-তে ভূমিকা দেখতে এবং বরাদ্দ করতে পারেন।

একটি একক ফাইল এনক্রিপ্ট করার পাশাপাশি, আপনি কিছু স্ক্রিপ্টিং সহ ফাইলগুলির একটি সংগ্রহও এনক্রিপ্ট করতে পারেন। এই উদাহরণটি allen-p- এর জন্য সমস্ত ইমেল স্ট্রীম করে, সেগুলিকে এনক্রিপ্ট করে এবং ফলস্বরূপ এনক্রিপ্ট করা মানগুলিকে ক্লাউড স্টোরেজ বালতিতে আপলোড করে:

DIR="gs://enron_emails/allen-p"
for file in $(gsutil ls ${DIR}/**); do
  ENC_NAME="$(basename ${file}).enc"
  gsutil cat ${file} \
  | \

  gcloud kms encrypt \
    --location "global" \
    --keyring "my-keyring" \
    --key "enron-emails" \
    --plaintext-file - \
    --ciphertext-file - \
    | \

    gsutil -q cp - gs://${BUCKET_NAME}/${ENC_NAME}
    echo "Copied ${ENC_NAME}"
done

এটি নমুনা ক্লাউড স্টোরেজ বাকেটের প্রদত্ত ডিরেক্টরির সমস্ত ফাইলের উপর পুনরাবৃত্তি করে, ক্লাউড কেএমএস ব্যবহার করে সেগুলিকে এনক্রিপ্ট করে এবং আপনার Google ক্লাউড স্টোরেজে আপলোড করে৷

স্ক্রিপ্ট সম্পূর্ণ হওয়ার পরে, আপনি ক্লাউড স্টোরেজ UI- তে এনক্রিপ্ট করা ফাইলগুলি দেখতে পারেন। আপনি এই মত কিছু দেখতে হবে:

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

KMS-এ যেকোন রিসোর্সের কার্যকলাপ দেখতে, কী রিং-এ ক্লিক করুন এবং View Activity নির্বাচন করুন। এটি আপনাকে ক্লাউড অ্যাক্টিভিটি UI-এ নিয়ে যাবে, যেখানে আপনি কীরিং-এ তৈরি করা এবং সমস্ত পরিবর্তনগুলি দেখতে পাবেন।

আপনি ক্লাউড কেএমএস ব্যবহার করে সফলভাবে ডেটা এনক্রিপ্ট করেছেন এবং ক্লাউড স্টোরেজে এনক্রিপ্ট করা ডেটা সংরক্ষণ করেছেন৷

পরিষ্কার কর

এই টিউটোরিয়ালের সময় তৈরি সংস্থানগুলি প্রকাশ করুন। আগে তৈরি করা ক্লাউড স্টোরেজ বালতি মুছুন:

$ gsutil rm -r gs://${BUCKET_NAME}

ক্লাউড KMS সম্পদ মুছে ফেলা যাবে না. যাইহোক, আপনি মূল উপাদানটি ধ্বংস করতে পারেন তাই এটি আবার ব্যবহার করা যাবে না:

$ gcloud kms keys versions destroy "1" \
    --location "global" \
    --key "enron-emails" \
    --keyring "my-keyring"

আমরা আচ্ছাদিত

  • ক্লাউড কেএমএস অনুমতিগুলি পরিচালনা করতে ক্লাউড আইএএম ব্যবহার করে৷
  • ডেটা এনক্রিপ্ট করতে ক্লাউড কেএমএস ব্যবহার করা হচ্ছে
  • এনক্রিপ্ট করা ডেটা সঞ্চয় করতে ক্লাউড স্টোরেজ ব্যবহার করা
  • কী এবং কী রিংয়ের জন্য সমস্ত কার্যকলাপ দেখতে ক্লাউড অডিট লগিং ব্যবহার করে

পরবর্তী পদক্ষেপ

  • BigQuery-এর মতো ডাটাবেসে একটি কলাম এনক্রিপ্ট করতে Cloud KMS ব্যবহার করুন
  • আপনার ক্লাউড KMS কীগুলিতে একটি স্বয়ংক্রিয় ঘূর্ণন সময়সূচী সেট করুন

আরও জানুন

লাইসেন্স

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