নেমস্পেস লেভেলে পড সিকিউরিটি স্ট্যান্ডার্ড প্রয়োগ করুন
নোট
এই টিউটোরিয়াল শুধুমাত্র নতুন ক্লাস্টারের জন্য প্রযোজ্য।Pod Security Admission হল একটি অ্যাডমিশন কন্ট্রোলার যা পড তৈরি হওয়ার সময়
Pod Security Standards
প্রয়োগ করে। এটি Kubernetes v1.25-এ GA (General Availability) হয়েছে।
এই টিউটোরিয়ালে, আপনি baseline পড সিকিউরিটি স্ট্যান্ডার্ড একটি নির্দিষ্ট নেমস্পেসে প্রয়োগ করবেন।
আপনি চাইলে ক্লাস্টার লেভেলে একাধিক নেমস্পেসে একসাথে পড সিকিউরিটি স্ট্যান্ডার্ড প্রয়োগ করতে পারেন। বিস্তারিত জানতে দেখুন: Apply Pod Security Standards at the cluster level।
শুরু করার আগে
আপনার ওয়ার্কস্টেশনে নিম্নলিখিত টুলগুলি ইনস্টল করুন:
ক্লাস্টার তৈরি করুন
নিম্নলিখিত কমান্ড দিয়ে একটি
kindক্লাস্টার তৈরি করুন:kind create cluster --name psa-ns-levelআউটপুট হবে এরকম:
Creating cluster "psa-ns-level" ... ✓ Ensuring node image (kindest/node:v1.25.0) 🖼 ✓ Preparing nodes 📦 ✓ Writing configuration 📜 ✓ Starting control-plane 🕹️ ✓ Installing CNI 🔌 ✓ Installing StorageClass 💾 Set kubectl context to "kind-psa-ns-level" You can now use your cluster with: kubectl cluster-info --context kind-psa-ns-level Not sure what to do next? 😅 Check out https://kind.sigs.k8s.io/docs/user/quick-start/নতুন ক্লাস্টারে
kubectlকনটেক্সট সেট করুন:kubectl cluster-info --context kind-psa-ns-levelআউটপুট হবে এরকম:
Kubernetes control plane is running at https://127.0.0.1:50996 CoreDNS is running at https://127.0.0.1:50996/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
একটি নেমস্পেস তৈরি করুন
example নামে একটি নতুন নেমস্পেস তৈরি করুন:
kubectl create ns example
আউটপুট হবে:
namespace/example created
সেই নেমস্পেসে পড সিকিউরিটি স্ট্যান্ডার্ড সক্রিয় করুন
বিল্ট-ইন পড সিকিউরিটি অ্যাডমিশন দ্বারা সাপোর্টেড লেবেল ব্যবহার করে এই নেমস্পেসে পড সিকিউরিটি স্ট্যান্ডার্ড সক্রিয় করুন। এই ধাপে আপনি নিম্নলিখিত কমান্ড দিয়ে
exampleনেমস্পেসেbaselineপড সিকিউরিটি স্ট্যান্ডার্ডের সর্বশেষ ভার্সন পূরণ না করে এমন পডগুলিতেwarnমোডে করার জন্য একটি চেক কনফিগার করবেন।kubectl label --overwrite ns example \ pod-security.kubernetes.io/warn=baseline \ pod-security.kubernetes.io/warn-version=latestআপনি লেবেল ব্যবহার করে যেকোনো নেমস্পেসে একাধিক পড সিকিউরিটি স্ট্যান্ডার্ড চেক কনফিগার করতে পারেন । নিম্নলিখিত কমান্ডটি
baselineপড সিকিউরিটি স্ট্যান্ডার্ডenforceকরবে, তবে সর্বশেষ ভার্সন (ডিফল্ট ভ্যালু) অনুসারে সীমাবদ্ধ পড সিকিউরিটি স্ট্যান্ডার্ডগুলির জন্যrestrictedস্ট্যান্ডার্ডwarnওauditমোডে প্রয়োগ করবে।kubectl label --overwrite ns example \ pod-security.kubernetes.io/enforce=baseline \ pod-security.kubernetes.io/enforce-version=latest \ pod-security.kubernetes.io/warn=restricted \ pod-security.kubernetes.io/warn-version=latest \ pod-security.kubernetes.io/audit=restricted \ pod-security.kubernetes.io/audit-version=latest
পড সিকিউরিটি স্ট্যান্ডার্ড প্রয়োগ যাচাই করুন
exampleনেমস্পেসে একটিbaselineপড তৈরি করুন:kubectl apply -n example -f https://k8s.io/examples/security/example-baseline-pod.yamlপডটি তৈরি হবে, তবে একটি সতর্কবার্তা সহ। উদাহরণস্বরূপ:
Warning: would violate PodSecurity "restricted:latest": allowPrivilegeEscalation != false ... pod/nginx createddefaultনেমস্পেসে একই পড তৈরি করুন:kubectl apply -n default -f https://k8s.io/examples/security/example-baseline-pod.yamlআউটপুট হবে:
pod/nginx created
example নেমস্পেসে পড সিকিউরিটি স্ট্যান্ডার্ড প্রয়োগ করা হয়েছে, তাই সতর্কবার্তা দেখানো হয়েছে। কিন্তু default নেমস্পেসে কোন সতর্কবার্তা ছাড়াই পডটি তৈরি হয়েছে।
ক্লিন আপ
উপরের ক্লাস্টারটি মুছে ফেলতে নিম্নলিখিত কমান্ড চালান:
kind delete cluster --name psa-ns-level
এর পরের কি
একটি শেল স্ক্রিপ্ট চালিয়ে উপরের সব ধাপ একসাথে সম্পন্ন করুন:
- kind ক্লাস্টার তৈরি
- নতুন নেমস্পেস তৈরি
baselineপড সিকিউরিটি স্ট্যান্ডার্ডenforceমোডে এবংrestrictedপড সিকিউরিটি স্ট্যান্ডার্ডwarnওauditমোডে প্রয়োগ- নির্দিষ্ট সিকিউরিটি স্ট্যান্ডার্ড সহ একটি পড তৈরি