Pod Security & Kyverno Admission
Chặn Pod nguy hiểm trước khi scheduler tạo workload.
Nắm bản chất
Pod Security Admission dùng namespace labels enforce/audit/warn theo mức privileged, baseline hoặc restricted. Kyverno bổ sung Policy-as-Code; với Kyverno 1.19, ValidatingPolicy/NamespacedValidatingPolicy và ImageValidatingPolicy APIs mới được ưu tiên so với legacy policies.
Admission chỉ kiểm tra request tạo/cập nhật; không tự xóa mọi Pods đã tồn tại. Triển khai policy từ Audit trước Deny để đo ảnh hưởng. Enforcement phụ thuộc đúng namespace, match constraints và admission controller health.
Luồng hoạt động
Hãy tự giải thích mỗi mũi tên: dữ liệu, quyền hoặc tín hiệu nào được truyền qua bước này?
Lệnh & cấu hình mẫu
apiVersion: v1
kind: Namespace
metadata:
name: security17
labels:
pod-security.kubernetes.io/enforce: restricted
pod-security.kubernetes.io/audit: restricted
pod-security.kubernetes.io/warn: restricted
kubectl create --dry-run=server -f k8s/negative/01-privileged-pod.yaml
Lệnh có placeholder hoặc phụ thuộc môi trường thì cần thay thông tin thực tế, kiểm tra quyền và chỉ thực hiện trên tài nguyên được phép.
Bài tập 10–20 phút
Chạy Kind security lab Buổi 17: privileged Pod phải bị PSA từ chối;
:latest và thiếu owner label bị Kyverno từ chối.
Lỗi dễ mắc
Kyverno ImageValidatingPolicy ví dụ cần signer identities, registry
permissions và match rules thật; không áp dụng Deny lên
production khi còn placeholders.
Tự kiểm tra
Kubernetes Pod Security Admission có kiểm tra image Cosign signature không?Xem đáp án ↗
Không. Cần image verification mechanism như Kyverno ImageValidatingPolicy.
Học thêm qua lab
Có project thực hành đúng với chương này, kèm README và những giới hạn môi trường cần lưu ý.
↓ Tải mã nguồn thực hành chương 17Đối chiếu tài liệu gốc
Cú pháp và khả năng hỗ trợ có thể thay đổi theo phiên bản. Trước khi dùng Production, hãy kiểm tra tài liệu tương ứng.
Mở tài liệu chính thức ↗