Explore all courses in this category.
Explore all courses in this category.
Nguyễn Đình Cường
0 comment
09 Nov, 2026
Một trong những sự cố phổ biến nhất của lập trình viên là vô tình đẩy khóa API hay mật khẩu database lên kho mã công khai. Bot quét kho mã hoạt động liên tục và có thể phát hiện chúng chỉ sau thời gian rất ngắn. Bài này giúp bạn quản lý bí mật đúng cách trong quy trình CI/CD.
Secret là mọi giá trị mà ai biết nó có thể làm hại hệ thống: mật khẩu database, khóa API, token truy cập, khóa riêng SSH, chứng chỉ, chuỗi ký tự dùng để ký phiên đăng nhập. Quy tắc vàng: secret không bao giờ nằm trong mã nguồn.
.env bị commit nhầm.Mọi nền tảng CI/CD phổ biến đều có chỗ lưu secret được mã hóa:
Trong pipeline, bạn tham chiếu chúng qua biến, không bao giờ viết giá trị thật:
- name: Deploy
run: ./deploy.sh
env:
API_TOKEN: ${{ secrets.API_TOKEN }}Nền tảng sẽ tự che giá trị đã biết trong log, nhưng đừng dựa hoàn toàn vào điều đó. Tránh các lệnh như echo $API_TOKEN hoặc in toàn bộ biến môi trường.
Thêm vào .gitignore:
.env
.env.*
!.env.exampleĐồng thời giữ một file .env.example chứa tên biến với giá trị giả để đồng đội biết cần khai báo những gì. Việc này vừa an toàn vừa giúp tài liệu hóa cấu hình.
Xóa commit khỏi lịch sử Git không đủ, vì giá trị có thể đã bị sao chép. Hãy làm theo thứ tự sau:
Có các công cụ quét mã nguồn tìm chuỗi giống khóa hoặc mật khẩu, và nhiều nền tảng có sẵn tính năng này. Bạn cũng có thể dùng pre-commit hook chạy trên máy trước khi commit. Hàng rào tự động luôn đáng tin hơn trí nhớ con người.
Khi hệ thống lớn dần, có thể dùng dịch vụ quản lý bí mật của nhà cung cấp cloud hoặc các công cụ chuyên dụng. Ứng dụng lấy secret lúc chạy thay vì được nhúng sẵn. Với dự án nhỏ, secret của nền tảng CI cộng với biến môi trường trên máy chủ là điểm khởi đầu hợp lý.
Hãy coi secret như chìa khóa nhà: không dán lên tường. Không commit, không in log, cấp quyền tối thiểu, và biết cách xoay vòng khi sự cố xảy ra. Thói quen này tốn ít công mà tránh được thiệt hại lớn.
Muốn học cách bảo mật quy trình triển khai trong các dự án thực tế, bạn có thể xem khóa học DevOps trên codebem.com.
Nguyễn Đình Cường
0 comment