Secret thì bọn em tạm thời để vào file .env rồi commit, chứ cũng chưa ai đọc đâu anh… chắc vậy!
Audit GitOps mà thấy file .env chứa API key, DB password commit thẳng lên Git, tôi ngây thơ hỏi lại: “ Sao không public luôn cả repo cho tiện?”. Secret nằm plain-text, hacker chỉ cần clone là có “ chìa khóa vạn năng”.
![]() |
Secret management của team khi commit plain-text lên Git! |
Thực trạng: Secret lỏng lẻo
Thực trạng:
- ConfigMap/Secret chứa plain-text credentials (API key, password) trong repo.
- File .env commit lên Git, không mã hóa, không audit truy cập.
- Không dùng secret management tool, dev copy-paste key thủ công.
Hệ quả:
- Rủi ro rò rỉ: Secret lộ, hacker truy cập DB, API bên thứ ba.
- Không audit được: Không biết ai truy cập secret, khi nào.
- Deploy nguy hiểm: Secret prod nhầm sang dev, gây lỗi nghiêm trọng.
Giải pháp: Secret management
Để bảo mật:
- Dùng sealed-secrets/SOPS: Mã hóa secret trước khi commit, dùng KMS để quản lý key.
- Integrate Vault/Parameter Store: Kéo secret từ HashiCorp Vault hoặc AWS SSM Parameter Store lúc deploy.
- Audit truy cập: Dùng Git history hoặc tool như AWS Secrets Manager để log ai truy cập secret.
Ví dụ: Sealed Secrets với ArgoCD:
apiVersion: bitnami.com/v1alpha1
kind: SealedSecret
metadata:
name: my-secret
spec:
encryptedData:
db-password: AgBy3x... # Mã hóa bằng kubeseal
🎯 Tóm lại: Commit plain-text secret là “tặng quà” cho hacker. Dùng sealed-secrets, SOPS, hoặc Vault để GitOps an toàn, không lo lộ key.
Đăng nhận xét