Seccomp, AppArmor và Capabilities
DevOpsSecurity

Seccomp, AppArmor và Capabilities

Bài 54 bắt pod khai runAsNonRoot, drop ALL capabilities, seccomp RuntimeDefault — nhưng đó mới là chính sách ở mức Kubernetes. Bài này xuống tầng kernel xem chúng làm gì thật: đọc /proc/self/status của hai pod, một mặc định một đã siết, so từng dòng CapEff, Seccomp, NoNewPrivs, AppArmor. Rồi chứng minh bằng tay rằng drop một capability chặn được thao tác cụ thể — chown bị từ chối ngay cả khi container vẫn chạy bằng root.

K
KaiMay 24, 2026
Pod Security Standards và Admission
DevOpsSecurity

Pod Security Standards và Admission

RBAC quyết ai được tạo pod, nhưng không xét pod đó xin gì. Một pod chạy privileged hay mượn hostNetwork là cửa thoát ra node. Pod Security Admission chặn ngay từ lúc tạo: gắn một nhãn lên namespace, API server đo pod theo ba mức privileged/baseline/restricted và từ chối pod vi phạm. Bài này bật restricted lên một namespace, xem pod thường bị đá ra với danh sách lỗi, viết một pod tuân thủ cho chạy được, rồi thử chế độ warn chỉ cảnh báo.

K
KaiMay 24, 2026
ServiceAccount và Bound Token
DevOpsSecurity

ServiceAccount và Bound Token

Bài 51–52 dùng ServiceAccount mà chưa mổ nó. Bài này đi vào cơ chế: mỗi namespace có một SA default, kubelet tự tiêm vào pod một token ngắn hạn qua projected volume, và token đó bound vào đúng pod lẫn node. Để chứng minh là bound thật, ta lấy token trong một pod đang chạy, gọi API thành công, rồi xóa pod — token cũ lập tức thành 401. Kèm cách tắt auto-mount và đọc các claim trong JWT.

K
KaiMay 24, 2026
RBAC: Biến Danh Tính Thành Quyền
DevOpsSecurity

RBAC: Biến Danh Tính Thành Quyền

Bài 51 dừng ở chỗ API server biết bạn là ai. RBAC trả lời câu còn lại: bạn được làm gì. Bài này dựng một ServiceAccount chỉ đọc được pod trong một namespace, kiểm chứng bằng kubectl auth can-i lẫn token thật — thấy nó list pod được nhưng đọc secret hay tạo pod thì bị 403. Rồi xem cách một RoleBinding trỏ vào ClusterRole có sẵn để cấp quyền gói gọn trong một namespace, và vì sao ClusterRole view cố tình không cho đọc secret.

K
KaiMay 24, 2026
Authentication và Đường Vào API Server
DevOpsSecurity

Authentication và Đường Vào API Server

Mỗi lệnh kubectl là một request HTTPS tới API server, và trước khi chạm được dữ liệu nó phải qua ba chặng: authentication, authorization, admission. Bài này mở Part XI bằng chặng đầu — API server nhận ra bạn là ai. Ta soi ba cách cụm tự dựng chứng thực một request: client certificate (cái admin.kubeconfig đang dùng), token của ServiceAccount, và request ẩn danh — bằng kubectl auth whoami và lệnh thật trên cụm.

K
KaiMay 24, 2026
NetworkPolicy: Tường Lửa Theo Nhãn
DevOpsSecurity

NetworkPolicy: Tường Lửa Theo Nhãn

Mặc định mọi pod trong cluster nói chuyện tự do với nhau — phẳng và mở. Bài này dùng NetworkPolicy để khoá lại: chặn hết ingress vào một pod rồi chỉ mở cho đúng nhãn được phép, test thật trên cụm Cilium. Và vì cụm chạy eBPF, ta xem được Hubble in ra verdict DROPPED/FORWARDED cho từng gói, kèm Cilium identity chứng minh policy bám vào nhãn chứ không phải IP.

K
KaiMay 24, 2026
Gói Cert Thành kubeconfig và Cấu Hình Mã...
DevOpsSecurity

Gói Cert Thành kubeconfig và Cấu Hình Mã Hóa Secret

Certificate đã có, nhưng các binary Kubernetes đọc chúng qua một dạng file gói sẵn: kubeconfig. Bài này sinh kubeconfig cho admin, controller-manager, scheduler, kube-proxy và từng kubelet — giải thích mô hình cluster/user/context và vì sao control plane trỏ về 127.0.0.1 còn worker trỏ qua load balancer. Cuối bài tạo file mã hóa Secret at rest cho etcd.

K
KaiMay 24, 2026