রানটাইম নিরাপত্তা অন্তর্দৃষ্টি

1. ভূমিকা

এই ল্যাবে আপনি ক্লাউড রান এবং জিকেই ক্লাস্টারে একটি অ্যাপ্লিকেশন স্থাপন করবেন এবং সফ্টওয়্যার ডেলিভারি শিল্ড সিকিউরিটিতে স্থাপনের জন্য নিরাপত্তা অন্তর্দৃষ্টি দেখতে পাবেন

আপনি কি শিখবেন

  • আর্টিফ্যাক্ট রেজিস্ট্রি নিরাপত্তা অন্তর্দৃষ্টি
  • ক্লাউড রান নিরাপত্তা অন্তর্দৃষ্টি
  • GKE নিরাপত্তা ভঙ্গি

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

ক্লাউড প্রজেক্ট সেটআপ

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

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • প্রকল্পের নাম এই প্রকল্পের অংশগ্রহণকারীদের জন্য প্রদর্শনের নাম। এটি একটি অক্ষর স্ট্রিং যা Google API দ্বারা ব্যবহৃত হয় না। আপনি যে কোনো সময় এটি আপডেট করতে পারেন.
  • প্রোজেক্ট আইডি সমস্ত Google ক্লাউড প্রোজেক্ট জুড়ে অনন্য এবং অপরিবর্তনীয় (সেট করার পরে পরিবর্তন করা যাবে না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত আপনি এটা কি যত্ন না. বেশিরভাগ কোডল্যাবে, আপনাকে প্রজেক্ট আইডি উল্লেখ করতে হবে (এটি সাধারণত PROJECT_ID হিসাবে চিহ্নিত করা হয়)। আপনি যদি জেনারেট করা আইডি পছন্দ না করেন, তাহলে আপনি অন্য এলোমেলো আইডি তৈরি করতে পারেন। বিকল্পভাবে, আপনি নিজের চেষ্টা করে দেখতে পারেন এবং এটি উপলব্ধ কিনা। এই ধাপের পরে এটি পরিবর্তন করা যাবে না এবং প্রকল্পের সময়কালের জন্য থাকবে।
  • আপনার তথ্যের জন্য, একটি তৃতীয় মান রয়েছে, একটি প্রকল্প নম্বর যা কিছু API ব্যবহার করে। ডকুমেন্টেশনে এই তিনটি মান সম্পর্কে আরও জানুন।
  1. এরপরে, ক্লাউড রিসোর্স/এপিআই ব্যবহার করতে আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে। এই কোডল্যাবের মাধ্যমে চালানোর জন্য খুব বেশি খরচ করা উচিত নয়, যদি কিছু থাকে। রিসোর্স বন্ধ করতে যাতে এই টিউটোরিয়ালের বাইরে আপনার বিলিং খরচ না হয়, আপনি আপনার তৈরি করা রিসোর্স মুছে ফেলতে পারেন বা পুরো প্রোজেক্ট মুছে ফেলতে পারেন। Google ক্লাউডের নতুন ব্যবহারকারীরা $300 USD বিনামূল্যের ট্রায়াল প্রোগ্রামের জন্য যোগ্য৷

এনভায়রনমেন্ট সেটআপ

অনুসন্ধান বারের ডানদিকে আইকনে ক্লিক করে ক্লাউড শেল সক্রিয় করুন।

ecdc43ada29e91b.png

ক্লাউড শেল থেকে, এই ল্যাবের জন্য প্রয়োজনীয় APIগুলি সক্ষম করুন:

gcloud services enable run.googleapis.com \
  cloudbuild.googleapis.com \
  artifactregistry.googleapis.com \
  container.googleapis.com \
  containersecurity.googleapis.com

অনুমোদনের জন্য অনুরোধ করা হলে, চালিয়ে যেতে "অনুমোদিত করুন" এ ক্লিক করুন।

6356559df3eccdda.png

এটির অনুরূপ একটি সফল বার্তা তৈরি করা উচিত:

Operation "operations/acf.p2-327036483151-73d90d00-47ee-447a-b600-a6badf0eceae" finished successfully.

অ্যাসিঙ্ক্রোনাসভাবে GKE ক্লাস্টার তৈরি করতে কমান্ডটি চালান। এটি পরবর্তীতে ল্যাবে ব্যবহার করা হবে:

gcloud beta container clusters create gke-cluster \
    --zone us-central1-a \
    --async

3. আবেদন প্রস্তুত করুন

প্রথমে, আপনি একটি সাধারণ এক্সপ্রেস-ভিত্তিক Node.js অ্যাপ্লিকেশন প্রস্তুত করবেন যা HTTP অনুরোধে সাড়া দেয়।

ক্লাউড শেলে starter-nodejs নামে একটি নতুন ডিরেক্টরি তৈরি করুন, তারপর সেই ডিরেক্টরিতে পরিবর্তন করুন:

mkdir starter-nodejs
cd starter-nodejs

নীচের কমান্ডগুলি চালিয়ে একটি package.json ফাইল তৈরি করুন:

cat > ./package.json << EOF
{
  "name": "cloudrun-starter-app",
  "version": "1.0.0",
  "description": "Node.js Starter Application",
  "main": "index.js",
  "scripts": {
    "start": "node index.js"
  },
  "author": "",
  "license": "Apache-2.0",
  "dependencies": {
    "express": "^4.18.2"
  }
}
EOF

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

এর পরে, একই ডিরেক্টরিতে, নীচের কমান্ডগুলি চালিয়ে একটি index.js ফাইল তৈরি করুন:

cat > ./index.js << EOF
const express = require('express');
const app = express();

app.get('/', (req, res) => {
  console.log('Received a request.');
  res.send("Hello Cloud Run!");
});

const port = process.env.PORT || 8080;

app.listen(port, () => {
  console.log('Listening on port', port);
});
EOF

এই কোডটি একটি মৌলিক ওয়েব সার্ভার তৈরি করে যা পোর্ট পরিবেশ পরিবর্তনশীল দ্বারা সংজ্ঞায়িত পোর্টে শোনে। আপনার অ্যাপটি এখন সমাপ্ত এবং কনটেইনারাইজড এবং স্থাপনের জন্য প্রস্তুত।

4. ক্লাউড রান অ্যাপ্লিকেশন স্থাপন করুন

আপনার অ্যাপ্লিকেশন স্থাপন করতে নীচের কমান্ডটি চালান:

gcloud run deploy starter-app \
  --source . \
  --region us-central1 \
  --allow-unauthenticated \
  --max-instances=3

আর্টিফ্যাক্ট রেজিস্ট্রি সংগ্রহস্থল তৈরি নিশ্চিত করুন:

Deploying from source requires an Artifact Registry Docker repository to store built containers. A repository named [cloud-run-source-deploy] in region [us-central1] will be created.

Do you want to continue (Y/n)? y

5. আর্টিফ্যাক্ট রেজিস্ট্রি এবং ক্লাউড বিল্ড নিরাপত্তা অন্তর্দৃষ্টি

নির্মাণ সম্পূর্ণ হতে কয়েক মিনিট সময় লাগবে।

ক্লাউড বিল্ড খুলুন এবং সর্বশেষ বিল্ডের জন্য বিল্ড আর্টিফ্যাক্ট পর্যালোচনা করুন।

Google ক্লাউড কনসোলে ক্লাউড বিল্ড UI-তে সফ্টওয়্যার ডেলিভারি শিল্ড সিকিউরিটি ইনসাইট প্যানেল রয়েছে যা বিল্ড সম্পর্কিত নিরাপত্তা তথ্য যেমন SLSA লেভেল, নির্ভরশীলতার কোনো দুর্বলতা এবং বিল্ড প্রোভেনেন্স প্রদর্শন করে।

7d9fd2213f3704c4.png

তৈরি কন্টেইনার ছবির জন্য নিরাপত্তা অন্তর্দৃষ্টি পর্যালোচনা করুন। আর্টিফ্যাক্ট রেজিস্ট্রিতে এই চিত্রটির দুর্বলতার বিবরণ দেখতে স্ক্যান করা আর্টিফ্যাক্টগুলির জন্য লিঙ্কটি অনুসরণ করুন৷

ক্লাউড শেল কনসোলে ফিরে যান এবং যাচাই করুন যে ক্লাউড রান অ্যাপ্লিকেশন স্থাপনা সম্পূর্ণ হয়েছে।

Done.
Service [starter-app] revision [starter-app-00001-maw] has been deployed and is serving 100 percent of traffic.
Service URL: https://starter-app-nin5jpgefq-uc.a.run.app

6. ক্লাউড রান নিরাপত্তা অন্তর্দৃষ্টি

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

ক্লাউড রান খুলুন এবং রিভিশনস / সিকিউরিটি ট্যাবের অধীনে নিরাপত্তা অন্তর্দৃষ্টি পর্যালোচনা করুন।

62a9f5d26207e58e.png

এই প্যানেল নিম্নলিখিত তথ্য প্রদর্শন করে:

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

7. GKE নিরাপত্তা ভঙ্গি

GKE আপনার ধারক নিরাপত্তা ভঙ্গি মূল্যায়ন করতে পারে এবং ক্লাস্টার সেটিংস, কাজের চাপ কনফিগারেশন, এবং দুর্বলতা সম্পর্কে সক্রিয় নির্দেশনা দিতে পারে। এতে নিরাপত্তা ভঙ্গি ড্যাশবোর্ড (প্রিভিউ) অন্তর্ভুক্ত রয়েছে, যা আপনার নিরাপত্তা ভঙ্গি উন্নত করার জন্য আপনাকে মতামতযুক্ত, পদক্ষেপযোগ্য সুপারিশ প্রদান করতে আপনার GKE ক্লাস্টার এবং কাজের চাপ স্ক্যান করে।

পরবর্তী ধাপে, আপনি অ্যাপ্লিকেশনটিকে GKE ক্লাস্টারে স্থাপন করবেন এবং GKE নিরাপত্তা ভঙ্গি ড্যাশবোর্ডে নিরাপত্তা অন্তর্দৃষ্টি পর্যালোচনা করবেন।

নিম্নলিখিত কমান্ড চালানোর মাধ্যমে ক্লাস্টার প্রস্তুত যাচাই করুন:

gcloud beta container clusters list

নমুনা আউটপুট:

NAME: gke-cluster
LOCATION: us-central1-a
MASTER_VERSION: 1.24.9-gke.3200
MASTER_IP: 34.29.226.228
MACHINE_TYPE: e2-medium
NODE_VERSION: 1.24.9-gke.3200
NUM_NODES: 3
STATUS: RUNNING

GKE ক্লাস্টারের জন্য শংসাপত্র এবং কনফিগারেশন পান:

gcloud container clusters get-credentials gke-cluster  \
    --region=us-central1-a

পূর্ববর্তী ধাপে নির্মিত চিত্র ব্যবহার করে অ্যাপ্লিকেশন স্থাপন করার জন্য কমান্ডটি চালান:

export PROJECT_ID=$(gcloud config get-value project)

kubectl run starter-app \
  --image us-central1-docker.pkg.dev/${PROJECT_ID}/cloud-run-source-deploy/starter-app:latest \
  --port 8080

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

কাজের চাপ কনফিগারেশন স্ক্যানিং সক্ষম করুন:

gcloud beta container clusters update gke-cluster \
    --region=us-central1-a \
    --enable-workload-config-audit

ওয়ার্কলোড কনফিগারেশন স্ক্যান করার পাশাপাশি, আপনি নিরাপত্তা ভঙ্গি ড্যাশবোর্ডে ওয়ার্কলোড দুর্বলতা স্ক্যানিং এবং ফলাফল পর্যালোচনা সক্ষম করতে পারেন যা আপনার GKE ক্লাস্টার এবং ওয়ার্কলোডগুলির নিরাপত্তা উন্নত করতে মতামতযুক্ত তথ্য এবং সুপারিশ প্রদান করে এমন বৈশিষ্ট্যগুলির একটি সেট৷

GKE স্বয়ংক্রিয়ভাবে আপনার GKE ক্লাস্টারে চলমান প্রতিটি যোগ্য পডের কন্টেইনার চিত্রগুলি স্ক্যান করে জ্ঞাত দুর্বলতার জন্য, সর্বজনীন CVE ডাটাবেস যেমন NIST থেকে দুর্বলতা ডেটা ব্যবহার করে।

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

কাজের চাপ দুর্বলতা স্ক্যানিং সক্ষম করুন:

gcloud beta container clusters update gke-cluster \
    --region=us-central1-a \
    --enable-workload-vulnerability-scanning \
    --async

GKE নিরাপত্তা ভঙ্গি পৃষ্ঠা খুলুন।

ওয়ার্কলোড অডিট সম্পূর্ণ হওয়ার জন্য কয়েক মিনিট অপেক্ষা করুন এবং তারপর ফলাফল পর্যালোচনা করুন।

5b1b8158bc55ce67.png

কনফিগারেশন উদ্বেগ এবং প্রভাবিত কাজের চাপ পর্যালোচনা করুন।

58e6f4b6d8eaa99a.png

কেন নিরাপত্তা ভঙ্গি ড্যাশবোর্ড ব্যবহার করুন

নিরাপত্তা ভঙ্গি ড্যাশবোর্ড হল একটি মৌলিক নিরাপত্তা ব্যবস্থা যা আপনি যেকোনো যোগ্য GKE ক্লাস্টারের জন্য সক্ষম করতে পারেন। Google ক্লাউড নিম্নলিখিত কারণে আপনার সমস্ত ক্লাস্টারে নিরাপত্তা ভঙ্গি ড্যাশবোর্ড ব্যবহার করার পরামর্শ দেয়:

  • ন্যূনতম ব্যাঘাত: বৈশিষ্ট্যগুলি চলমান কাজের চাপে হস্তক্ষেপ করে না বা ব্যাহত করে না।
  • অ্যাকশনযোগ্য সুপারিশ: যখন উপলব্ধ, নিরাপত্তা ভঙ্গি ড্যাশবোর্ড আবিষ্কৃত উদ্বেগ সমাধান করার জন্য অ্যাকশন আইটেম প্রদান করে। এই ক্রিয়াগুলির মধ্যে আপনি যে কমান্ডগুলি চালাতে পারেন, কনফিগারেশন পরিবর্তনের উদাহরণ এবং দুর্বলতাগুলি প্রশমিত করতে কী করতে হবে সে সম্পর্কে পরামর্শ অন্তর্ভুক্ত করে।
  • ভিজ্যুয়ালাইজেশন: নিরাপত্তা ভঙ্গি ড্যাশবোর্ড আপনার প্রোজেক্ট জুড়ে ক্লাস্টারগুলিকে প্রভাবিত করে এমন উদ্বেগের একটি উচ্চ-স্তরের ভিজ্যুয়ালাইজেশন প্রদান করে এবং আপনার করা অগ্রগতি এবং প্রতিটি উদ্বেগের সম্ভাব্য প্রভাব দেখানোর জন্য চার্ট এবং গ্রাফ অন্তর্ভুক্ত করে।
  • অভিমতযুক্ত ফলাফল: GKE Google-এর নিরাপত্তা দল এবং শিল্পের মানের দক্ষতার উপর ভিত্তি করে আবিষ্কৃত উদ্বেগের জন্য একটি তীব্রতা রেটিং প্রদান করে।
  • নিরীক্ষণযোগ্য ইভেন্ট লগ: GKE সমস্ত আবিষ্কৃত উদ্বেগ যোগ করে লগিংয়ে আরও ভাল রিপোর্টযোগ্যতা এবং পর্যবেক্ষণযোগ্যতার জন্য।

8. অভিনন্দন!

অভিনন্দন! আপনি কোডল্যাব শেষ করেছেন।

আমরা যা কভার করেছি:

  • ক্লাউড রান এবং GKE-তে চলমান আর্টিফ্যাক্ট এবং অ্যাপ্লিকেশনের জন্য নিরাপত্তা অন্তর্দৃষ্টি তথ্য

পরিষ্কার করুন

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

প্রকল্প মুছে ফেলা হচ্ছে

বিলিং দূর করার সবচেয়ে সহজ উপায় হল আপনি টিউটোরিয়ালের জন্য তৈরি করা প্রকল্পটি মুছে ফেলা।

-

শেষ আপডেট: 3/21/23