Bảo vệ API key khi build app AI: 7 lỗi khiến hoá đơn tăng vọt sau một đêm
Tóm tắt
Không bao giờ để API key ở frontend, repo hay ảnh chụp màn hình. Đặt key ở server/secret manager, gọi model qua backend của bạn, giới hạn chi tiêu, tách key theo môi trường và xoay key định kỳ. Lộ key → thu hồi ngay, rồi mới điều tra.
7 lỗi hay gặp
| Lỗi | Cách sửa |
|---|---|
| Key nằm trong code frontend / app mobile | Gọi qua backend hoặc serverless function |
Commit file .env lên GitHub | .gitignore + bật secret scanning / push protection |
| Một key dùng cho mọi môi trường | Tách key dev / staging / prod, đặt tên rõ |
| Không có spend limit | Đặt hạn mức trong Console + cảnh báo |
| Dán key vào chat, ticket, ảnh chụp | Dùng secret manager, chia sẻ qua vault |
| Agent đọc được file chứa key | Chặn đọc .env bằng permission deny hoặc hook |
| Không xoay key | Xoay định kỳ và ngay khi có người rời team |
Chặn agent đọc file bí mật (Claude Code)
// .claude/settings.json
{
"permissions": {
"deny": ["Read(./.env)", "Read(./.env.*)", "Read(./secrets/**)"]
}
}Khi lộ key
- Thu hồi (revoke) key ngay trong Console.
- Tạo key mới, cập nhật secret manager.
- Xem usage log để đánh giá thiệt hại.
- Xoá key khỏi lịch sử git (và coi như key cũ đã mất vĩnh viễn).
Tham khảo: Claude Code permissions · GitHub secret scanning