🔥 Khi làm việc với Docker, có một nguyên tắc cực kỳ quan trọng mà nhiều anh em devops thường bỏ qua: bảo mật thông tin nhạy cảm. Nếu bạn đưa mật khẩu, API key, hoặc các tham số cấu hình vào thẳng trong Dockerfile, thì coi như bạn đã phơi bày bí mật của hệ thống cho bất kỳ ai có quyền truy cập source control.
👉 Đó là lý do tại sao chúng ta cần áp dụng Safe Processing Practices. Một vài điểm cốt lõi:
docker run -itd --env-file=env_file_backend -p 5001:5001 --name netinv_backend backend
docker run -itd --env-file=env_file_frontend -p 5000:5000 --name netinv_frontend frontend
Ở đây, mỗi container sẽ nhận được biến môi trường từ file tương ứng mà không cần lộ trên Dockerfile. Ứng dụng chạy bên trong có thể truy cập các biến này một cách an toàn.
✅ Best Practice:
Anh em DevOps/Automation cần nhớ: Docker daemon yêu cầu quyền root để vận hành, vì vậy chỉ những user tin cậy mới được phép thao tác trên host. Đừng để lỗ hổng bảo mật đến từ chính sự bất cẩn trong việc xử lý config và secrets.
👉 Đó là lý do tại sao chúng ta cần áp dụng Safe Processing Practices. Một vài điểm cốt lõi:
- Không đặt thông tin nhạy cảm trực tiếp trong Dockerfile.
- Sử dụng env-file để truyền biến môi trường vào container. Đây là cách giữ cho bí mật nằm ngoài source code.
- Khi chạy container, chỉ cần tham chiếu đến env-file bằng lệnh:
docker run -itd --env-file=env_file_backend -p 5001:5001 --name netinv_backend backend
docker run -itd --env-file=env_file_frontend -p 5000:5000 --name netinv_frontend frontend
Ở đây, mỗi container sẽ nhận được biến môi trường từ file tương ứng mà không cần lộ trên Dockerfile. Ứng dụng chạy bên trong có thể truy cập các biến này một cách an toàn.
✅ Best Practice:
Dùng env-files để giữ thông tin nhạy cảm ngoài source control nhưng vẫn có thể inject vào container khi cần thiết.
Anh em DevOps/Automation cần nhớ: Docker daemon yêu cầu quyền root để vận hành, vì vậy chỉ những user tin cậy mới được phép thao tác trên host. Đừng để lỗ hổng bảo mật đến từ chính sự bất cẩn trong việc xử lý config và secrets.