
Kubernetes Security in Practice (Phần 1)
Từ Supply Chain đến Runtime: Bảo vệ Kubernetes ngay từ trước khi Deploy
Series: Kubernetes Security in Practice (1/4)⏱️ Thời gian đọc: ~12 phút
Mở đầu
Nếu hỏi một DevOps Engineer:
"Điều gì nguy hiểm nhất trong Kubernetes?"
Nhiều người sẽ trả lời:
- Pod chạy bằng
root - Không có RBAC
- Không có NetworkPolicy
Tất cả đều đúng.
Nhưng trên thực tế, rất nhiều cuộc tấn công đã bắt đầu từ trước khi Pod được tạo ra.
Một Docker Image chứa lỗ hổng (CVE). Một dependency độc hại. Một Secret vô tình bị commit lên Git.
Khi image được deploy, toàn bộ cluster đã mang theo rủi ro.
Đó là lý do Kubernetes Security phải bắt đầu từ Supply Chain.
Một cuộc tấn công Kubernetes diễn ra như thế nào?
Điểm quan trọng
- Kẻ tấn công không cần chiếm toàn bộ Kubernetes Cluster ngay từ đầu.
- Chỉ cần khai thác thành công một mắt xích trong chuỗi tấn công, chúng có thể tiếp tục leo thang đặc quyền (Privilege Escalation).
- Từ đó, mở rộng quyền truy cập và tiến tới kiểm soát toàn bộ Cluster.
Mục tiêu của Kubernetes Security
- Cắt đứt chuỗi tấn công ở càng nhiều mắt xích càng tốt.
- Áp dụng cơ chế Defense in Depth (phòng thủ nhiều lớp) để nếu một lớp bị vượt qua, các lớp còn lại vẫn bảo vệ hệ thống.
- Giảm thiểu khả năng lateral movement và privilege escalation của kẻ tấn công.
Mô hình bảo mật 4C của Kubernetes
Một cách phổ biến để nhìn nhận Kubernetes Security là mô hình 4C
(Cloud → Cluster → Container → Code)
- Mỗi lớp đóng vai trò bảo vệ và bổ sung cho lớp bên trong.
- Nếu một lớp bị xâm phạm, các lớp bên trong cũng sẽ chịu rủi ro cao hơn.
- Ví dụ:
- Cloud bị xâm nhập → toàn bộ Cluster có thể bị ảnh hưởng.
- Container Image chứa lỗ hổng hoặc mã độc → Kubernetes khó có thể bảo vệ workload khi container đã được triển khai.
- Không có giải pháp duy nhất (silver bullet) để bảo vệ Kubernetes.
- Bảo mật Kubernetes cần áp dụng Defense in Depth (phòng thủ nhiều lớp), kết hợp nhiều cơ chế bảo vệ ở tất cả các lớp của mô hình 4C.

Mô hình 4C giúp chúng ta hiểu các lớp cần được bảo vệ trong Kubernetes. Tuy nhiên, trước khi một workload đi vào các lớp này, nó phải trải qua toàn bộ chuỗi cung ứng phần mềm (Software Supply Chain).
Nếu Supply Chain bị xâm phạm, rủi ro sẽ theo workload đi qua tất cả các lớp của mô hình 4C. Vì vậy, bài viết này sẽ tập trung vào Supply Chain Security – lớp phòng thủ trước khi ứng dụng được triển khai lên Kubernetes.
Supply Chain Security
Mục tiêu: Đảm bảo chỉ những image an toàn và đáng tin cậy mới được triển khai lên Kubernetes.
Trước khi Pod được chạy, ứng dụng phải đi qua nhiều bước trong Software Supply Chain. Chỉ cần một bước không đạt yêu cầu thì image không nên được deploy.
1. Image Security
Vulnerability Scanning
Phát hiện lỗ hổng bảo mật (CVE) trước khi image được triển khai.
Base Image Selection
Ưu tiên minimal base image như Distroless, Chainguard hoặc Alpine khi phù hợp.
Version Pinning
Không nên sử dụng tag latest. Thay vào đó nên pin version cụ thể.
2. Deployment Validation
Admission Policy
Ngay cả khi CI/CD đã scan image, Kubernetes vẫn nên kiểm tra lần cuối trước khi cho phép Pod được tạo.
3. Common Mistakes
Những sai lầm thường gặp trong Supply Chain Security
4. Security Checklist
Trước khi Deploy lên Kubernetes
- ✔ Scan Image
- ✔ Pin Version
- ✔ Minimal Base Image
- ✔ Image Signing
- ✔ Trusted Registry
- ✔ Admission Policy
Tổng quan cấu trúc
Supply Chain Security
│
├── Image Security
│ ├── Vulnerability Scanning
│ ├── Base Image Selection
│ └── Version Pinning
│
├── Deployment Validation
│ └── Admission Policy
│
├── Common Mistakes
│
└── Security Checklist
Tổng kết
Trong bài này, chúng ta đã thấy rằng Kubernetes Security không bắt đầu ở Cluster mà bắt đầu từ Supply Chain. Một image không an toàn sẽ mang rủi ro theo suốt vòng đời của workload, từ lúc build đến khi chạy trong Kubernetes.
Ở Phần 2, chúng ta sẽ đi sâu vào Cluster Security, tập trung vào hai cơ chế quan trọng nhất:
- RBAC (Role-Based Access Control)
- Network Policy
Đây là hai cơ chế giúp giới hạn quyền truy cập, ngăn chặn Privilege Escalation và Lateral Movement ngay cả khi một container đã bị compromise.
Muốn tìm hiểu sâu hơn?
Nếu bạn đang chuẩn bị cho các chứng chỉ Kubernetes hoặc muốn xây dựng nền tảng Kubernetes Security một cách bài bản, bạn có thể tham khảo:
- CKA – Certified Kubernetes Administrator: https://cloudmentor.pro/courses/cka
- CKAD – Certified Kubernetes Application Developer: https://cloudmentor.pro/courses/ckad
Hoặc tìm hiểu thêm về mình tại: Mentor Nguyễn Văn Phong: https://cloudmentor.pro/mentors/nguyen-van-phong