নিরাপত্তা
কুবারনেটিস ক্লাস্টার পরিচালনাকারী বেশিরভাগ সংস্থা এবং লোকেদের জন্য নিরাপত্তা একটি গুরুত্বপূর্ণ উদ্বেগ।
আপনি একটি মৌলিক নিরাপত্তা চেকলিস্ট খুঁজে পেতে পারেন
কুবারনেটিস ডকুমেন্টেশনের অন্যত্র ।
কুবারনেটিসের নিরাপত্তার দিকগুএও কীভাবে স্থাপন এবং পরিচালনা করতে হয় তা শিখতে,
আপনি এই বিভাগে টিউটোরিয়ালগুলো অনুসরণ করতে পারেন।
1 - নেমস্পেস লেভেলে পড সিকিউরিটি স্ট্যান্ডার্ড প্রয়োগ করুন
নোট
এই টিউটোরিয়াল শুধুমাত্র নতুন ক্লাস্টারের জন্য প্রযোজ্য।
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 created
-
default নেমস্পেসে একই পড তৈরি করুন:
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
এর পরের কি