প্রকল্প সম্পর্কে
# Nirmata Runtime For Kyverno
Nirmata Runtime হলো একটি Kubernetes-নেটিভ রানটাইম সিকিউরিটি টুল, যা কার্নেল স্তরে ওয়ার্কলোডের আচরণ মনিটর ও এনফোর্স করতে eBPF ব্যবহার করে। এটি প্রতি-নোড DaemonSet হিসেবে কাজ করে এবং ক্লাস্টার-স্কোপড `RuntimePolicy` কাস্টম রিসোর্স দ্বারা নির্বাচিত পডে eBPF প্রোগ্রাম সংযুক্ত করে।
## মূল সক্ষমতা
`RuntimePolicy` পাঁচ ধরনের ওয়ার্কলোড আচরণ নিয়ন্ত্রণ করে:
1. **ফাইল ওপেন** – একটি প্রসেস কোন ফাইল ওপেন করে
2. **বাইনারি এক্সিকিউশন** – কোন বাইনারি এক্সিকিউট করে
3. **নেটওয়ার্ক গন্তব্য** – কোথায় ট্রাফিক পাঠায়
4. **অ্যাপ্লিকেশন প্রোটোকল** – কোন প্রোটোকল ব্যবহার করে
5. **DNS রেজোলিউশন** – কোন ডোমেইন নাম রেজলভ করে
সিদ্ধান্ত কার্নেলে নেওয়া হয়, তাই প্রত্যাখ্যাত অপারেশন কখনো সম্পন্ন হয় না। এটি Kyverno-এর মতো অ্যাডমিশন কন্ট্রোলারের পরিপূরক, যা স্টার্টআপের আগে পড স্পেক যাচাই করে, প্রকৃত রানটাইম আচরণ এনফোর্স করে।
## প্রধান বৈশিষ্ট্য
- **Enforce বা monitor মোড**: পলিসি অপারেশন ব্লক করতে পারে (`mode: enforce`) বা শুধু ফলাফল রিপোর্ করতে পারে (`mode: monitor`), প্রতি-পলিসি কনফিগারেশনসহ।
- **CEL-চালিত রুল**: Kyverno-এর লাইব্রেরিসহ Common Expressions Language (CEL) ব্যবহার করে, লিটারেল ভ্যালু, এক্সপ্রেশন এবং পুনঃব্যবহারযোগ্য ভেরিয়েবল সমর্থন করে।
- **Allow-list সহ ডিফল্ট deny**: `deny.values: ["*"]` সেট করে একটি আচরণকে deny-all-except-allowed-এ পরিবর্তন করা যায়।
- **Kubernetes-নেটিভ আউটপুট**: ফলাফল পডের নেমস্পেসে OpenReports `Report` অবজেক্ট হিসেবে লেখা হয়, প্রতি-নোড স্ট্যাটাস কন্ডিশন এবং Prometheus কাউন্টারসহ।
- **Selector স্কোপিং**: পলিসি লেবেল সিলেক্টরের মাধ্যমে পড ও নেমস্পেস টার্গেট করতে পারে, ক্লাস্টার-ওয়াইড।
- **পর্যায়ক্রমিক পুনঃমূল্যায়ন**: `evaluationInterval` পলিসি এক্সপ্রেশন পুনরায় চালায় যাতে বাহ্যিকভাবে উৎসকৃত deny লিস্ট হালনাগাদ থাকে।
## দ্রুত শুরু
Helm-এর মাধ্যমে ইনস্টল:
```bash
helm install kyverno-runtime oci://ghcr.io/nirmata/charts/kyverno-runtime --namespace kyverno-runtime --create-namespace
```
উদাহরণ: একটি পডের জন্য নির্দিষ্ট IP ঠিকানা ব্লক করা:
```yaml
apiVersion: runtime.nirmata.io/v1alpha1
kind: RuntimePolicy
metadata:
name: block-address-sample
spec:
mode: enforce
podSelector:
matchLabels:
app: egress-client
behaviors:
- network:
deny:
values:
- "8.8.8.8"
```
## সীমাবদ্ধতা (Pre-1.0)
- Egress শুধুমাত্র IPv4; IPv6 লিটারেল সমর্থিত নয়।
- ফাইল ওপেন এবং exec এনফোর্সমেন্টের জন্য কার্নেলে BPF-LSM সক্রিয় থাকা প্রয়োজন (`lsm=` বুট প্যারামিটার)।
- নেটওয়ার্ক, প্রোটোকল, open এবং exec পর্যবেক্ষণ eBPF কাউন্টার থেকে পোল করা হয়, তাই ফলাফল বিলম্বিত হতে পারে এবং ক্রমের বদলে কাউন্ট বহন করে। DNS প্রশ্ন রিয়েল-টাইমে স্ট্রিম হয়।
- ব্যতিক্রম এখনো সমর্থিত নয়।
## ডকুমেন্টেশন
এতে quickstart, concepts, installation, platform support (EKS, GKE, AKS, Bottlerocket), examples, shadow AI detection, troubleshooting এবং RuntimePolicy CRD, CEL expressions ও metrics-এর রেফারেন্স ডকুমেন্টেশন অন্তর্ভুক্ত।
## লাইসেন্স
Apache License 2.0
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.