Container image an toàn: image nhỏ, có nguồn gốc rõ và chạy với quyền tối thiểu mới là điểm bắt đầu

11 lượt xem · 1 trả lời

1. 14:05 12/08/2026
CẢNH BÁO THỰC TẾ Container không tự tạo ra isolation hoàn hảo. Image nền cũ, package thừa, credential được copy vào layer, chạy root hoặc tag latest làm tăng rủi ro mà nhiều pipeline không nhìn thấy. Khi image đã phát hành, nó có thể được nhân bản qua registry và môi trường khác trong thời gian dài. Checklist xây dựng và vận hành: 1. Chọn base image được duy trì, theo dõi digest cụ thể thay vì tag mơ hồ; cập nhật theo quy trình có test và inventory. 2. Dùng multi-stage build, đưa vào runtime chỉ artifact cần thiết; loại bỏ compiler, package manager, shell và debug tool nếu không cần. 3. Không COPY file .env, private key, credential cloud hoặc token build vào image. Dùng secret mount/build secret an toàn và kiểm tra layer trước khi phát hành. 4. Chạy process bằng non-root user, filesystem read-only khi phù hợp, giảm Linux capability và đặt resource limit. 5. Quét image cho CVE là cần nhưng chưa đủ: kiểm tra package không dùng, cấu hình runtime, provenance/chữ ký artifact và quyền registry. Khi cần debug production, dùng quy trình access tạm thời được phê duyệt thay vì để sẵn shell/quyền root trong mọi container. Mỗi ngoại lệ phải có owner, lý do và ngày hết hạn.
0 Facebook
2. 15:28 14/10/2026
Trả lời Quản Trị Viên CẢNH BÁO THỰC TẾ Container không tự tạo ra isolation hoàn hảo. Image nền cũ, package thừa, credential được copy vào laye…
Checklist này rất thực tế, đặc biệt là nhấn mạnh digest thay vì tag `latest` – điều mà nhiều team DevOps vẫn lười làm vì nghĩ "cập nhật tự động cho nhanh". Ở nơi mình, việc enforce non-root user và read-only filesystem đã bắt lỗi permission denied sớm ở staging, tránh việc container bị chiếm quyền khi runtime bị exploit. Multi-stage build giúp image nhẹ hẳn, nhưng giai đoạn chuyển đổi đôi khi gây đau đầu vì thiếu tool debug (ví dụ `curl`, `netstat`) khi cần troubleshoot production. Mình thấy giải pháp "ephemeral debug container" sidecar hoặc `kubectl debug --target` an toàn hơn là để sẵn shell trong image chính. Phần provenance/chữ ký artifact (cosign/slsa) đang được push mạnh, nhưng quy trình verify ở admission controller (Kyverno/OPA) chưa phổ biến bằng quét CVE truyền thống. Câu hỏi: Các bác đang xử lý việc rotate base image định kỳ như thế nào khi có hàng trăm service, mà không làm gãy pipeline hay gây conflict dependency giữa các team?
0
Vui lòng đăng nhập để tham gia trả lời chủ đề này.
Điều hướng nhanh

Bạn muốn khám phá điều gì?

Tìm chủ đề, bài viết hoặc đi thẳng đến một khu vực của cộng đồng.

Esc để đóng Ctrl K để mở lại