গোপনীয় স্থান ব্যবহার করে শেয়ার করা ডেটা সুরক্ষিত করুন

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

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

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

আপনার যা যা লাগবে

আপনি যা শিখবেন

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

এই কোডল্যাবে আপনি প্রাইমাস এবং সেকেন্ডাস ব্যাংকের মধ্যে একটি গোপনীয় পরিসর (Confidential Space) স্থাপন করবেন, যার মাধ্যমে একে অপরের সাথে সম্পূর্ণ অ্যাকাউন্ট তালিকা শেয়ার না করেই তাদের সাধারণ গ্রাহকদের চিহ্নিত করা যাবে। এর জন্য নিম্নলিখিত ধাপগুলো অনুসরণ করতে হবে:

  • ধাপ ১: প্রাইমাস এবং সেকেন্ডাস ব্যাংকের জন্য প্রয়োজনীয় ক্লাউড রিসোর্স সেট আপ করুন। এই ক্লাউড রিসোর্সগুলোর মধ্যে রয়েছে প্রাইমাস এবং সেকেন্ডাস ব্যাংকের জন্য ক্লাউড স্টোরেজ বাকেট, কেএমএস কী, ওয়ার্কলোড আইডেন্টিটি পুল এবং সার্ভিস অ্যাকাউন্ট। প্রাইমাস ব্যাংক এবং সেকেন্ডাস ব্যাংক তাদের গ্রাহকদের ডেটা ক্লাউড স্টোরেজ বাকেটে সংরক্ষণ করে এবং ক্লাউড কী ম্যানেজমেন্ট সার্ভিসের কী ব্যবহার করে ডেটা এনক্রিপ্ট করে।
  • ধাপ ২: একটি ওয়ার্কলোড সার্ভিস অ্যাকাউন্ট তৈরি করুন যা ওয়ার্কলোড ভিএম দ্বারা ব্যবহৃত হবে। সেকেন্ডাস ব্যাংক, যারা ওয়ার্কলোডের অপারেটর হবে, তারা ওয়ার্কলোড ভিএমটি চালু করবে। প্রাইমাস ব্যাংক ওয়ার্কলোড কোডটি রচনা করবে।
  • ধাপ ৩: একটি ওয়ার্কলোড তৈরি করুন যাতে দুটি CLI কমান্ড থাকবে; একটি প্রদত্ত অবস্থান থেকে গ্রাহক সংখ্যা গণনা করার জন্য এবং অন্যটি প্রাইমাস ও সেকেন্ডাস ব্যাংকের সাধারণ গ্রাহকদের খুঁজে বের করার জন্য। ওয়ার্কলোডটি প্রাইমাস ব্যাংক দ্বারা তৈরি করা হবে এবং এটি একটি ডকার ইমেজ হিসেবে প্যাকেজ করা হবে। এই ডকার ইমেজটি আর্টিফ্যাক্ট রেজিস্ট্রি -তে প্রকাশ করা হবে।
  • ধাপ ৪: একটি ওয়ার্কলোড অনুমোদন করুন। প্রাইমাস ব্যাংক, ওয়ার্কলোডটি কে চালাচ্ছে, ওয়ার্কলোডটির কাজ কী এবং এটি কোথায় চলছে—এই বৈশিষ্ট্যগুলোর ওপর ভিত্তি করে তাদের গ্রাহক ডেটা অ্যাক্সেস করার জন্য ওয়ার্কলোডগুলোকে অনুমোদন দিতে একটি ওয়ার্কলোড আইডেন্টিটি পুল ব্যবহার করে থাকে।
  • ধাপ ৫: যখন ওয়ার্কলোডটি চলবে, তখন এটি ওয়ার্কলোড এবং এনভায়রনমেন্ট ক্লেইমসহ একটি অ্যাটেস্টেশন ভেরিফায়ার সার্ভিস টোকেন প্রদান করে ডেটা সহযোগীদের (প্রাইমাস ব্যাংক এবং সেকেন্ডাস ব্যাংক) ক্লাউড রিসোর্সে অ্যাক্সেসের জন্য অনুরোধ করবে। যদি টোকেনটিতে থাকা ওয়ার্কলোড মেজারমেন্ট ক্লেইমগুলো প্রাইমাস এবং সেকেন্ডাস ব্যাংকের ওয়ার্কলোড আইডেন্টিটি পুলের অ্যাট্রিবিউট শর্তের সাথে মিলে যায়, তবে এটি সেই সার্ভিস অ্যাকাউন্ট অ্যাক্সেস টোকেনটি ফেরত দেবে যেটির সংশ্লিষ্ট ক্লাউড রিসোর্স অ্যাক্সেস করার অনুমতি রয়েছে। ক্লাউড রিসোর্সগুলো শুধুমাত্র কনফিডেনশিয়াল স্পেসের ভেতরে চলমান ওয়ার্কলোডের জন্যই অ্যাক্সেসযোগ্য হবে।
  • ধাপ ৫(ক): প্রথম ওয়ার্কলোডটি চালান, যা নির্দিষ্ট স্থান থেকে প্রাইমাস ব্যাংকের গ্রাহকদের সংখ্যা গণনা করবে। এই ওয়ার্কলোডের জন্য, প্রাইমাস ব্যাংক হবে একজন ডেটা সহযোগী এবং ওয়ার্কলোড লেখক, যা কনফিডেনশিয়াল স্পেসে চলমান ওয়ার্কলোডকে এনক্রিপ্টেড গ্রাহক তালিকা সরবরাহ করবে। সেকেন্ডাস ব্যাংক হবে একজন ওয়ার্কলোড অপারেটর এবং এটি কনফিডেনশিয়াল স্পেসে ওয়ার্কলোডটি চালাবে।
  • ধাপ ৫(খ): দ্বিতীয় ওয়ার্কলোডটি চালান যা প্রাইমাস এবং সেকেন্ডাস ব্যাংকের সাধারণ গ্রাহকদের খুঁজে বের করে। এই ওয়ার্কলোডের জন্য, প্রাইমাস ব্যাংক এবং সেকেন্ডাস ব্যাংক উভয়ই ডেটা সহযোগী হবে। তারা কনফিডেনশিয়াল স্পেসে চলমান ওয়ার্কলোডটিকে এনক্রিপ্টেড গ্রাহক তালিকা সরবরাহ করবে। সেকেন্ডাস ব্যাংক এক্ষেত্রেও একজন ওয়ার্কলোড অপারেটর হবে। এই ওয়ার্কলোডটিও সেকেন্ডাস ব্যাংক দ্বারা অনুমোদিত হবে, কারণ সাধারণ গ্রাহকদের খুঁজে বের করার জন্য ওয়ার্কলোডটির সেকেন্ডাস ব্যাংকের এনক্রিপ্টেড গ্রাহক তালিকা অ্যাক্সেস করার প্রয়োজন হবে। এক্ষেত্রে, প্রাইমাস ব্যাংকের জন্য ধাপ ৪-এ উল্লিখিত ‘কে ওয়ার্কলোডটি চালাচ্ছে’, ‘ওয়ার্কলোডটি কী কাজ করে’ এবং ‘ওয়ার্কলোডটি কোথায় চলছে’—এই বৈশিষ্ট্যগুলোর উপর ভিত্তি করে সেকেন্ডাস ব্যাংক তাদের গ্রাহক ডেটা অ্যাক্সেস করার জন্য ওয়ার্কলোডটিকে অনুমোদন দেবে।

fdef93a6868a976.png

২. ক্লাউড রিসোর্স সেট আপ করুন

শুরু করার আগে

  • এই কোডল্যাবের অংশ হিসেবে ব্যবহৃত প্রয়োজনীয় স্ক্রিপ্টগুলো পেতে নিচের কমান্ডটি ব্যবহার করে এই রিপোজিটরিটি ক্লোন করুন।
git clone https://github.com/GoogleCloudPlatform/confidential-space.git
  • এই কোডল্যাবের ডিরেক্টরি পরিবর্তন করুন।
cd confidential-space/codelabs/bank_data_analysis_codelab/scripts
  • নিশ্চিত করুন যে আপনি নীচে দেখানো অনুযায়ী প্রয়োজনীয় প্রজেক্ট এনভায়রনমেন্ট ভেরিয়েবলগুলো সেট করেছেন। একটি GCP প্রজেক্ট তৈরি করার বিষয়ে আরও তথ্যের জন্য, অনুগ্রহ করে এই কোডল্যাবটি দেখুন। প্রজেক্ট আইডি কীভাবে পুনরুদ্ধার করতে হয় এবং এটি প্রজেক্টের নাম ও প্রজেক্ট নম্বর থেকে কীভাবে আলাদা, সে সম্পর্কে বিস্তারিত জানতে আপনি এটি দেখতে পারেন।
export PRIMUS_PROJECT_ID=<GCP project id of Primus bank>
export SECUNDUS_PROJECT_ID=<GCP project id of Secundus bank>
  • আপনার প্রোজেক্টগুলোর জন্য বিলিং চালু করুন
  • উভয় প্রোজেক্টের জন্য কনফিডেনশিয়াল কম্পিউটিং এপিআই এবং নিম্নলিখিত এপিআইগুলো সক্রিয় করুন।
gcloud services enable \
    cloudapis.googleapis.com \
    cloudkms.googleapis.com \
    cloudresourcemanager.googleapis.com \
    cloudshell.googleapis.com \
    container.googleapis.com \
    containerregistry.googleapis.com \
    iam.googleapis.com \
    confidentialcomputing.googleapis.com
  • এই কমান্ডটি ব্যবহার করে নিচে উল্লেখিত অনুযায়ী রিসোর্স নামগুলোর জন্য ভ্যারিয়েবল সেট করুন। আপনি এই ভ্যারিয়েবলগুলো ব্যবহার করে রিসোর্স নামগুলো ওভাররাইড করতে পারেন (যেমন export PRIMUS_INPUT_STORAGE_BUCKET='my-input-bucket' )।
  • আপনি প্রাইমাস প্রজেক্টে বিদ্যমান ক্লাউড রিসোর্সের নাম দিয়ে নিম্নলিখিত ভেরিয়েবলগুলো সেট করতে পারেন। যদি ভেরিয়েবলটি সেট করা থাকে, তাহলে প্রাইমাস প্রজেক্ট থেকে সংশ্লিষ্ট বিদ্যমান ক্লাউড রিসোর্সটি ব্যবহার করা হবে। যদি ভেরিয়েবলটি সেট করা না থাকে, তাহলে প্রজেক্টের নাম থেকে ক্লাউড রিসোর্সের নাম তৈরি করা হবে এবং নিম্নলিখিত প্রক্রিয়ার অংশ হিসেবে একটি নতুন ক্লাউড-রিসোর্স তৈরি করা হবে:

$PRIMUS_INPUT_STORAGE_BUCKET

যে বাকেটটিতে প্রাইমাস ব্যাংকের গ্রাহক ডেটা ফাইল সংরক্ষিত থাকে।

$PRIMUS_WORKLOAD_IDENTITY_POOL

প্রাইমাস ব্যাংকের ওয়ার্কলোড আইডেন্টিটি পুল (WIP) যা দাবিগুলো যাচাই করে।

$PRIMUS_WIP_PROVIDER

প্রাইমাস ব্যাংকের ওয়ার্কলোড আইডেন্টিটি পুল প্রোভাইডার, যার মধ্যে অ্যাটেস্টেশন ভেরিফায়ার সার্ভিস দ্বারা স্বাক্ষরিত টোকেন ব্যবহারের জন্য অনুমোদনের শর্ত অন্তর্ভুক্ত রয়েছে।

$PRIMUS_SERVICE_ACCOUNT

প্রাইমাস ব্যাংকের সার্ভিস অ্যাকাউন্ট যা $PRIMUS_WORKLOAD_IDENTITY_POOL সুরক্ষিত রিসোর্সগুলো অ্যাক্সেস করতে ব্যবহার করে। এই ধাপে, $PRIMUS_INPUT_STORAGE_BUCKET বাকেটে সংরক্ষিত গ্রাহকের ডেটা দেখার অনুমতি এটির রয়েছে।

$PRIMUS_ENC_KEY

প্রাইমাস ব্যাংকের জন্য $PRIMUS_INPUT_STORAGE_BUCKET এ সংরক্ষিত ডেটা এনক্রিপ্ট করতে ব্যবহৃত KMS কী।

$PRIMUS_ENC_KEYRING

কেএমএস কী-রিং যা প্রাইমাস ব্যাংকের জন্য $PRIMUS_ENC_KEY এনক্রিপশন কী তৈরি করতে ব্যবহৃত হবে।

$PRIMUS_ARTIFACT_REPOSITORY

আর্টিফ্যাক্ট রিপোজিটরি যেখানে ওয়ার্কলোড ডকার ইমেজ পুশ করা হবে।

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

$SECUNDUS_INPUT_STORAGE_BUCKET

যে বাকেটটিতে সেকেন্ডাস ব্যাংকের গ্রাহকের ডেটা ফাইল সংরক্ষিত থাকে

$SECUNDUS_WORKLOAD_IDENTITY_POOL

সেকেন্ডাস ব্যাংকের ওয়ার্কলোড আইডেন্টিটি পুল (WIP), যা দাবিগুলো যাচাই করে।

$SECUNDUS_WIP_PROVIDER

সেকেন্ডাস ব্যাংকের ওয়ার্কলোড আইডেন্টিটি পুল প্রোভাইডার, যার মধ্যে অ্যাটেস্টেশন ভেরিফায়ার সার্ভিস দ্বারা স্বাক্ষরিত টোকেন ব্যবহারের জন্য অনুমোদনের শর্ত অন্তর্ভুক্ত রয়েছে।

$SECUNDUS_SERVICE_ACCOUNT

সেকেন্ডাস ব্যাংকের সার্ভিস অ্যাকাউন্ট যা $SECUNDUS_WORKLOAD_IDENTITY_POOL সুরক্ষিত রিসোর্সগুলো অ্যাক্সেস করতে ব্যবহার করে। এই ধাপে, $SECUNDUS_INPUT_STORAGE_BUCKET বাকেটে সংরক্ষিত গ্রাহকের ডেটা দেখার অনুমতি এটির রয়েছে।

$SECUNDUS_ENC_KEY

সেকেন্ডাস ব্যাংকের জন্য $SECUNDUS_INPUT_STORAGE_BUCKET এ সংরক্ষিত ডেটা এনক্রিপ্ট করতে যে KMS কী ব্যবহার করা হয়।

$SECUNDUS_ENC_KEYRING

সেকেন্ডাস ব্যাংকের জন্য $SECUNDUS_ENV_KEY এনক্রিপশন কী তৈরি করতে ব্যবহৃত KMS কী-রিং।

$SECUNDUS_RESULT_STORAGE_BUCKET

যে বাকেটটি ওয়ার্কলোডের ফলাফল সংরক্ষণ করে।

$WORKLOAD_IMAGE_NAME

ওয়ার্কলোড কন্টেইনার ইমেজের নাম।

$WORKLOAD_IMAGE_TAG

ওয়ার্কলোড কন্টেইনার ইমেজের ট্যাগ।

$WORKLOAD_SERVICE_ACCOUNT

যে সার্ভিস অ্যাকাউন্টের কাছে ওয়ার্কলোড চালনাকারী গোপনীয় ভিএম-টি অ্যাক্সেস করার অনুমতি আছে।

  • এই কোডল্যাবের অংশ হিসেবে ব্যবহৃত কয়েকটি আর্টিফ্যাক্ট নিচে উল্লেখ করা হলো:
  • primus_customer_list.csv : এই ফাইলটিতে প্রাইমাস ব্যাংকের গ্রাহকদের তথ্য রয়েছে। এই কোডল্যাবে ব্যবহৃত নমুনা ফাইলটি এখানে দেওয়া হলো।
  • secundus_customer_list.csv : এই ফাইলটিতে সেকেন্ডাস ব্যাংকের গ্রাহকদের তথ্য রয়েছে। এই কোডল্যাবে ব্যবহৃত নমুনা ফাইলটি এখানে দেওয়া হলো।
  • এই দুটি প্রকল্পের জন্য আপনার নির্দিষ্ট অনুমতির প্রয়োজন হবে:
  • $PRIMUS_PROJECT_ID এর জন্য আপনার ক্লাউড কেএমএস অ্যাডমিন, স্টোরেজ অ্যাডমিন, আর্টিফ্যাক্ট রেজিস্ট্রি অ্যাডমিনিস্ট্রেটর, সার্ভিস অ্যাকাউন্ট অ্যাডমিন এবং আইএএম ওয়ার্কলোড আইডেন্টিটি পুল অ্যাডমিন প্রয়োজন হবে।
  • $SECUNDUS_PROJECT_ID এর জন্য আপনার Compute Admin, Storage Admin, Service Account Admin, Cloud KMS Admin, IAM Workload Identity Pool Admin, Security Admin (ঐচ্ছিক) প্রয়োজন হবে।
  • রিসোর্স নামগুলোর জন্য আপনার প্রজেক্ট আইডির উপর ভিত্তি করে বাকি ভেরিয়েবল নামগুলোর মান সেট করতে নিম্নলিখিত স্ক্রিপ্টটি চালান।
source config_env.sh

প্রাইমাস ব্যাংকের জন্য ক্লাউড রিসোর্স সেট আপ করুন

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

  • প্রাইমাস ব্যাংকের এনক্রিপ্টেড গ্রাহক ডেটা ফাইল সংরক্ষণের জন্য ক্লাউড স্টোরেজ বাকেট ( $PRIMUS_INPUT_STORAGE_BUCKET )।
  • প্রাইমাস ব্যাংকের গ্রাহক ডেটা ফাইল এনক্রিপ্ট করার জন্য KMS-এ এনক্রিপশন কী ( $PRIMUS_ENC_KEY ) এবং কী-রিং ( $PRIMUS_ENC_KEYRING )।
  • এর প্রোভাইডারের অধীনে কনফিগার করা অ্যাট্রিবিউট শর্তাবলীর উপর ভিত্তি করে ক্লেইম যাচাই করার জন্য ওয়ার্কলোড আইডেন্টিটি পুল ( $PRIMUS_WORKLOAD_IDENTITY_POOL )।
  • উপরে উল্লিখিত ওয়ার্কলোড আইডেন্টিটি পুল ( $PRIMUS_WORKLOAD_IDENTITY_POOL )-এর সাথে সংযুক্ত সার্ভিস অ্যাকাউন্ট ( $PRIMUS_SERVICE_ACCOUNT )-এর নিম্নলিখিত অ্যাক্সেস রয়েছে: KMS কী ব্যবহার করে ডেটা ডিক্রিপ্ট করা ( roles/cloudkms.cryptoKeyDecrypter রোল ব্যবহার করে), ক্লাউড স্টোরেজ বাকেট থেকে ডেটা পড়া ( objectViewer রোল ব্যবহার করে) এবং সার্ভিস-অ্যাকাউন্টটিকে ওয়ার্কলোড আইডেন্টিটি পুলের সাথে সংযুক্ত করা ( roles/iam.workloadIdentityUser ব্যবহার করে)।
./setup_primus_bank_resources.sh

Secundus Bank এর জন্য ক্লাউড রিসোর্স সেট আপ করুন

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

  • সেকেন্ডাস ব্যাংকের এনক্রিপ্টেড গ্রাহক ডেটা ফাইল সংরক্ষণের জন্য ক্লাউড স্টোরেজ বাকেট ( $SECUNDUS_INPUT_STORAGE_BUCKET )।
  • সেকেন্ডাস ব্যাংকের ডেটা ফাইল এনক্রিপ্ট করার জন্য KMS-এ এনক্রিপশন কী ( $SECUNDUS_ENC_KEY ) এবং কী-রিং ( $SECUNDUS_ENC_KEYRING )।
  • এর প্রোভাইডারের অধীনে কনফিগার করা অ্যাট্রিবিউট কন্ডিশনের উপর ভিত্তি করে ক্লেইম যাচাই করার জন্য ওয়ার্কলোড আইডেন্টিটি পুল ( $SECUNDUS_WORKLOAD_IDENTITY_POOL )।
  • উপরে উল্লিখিত ওয়ার্কলোড আইডেন্টিটি পুল ( $SECUNDUS_WORKLOAD_IDENTITY_POOL )-এর সাথে সংযুক্ত সার্ভিস অ্যাকাউন্ট ( $SECUNDUS_SERVICE_ACCOUNT )-এর নিম্নলিখিত অ্যাক্সেস রয়েছে: KMS কী ব্যবহার করে ডেটা ডিক্রিপ্ট করা ( roles/cloudkms.cryptoKeyDecrypter রোল ব্যবহার করে), ক্লাউড স্টোরেজ বাকেট থেকে ডেটা পড়া ( objectViewer রোল ব্যবহার করে) এবং সার্ভিস-অ্যাকাউন্টটিকে ওয়ার্কলোড আইডেন্টিটি পুলের সাথে সংযুক্ত করা ( roles/iam.workloadIdentityUser রোল ব্যবহার করে)।
  • সেকেন্ডাস ব্যাংক কর্তৃক ওয়ার্কলোড সম্পাদনের ফলাফল সংরক্ষণের জন্য ক্লাউড স্টোরেজ বাকেট ( $SECUNDUS_RESULT_STORAGE_BUCKET )।
./setup_secundus_bank_resources.sh

৩. কাজের চাপ তৈরি করুন

ওয়ার্কলোড পরিষেবা-অ্যাকাউন্ট তৈরি করুন

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

এই ওয়ার্কলোড সার্ভিস-অ্যাকাউন্ট ( $WORKLOAD_SERVICE_ACCOUNT )-এর নিম্নলিখিত ভূমিকাগুলো থাকবে:

  • ওয়ার্কলোড সার্ভিস অ্যাকাউন্টকে confidentialcomputing.workloadUser রোলটি প্রদান করুন। এর ফলে ইউজার অ্যাকাউন্টটি একটি অ্যাটেস্টেশন টোকেন জেনারেট করতে পারবে।
  • ওয়ার্কলোড সার্ভিস অ্যাকাউন্টকে logging.logWriter রোলের অনুমতি দিন। এর ফলে কনফিডেনশিয়াল স্পেস এনভায়রনমেন্ট সিরিয়াল কনসোলের পাশাপাশি ক্লাউড লগিং-এও লগ লিখতে পারে, যার ফলে ভিএম বন্ধ করার পরেও লগগুলো পাওয়া যায়।
  • $PRIMUS_INPUT_STORAGE_BUCKET ক্লাউড স্টোরেজ বাকেট থেকে ডেটা পড়ার জন্য objectViewer
  • $SECUNDUS_INPUT_STORAGE_BUCKET ক্লাউড স্টোরেজ বাকেট থেকে ডেটা পড়ার জন্য objectViewer
  • objectAdmin ওয়ার্কলোডের ফলাফল $SECUNDUS_RESULT_STORAGE_BUCKET ক্লাউড স্টোরেজ বাকেটে লিখবে।
./create_workload_service_account.sh

কাজের চাপ তৈরি করুন

এই ধাপের অংশ হিসেবে, আপনি এই কোডল্যাবে ব্যবহৃত ওয়ার্কলোডের জন্য একটি ডকার ইমেজ তৈরি করবেন। ওয়ার্কলোডটি হলো একটি সাধারণ GoLang অ্যাপ্লিকেশন যা:

  • একটি নির্দিষ্ট ভৌগোলিক এলাকার গ্রাহকদের গণনা করে।
  • প্রাইমাস এবং সেকেন্ডাস ব্যাংকের নিজ নিজ ক্লাউড স্টোরেজ বাকেটে সংরক্ষিত গ্রাহক তালিকা থেকে তাদের সাধারণ গ্রাহকদের খুঁজে বের করে।

এমন একটি ওয়ার্কলোড তৈরি করতে নিম্নলিখিত স্ক্রিপ্টটি চালান, যেখানে নিম্নলিখিত ধাপগুলি সম্পাদন করা হবে:

  • প্রাইমাস ব্যাংকের মালিকানাধীন একটি আর্টিফ্যাক্ট রেজিস্ট্রি ( $PRIMUS_ARTIFACT_REPOSITORY ) তৈরি করুন যেখানে ওয়ার্কলোডটি প্রকাশিত হবে।
  • কোডটি জেনারেট করুন এবং প্রয়োজনীয় রিসোর্সের নামগুলো দিয়ে এটি আপডেট করুন। এই কোডল্যাবে ব্যবহৃত ওয়ার্কলোড কোডটি এখানে পাওয়া যাবে।
  • কোডটি বিল্ড করে একটি ডকার ইমেজে প্যাকেজ করুন। এর জন্য প্রয়োজনীয় ডকারফাইলটি এখানে পাওয়া যাবে।
  • প্রাইমাস ব্যাংকের মালিকানাধীন আর্টিফ্যাক্ট রেজিস্ট্রি ( $PRIMUS_ARTIFACT_REGISTRY )-তে ডকার ইমেজটি প্রকাশ করুন।
  • সার্ভিস অ্যাকাউন্ট $WORKLOAD_SERVICE_ACCOUNT আর্টিফ্যাক্ট রেজিস্ট্রি ( $PRIMUS_ARTIFACT_REGISTRY ) পড়ার অনুমতি দিন।
./create_workload.sh

৪. ওয়ার্কলোড(গুলি) অনুমোদন ও চালনা করুন

ওয়ার্কলোড অনুমোদন করুন

প্রাইমাস ব্যাংক নিম্নলিখিত রিসোর্সগুলোর অ্যাট্রিবিউটের উপর ভিত্তি করে তাদের গ্রাহক ডেটা অ্যাক্সেস করার জন্য ওয়ার্কলোডগুলোকে অনুমোদন দিতে চায়:

  • বিষয়বস্তু : যাচাইকৃত কোড
  • কোথায় : একটি নিরাপদ পরিবেশ
  • কে : একজন বিশ্বস্ত অপারেটর

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

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

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

  • বিষয় : $PRIMUS_ARTIFACT_REPOSITORY রিপোজিটরিতে আপলোড করা সর্বশেষ $WORKLOAD_IMAGE_NAME
  • অবস্থান : কনফিডেনশিয়াল স্পেস বিশ্বস্ত এক্সিকিউশন এনভায়রনমেন্টটি সম্পূর্ণরূপে সমর্থিত কনফিডেনশিয়াল স্পেস ভিএম ইমেজে চলছে।
  • কার কাছে : সেকেন্ডাস ব্যাংক $WORKLOAD_SERVICE_ACCOUNT সার্ভিস অ্যাকাউন্ট।
gcloud config set project $PRIMUS_PROJECT_ID
gcloud iam workload-identity-pools providers create-oidc $PRIMUS_WIP_PROVIDER \
  --location="global" \
  --workload-identity-pool="$PRIMUS_WORKLOAD_IDENTITY_POOL" \
  --issuer-uri="https://confidentialcomputing.googleapis.com/" \
  --allowed-audiences="https://sts.googleapis.com" \
  --attribute-mapping="google.subject='assertion.sub'" \
  --attribute-condition="assertion.swname == 'CONFIDENTIAL_SPACE' && 
   'STABLE' in assertion.submods.confidential_space.support_attributes &&
   assertion.submods.container.image_reference == 'us-docker.pkg.dev/$PRIMUS_PROJECT_ID/$PRIMUS_ARTIFACT_REPOSITORY/$WORKLOAD_IMAGE_NAME:$WORKLOAD_IMAGE_TAG' && 
'$WORKLOAD_SERVICE_ACCOUNT@$SECUNDUS_PROJECT_ID.iam.gserviceaccount.com' in assertion.google_service_accounts"

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

  • বিষয় : কাজের চাপ।
  • স্থান : গোপনীয় মহাকাশ পরিবেশ।
  • কে : যে অ্যাকাউন্ট ( $WORKLOAD_SERVICE_ACCOUNT ) ওয়ার্কলোডটি চালাচ্ছে।

প্রাইমাস ব্যাংক অ্যাক্সেসের অনুমোদন দেবে কিনা তা নির্ধারণ করতে image_reference ক্লেইমটি ব্যবহার করে, যার মধ্যে ইমেজ ট্যাগ অন্তর্ভুক্ত থাকে। রিমোট রিপোজিটরিটি তাদের নিয়ন্ত্রণে থাকায়, তারা নিশ্চিত হতে পারে যে শুধুমাত্র সেইসব ইমেজেই ট্যাগ দেওয়া হবে যেগুলো থেকে ডেটা ফাঁস হয় না।

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

ওয়ার্কলোড আইডেন্টিটি পুল প্রোভাইডার তৈরি করার আগে, আমরা ওয়ার্কলোড কন্টেইনার ইমেজের জন্য image_digest সংগ্রহ করব, যা প্রোভাইডারের অ্যাট্রিবিউট কন্ডিশনগুলিতে ব্যবহৃত হবে।

export WORKLOAD_IMAGE_DIGEST=$(gcloud artifacts docker images describe ${PRIMUS_PROJECT_REPOSITORY_REGION}-docker.pkg.dev/$PRIMUS_PROJECT_ID/$PRIMUS_ARTIFACT_REPOSITORY/$WORKLOAD_IMAGE_NAME:$WORKLOAD_IMAGE_TAG  --format="value(image_summary.digest)" --project ${PRIMUS_PROJECT_ID})
gcloud config set project $SECUNDUS_PROJECT_ID
gcloud iam workload-identity-pools providers create-oidc $SECUNDUS_WIP_PROVIDER \
  --location="global" \
  --workload-identity-pool="$SECUNDUS_WORKLOAD_IDENTITY_POOL" \
  --issuer-uri="https://confidentialcomputing.googleapis.com/" \
  --allowed-audiences="https://sts.googleapis.com" \
  --attribute-mapping="google.subject='assertion.sub'" \
  --attribute-condition="assertion.swname == 'CONFIDENTIAL_SPACE' && 
'STABLE' in assertion.submods.confidential_space.support_attributes && 
assertion.submods.container.image_digest == '${WORKLOAD_IMAGE_DIGEST}' &&
 assertion.submods.container.image_reference == '${PRIMUS_PROJECT_REPOSITORY_REGION}-docker.pkg.dev/$PRIMUS_PROJECT_ID/$PRIMUS_ARTIFACT_REPOSITORY/$WORKLOAD_IMAGE_NAME:$WORKLOAD_IMAGE_TAG' && 
'$WORKLOAD_SERVICE_ACCOUNT@$SECUNDUS_PROJECT_ID.iam.gserviceaccount.com' in assertion.google_service_accounts"

ওয়ার্কলোড চালান

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

প্রয়োজনীয় TEE আর্গুমেন্টগুলো মেটাডেটা ফ্ল্যাগ ব্যবহার করে পাস করা হয়। ওয়ার্কলোড কন্টেইনারের জন্য আর্গুমেন্টগুলো ফ্ল্যাগের " tee-cmd " অংশ ব্যবহার করে পাস করা হয়। ওয়ার্কলোড এক্সিকিউশনের ফলাফল $SECUNDUS_RESULT_STORAGE_BUCKET এ পাবলিশ করা হবে।

প্রথম ওয়ার্কলোড চালান

প্রথম ওয়ার্কলোড এক্সিকিউশনের অংশ হিসেবে, ওয়ার্কলোডটি ওয়ার্কলোড কন্টেইনার আর্গুমেন্টে প্রদত্ত লোকেশন থেকে প্রাইমাস ব্যাংকের গ্রাহকদের সংখ্যা গণনা করবে। নিচে দেখানো অনুযায়ী, প্রথম ওয়ার্কলোডটি " count-location " কমান্ডটি এক্সিকিউট করবে এবং এর ফলাফল $SECUNDUS_RESULT_STORAGE_BUCKET/seattle-result এ স্টোর করা হবে।

gcloud compute instances create ${WORKLOAD_VM1} \
 --project=${SECUNDUS_PROJECT_ID} \
 --confidential-compute-type=SEV \
 --shielded-secure-boot \
 --maintenance-policy=MIGRATE \
 --scopes=cloud-platform \
 --zone=${SECUNDUS_PROJECT_ZONE} \
 --image-project=confidential-space-images \
 --image-family=confidential-space \
--service-account=${WORKLOAD_SERVICE_ACCOUNT}@${SECUNDUS_PROJECT_ID}.iam.gserviceaccount.com \
 --metadata "^~^tee-image-reference=${PRIMUS_PROJECT_REPOSITORY_REGION}-docker.pkg.dev/${PRIMUS_PROJECT_ID}/${PRIMUS_ARTIFACT_REPOSITORY}/${WORKLOAD_IMAGE_NAME}:${WORKLOAD_IMAGE_TAG}~tee-restart-policy=Never~tee-cmd="[\"count-location\",\"Seattle\",\"gs://${SECUNDUS_RESULT_STORAGE_BUCKET}/seattle-result\"]""

ফলাফল দেখুন

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

gcloud config set project $SECUNDUS_PROJECT_ID
gsutil cat gs://$SECUNDUS_RESULT_STORAGE_BUCKET/seattle-result

ফলাফল 3 হওয়া উচিত, কারণ primus_customer_list.csv ফাইলে সিয়াটলের এতজন লোকের নাম তালিকাভুক্ত আছে!

দ্বিতীয় ওয়ার্কলোড চালান

দ্বিতীয় ওয়ার্কলোড এক্সিকিউশনের অংশ হিসেবে, আমরা প্রাইমাস ব্যাংক এবং সেকেন্ডাস ব্যাংকের সাধারণ গ্রাহকদের খুঁজে বের করব। নিচে দেখানো অনুযায়ী, দ্বিতীয় ওয়ার্কলোডটি " list-common-customers " কমান্ডটি এক্সিকিউট করবে এবং এর ফলাফল $SECUNDUS_RESULT_STORAGE_BUCKET/list-common-count স্টোর করা হবে।

gcloud compute instances create ${WORKLOAD_VM2} \
 --project=${SECUNDUS_PROJECT_ID} \
 --confidential-compute-type=SEV \
 --shielded-secure-boot \
 --maintenance-policy=MIGRATE \
 --scopes=cloud-platform \
 --zone=${SECUNDUS_PROJECT_ZONE} \
 --image-project=confidential-space-images \
 --image-family=confidential-space \
--service-account=${WORKLOAD_SERVICE_ACCOUNT}@${SECUNDUS_PROJECT_ID}.iam.gserviceaccount.com \
  --metadata "^~^tee-image-reference=${PRIMUS_PROJECT_REPOSITORY_REGION}-docker.pkg.dev/${PRIMUS_PROJECT_ID}/${PRIMUS_ARTIFACT_REPOSITORY}/${WORKLOAD_IMAGE_NAME}:${WORKLOAD_IMAGE_TAG}~tee-restart-policy=Never~tee-cmd="[\"list-common-customers\",\"gs://$SECUNDUS_RESULT_STORAGE_BUCKET/list-common-result\"]""

ফলাফল দেখুন

সেকেন্ডাস প্রোজেক্টে, দ্বিতীয় ওয়ার্কলোডের ফলাফল দেখুন। ওয়ার্কলোডটির সম্পাদন সম্পন্ন হতে এবং ফলাফল ক্লাউড স্টোরেজ বাকেটে উপলব্ধ হতে ৩-৫ মিনিট অপেক্ষা করুন।

gcloud config set project $SECUNDUS_PROJECT_ID
gsutil cat gs://$SECUNDUS_RESULT_STORAGE_BUCKET/list-common-result

ফলাফলস্বরূপ নিম্নলিখিত তালিকাটি পাওয়া যাবে, কারণ এরা প্রাইমাস ও সেকেন্ডাস ব্যাংকের অভিন্ন গ্রাহক।

আউটপুট:

Eric
Clinton
Ashley
Cooper

অননুমোদিত ওয়ার্কলোড চালান

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

প্রাইমাস ব্যাংক ওয়ার্কলোড আইডেন্টিটি পুল প্রোভাইডারকে পরিবর্তন করে।

$PRIMUS_PROJECT_ID তে, নতুন কোনো অবস্থানে ওয়ার্কলোড অনুমোদন করার জন্য অ্যাটেস্টেশন ভেরিফায়ার আইডেন্টিটি প্রোভাইডারের অ্যাট্রিবিউট কন্ডিশনটি আপডেট করুন।

  1. প্রজেক্টটি $PRIMUS_PROJECT_ID-তে সেট করুন।
gcloud config set project $PRIMUS_PROJECT_ID
  1. নিচের কমান্ডটি ব্যবহার করে টার্টিয়াস ব্যাংকের GCP প্রজেক্ট-আইডি এক্সপোর্ট করুন। পরবর্তীতে প্রাইমাস ব্যাংক ওয়ার্কলোড আইডেন্টিটি পুল প্রোভাইডারের অ্যাট্রিবিউট কন্ডিশন আপডেট করার জন্য এটি ব্যবহার করবে। প্রাইমাস ব্যাংক সেকেন্ডাস ব্যাংকের ওয়ার্কলোড সার্ভিস-অ্যাকাউন্টগুলোকে অনুমোদন দেওয়া বন্ধ করবে না। এটি এখন টার্টিয়াস ব্যাংকের ওয়ার্কলোড সার্ভিস অ্যাকাউন্টগুলোকেও অনুমতি দেবে।
export TERTIUS_PROJECT_ID=<GCP project-id of Tertius Bank>
  1. ওয়ার্কলোড আইডেন্টিটি পুলে OIDC প্রোভাইডার আপডেট করুন। এখানে '$WORKLOAD_SERVICE_ACCOUNT@$SECUNDUS_PROJECT_ID.iam.gserviceaccount.com' in assertion.google_service_accounts কে পরিবর্তন করে '$WORKLOAD_SERVICE_ACCOUNT@$TERTIUS_PROJECT_ID.iam.gserviceaccount.com' in assertion.google_service_accounts. এখন থেকে সেকেন্ডাস ব্যাংকের ওয়ার্কলোড সার্ভিস অ্যাকাউন্টকে অনুমোদন দেওয়ার পরিবর্তে টার্টিয়াস ব্যাংকের ওয়ার্কলোড সার্ভিস অ্যাকাউন্টকে অনুমোদন দেওয়া হবে।
gcloud iam workload-identity-pools providers update-oidc $PRIMUS_WIP_PROVIDER \
  --location="global" \
  --workload-identity-pool="$PRIMUS_WORKLOAD_IDENTITY_POOL" \
  --issuer-uri="https://confidentialcomputing.googleapis.com/" \
  --allowed-audiences="https://sts.googleapis.com" \
  --attribute-mapping="google.subject='assertion.sub'" \
  --attribute-condition="assertion.swname == 'CONFIDENTIAL_SPACE' && 
   'STABLE' in assertion.submods.confidential_space.support_attributes &&
   assertion.submods.container.image_reference == '${PRIMUS_PROJECT_REPOSITORY_REGION}-docker.pkg.dev/$PRIMUS_PROJECT_ID/$PRIMUS_ARTIFACT_REPOSITORY/$WORKLOAD_IMAGE_NAME:$WORKLOAD_IMAGE_TAG' && 
'$WORKLOAD_SERVICE_ACCOUNT@$TERTIUS_PROJECT_ID.iam.gserviceaccount.com' in assertion.google_service_accounts"

ওয়ার্কলোডটি পুনরায় চালান

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

বিদ্যমান ফলাফল ফাইল এবং ভিএম ইনস্ট্যান্স মুছে ফেলুন

  1. প্রজেক্টটি $SECUNDUS_PROJECT_ID প্রজেক্টে সেট করুন।
gcloud config set project $SECUNDUS_PROJECT_ID
  1. ফলাফল ফাইলটি মুছে ফেলুন।
gsutil rm gs://$SECUNDUS_RESULT_STORAGE_BUCKET/list-common-result
  1. গোপনীয় ভিএম ইনস্ট্যান্সটি মুছে ফেলুন।
gcloud compute instances delete ${WORKLOAD_VM2} --zone=${SECUNDUS_PROJECT_ZONE}

অননুমোদিত ওয়ার্কলোড চালান:

gcloud compute instances create ${WORKLOAD_VM2} \
 --confidential-compute-type=SEV \
 --shielded-secure-boot \
 --maintenance-policy=MIGRATE \
 --scopes=cloud-platform \
 --zone=${SECUNDUS_PROJECT_ZONE}\
 --image-project=confidential-space-images \
 --image-family=confidential-space \
--service-account=${WORKLOAD_SERVICE_ACCOUNT}@${SECUNDUS_PROJECT_ID}.iam.gserviceaccount.com \
 --metadata "^~^tee-image-reference=${PRIMUS_PROJECT_REPOSITORY_REGION}-docker.pkg.dev/${PRIMUS_PROJECT_ID}/${PRIMUS_ARTIFACT_REPOSITORY}/${WORKLOAD_IMAGE_NAME}:${WORKLOAD_IMAGE_TAG}~tee-restart-policy=Never~tee-cmd="[\"list-common-customers\",\"gs://$SECUNDUS_RESULT_STORAGE_BUCKET/list-common-result\"]""

ত্রুটি দেখুন

ওয়ার্কলোডের ফলাফলের পরিবর্তে, আপনি একটি ত্রুটি দেখতে পাচ্ছেন ( The given credential is rejected by the attribute condition )।

gsutil cat gs://$SECUNDUS_RESULT_STORAGE_BUCKET/list-common-result

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

৫. পরিষ্কার করা

এই কোডল্যাবের অংশ হিসেবে আমরা যে রিসোর্সগুলো তৈরি করেছি, সেগুলো পরিষ্কার করার জন্য এই স্ক্রিপ্টটি ব্যবহার করা যেতে পারে। এই পরিষ্কার-পরিচ্ছন্নতার অংশ হিসেবে, নিম্নলিখিত রিসোর্সগুলো মুছে ফেলা হবে:

  • প্রাইমাস ব্যাংকের ক্লাউড স্টোরেজ বাকেট ( $PRIMUS_INPUT_STORAGE_BUCKET) ইনপুট করুন।
  • প্রাইমাস ব্যাংকের একটি পরিষেবা-অ্যাকাউন্ট ( $PRIMUS_SERVICE_ACCOUNT )।
  • প্রাইমাস ব্যাংকের একটি আর্টিফ্যাক্ট রেজিস্ট্রি যা ইমেজ সিগনেচার ধারণ করে ( $PRIMUS_COSIGN_REPOSITORY )।
  • প্রাইমাস ব্যাংকের একটি ওয়ার্কলোড আইডেন্টিটি পুল ( $PRIMUS_WORKLOAD_IDENTITY_POOL )।
  • সেকেন্ডাস ব্যাংকের একটি ওয়ার্কলোড সার্ভিস অ্যাকাউন্ট ( $WORKLOAD_SERVICE_ACCOUNT )।
  • সেকেন্ডাস ব্যাংকের ক্লাউড স্টোরেজ বাকেট ( $SECUNDUS_INPUT_STORAGE_BUCKET) ইনপুট করুন।
  • সেকেন্ডাস ব্যাঙ্কের একটি পরিষেবা-অ্যাকাউন্ট ( $SECUNDUS_SERVICE_ACCOUNT )।
  • সেকেন্ডাস ব্যাংকের একটি আর্টিফ্যাক্ট রেজিস্ট্রি যা ইমেজ সিগনেচার ধারণ করে ( $SECUNDUS_COSIGN_REPOSITORY )।
  • সেকেন্ডাস ব্যাংকের একটি ওয়ার্কলোড আইডেন্টিটি পুল ( $SECUNDUS_WORKLOAD_IDENTITY_POOL )।
  • সেকেন্ডাস ব্যাংকের একটি ওয়ার্কলোড সার্ভিস অ্যাকাউন্ট ( $WORKLOAD_SERVICE_ACCOUNT )।
  • ওয়ার্কলোড কম্পিউট ইনস্ট্যান্স।
  • সেকেন্ডাস ব্যাংকের ফলাফল সংরক্ষণ বাকেট ( $SECUNDUS_RESULT_STORAGE_BUCKET )।
  • প্রাইমাস ব্যাংকের একটি প্রত্নবস্তু সংগ্রহশালা ( $PRIMUS_ARTIFACT_REPOSITORY )।
./cleanup.sh

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

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

অভিনন্দন

অভিনন্দন, আপনি সফলভাবে কোডল্যাবটি সম্পন্ন করেছেন!

আপনি কনফিডেনশিয়াল স্পেস ব্যবহার করে শেয়ার করা ডেটার গোপনীয়তা বজায় রেখে তা সুরক্ষিত করার পদ্ধতি শিখেছেন।

এরপর কী?

এই ধরনের কয়েকটি কোডল্যাব দেখে নিন...

আরও পড়ুন