تخطَّ إلى المحتوى

Pod Security Admission و Admission Policies

ستتعلم كيف يعمل admission control، وكيف تستخدم Pod Security Admission و ValidatingAdmissionPolicy لفرض قواعد أساسية.

Admission هو البوابة التي يمر منها أي request بعد authentication و authorization وقبل حفظه في etcd. هنا تستطيع منع Pod privileged أو image من registry غير مسموح.

apiVersion: v1
kind: Namespace
metadata:
name: restricted-apps
labels:
pod-security.kubernetes.io/enforce: restricted
pod-security.kubernetes.io/audit: restricted
pod-security.kubernetes.io/warn: restricted
apiVersion: v1
kind: Pod
metadata:
name: secure-nginx
namespace: restricted-apps
spec:
securityContext:
runAsNonRoot: true
seccompProfile:
type: RuntimeDefault
containers:
- name: nginx
image: nginxinc/nginx-unprivileged:1.27
ports:
- containerPort: 8080
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop: ["ALL"]
resources:
requests:
cpu: "50m"
memory: "64Mi"
limits:
cpu: "250m"
memory: "128Mi"
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingAdmissionPolicy
metadata:
name: require-team-label
spec:
failurePolicy: Fail
matchConstraints:
resourceRules:
- apiGroups: [""]
apiVersions: ["v1"]
operations: ["CREATE", "UPDATE"]
resources: ["pods"]
validations:
- expression: "has(object.metadata.labels) && has(object.metadata.labels.team)"
message: "Pods must have a team label"
الأداةالاستخدام
Pod Security Admissionمستويات جاهزة لأمان Pods
ValidatingAdmissionPolicyقواعد CEL مخصصة بدون webhook خارجي
Policy engines مثل Kyverno/Gatekeeperسياسات أعمق وتقارير وتجارب مؤسسة

Lab: تفعيل restricted namespace

المستوى: مبتدئ الوقت: 30 دقيقة الأدوات: kubectl

الهدف: إنشاء namespace بسياسة restricted وتشغيل Pod متوافق.

  • Cluster يدعم Pod Security Admission.
Terminal window
kubectl apply -f namespace.yaml
kubectl apply -f secure-pod.yaml
kubectl get pod -n restricted-apps
NAME READY STATUS RESTARTS
secure-nginx 1/1 Running 0
Terminal window
kubectl delete namespace restricted-apps
الخطأالنتيجة
تفعيل restricted فجأة على namespace قديمworkloads قد تفشل عند أول update
عدم استخدام warn و audit أولاتفاجأ الفريق بالرفض
الاعتماد على admission فقطلا يغني عن RBAC و image security