Skip to main content

Azure Key Vault: Hướng dẫn Toàn diện

1. Giới thiệu

Vấn đề

Lập trình viên thường hay lưu password database, API Key ngay trong code (Hardcode) hoặc file config (appsettings.json). -> Rủi ro: Lộ password khi commit lên Git. Khó thay đổi password (phải sửa code, deploy lại).

Giải pháp: Key Vault

Là két sắt trên mây để lưu trữ bí mật.

  • Code không lưu password. Code chỉ lưu URL của Key Vault.
  • Khi chạy, Code dùng Managed Identity để gõ cửa Key Vault xin password.

2. Key Vault chứa cái gì?

  1. Secrets: Các chuỗi bí mật (Password DB, Connection String, API Token). Đây là cái Dev hay dùng nhất.
  2. Keys: Khóa mã hóa (Encryption Key). Dùng để mã hóa dữ liệu. Key Vault tự sinh và quản lý khóa, bạn không bao giờ nhìn thấy Private Key.
  3. Certificates: Chứng chỉ SSL/TLS cho HTTPS. Key Vault có thể tự động gia hạn chứng chỉ sắp hết hạn.

3. Quản lý truy cập

Làm sao để cấp quyền vào Két sắt?

Access Policies (Cũ)

  • Giao diện đơn giản: "Cho user A quyền Get Secret".
  • Nhược điểm: Quyền áp dụng cho toàn bộ Key Vault. User A đọc được tất cả secret.

Azure RBAC (Mới - Khuyên dùng)

  • Dùng hệ thống Role chuẩn của Azure (Key Vault Secrets User, Key Vault Secrets Officer).
  • Ưu điểm: Có thể phân quyền chi tiết cho từng Secret riêng lẻ.

4. Best Practices

  1. Managed Identity: Luôn dùng Managed Identity cho App để truy cập Key Vault. Không bao giờ dùng Client Secret (vì lại phải tìm chỗ giấu Client Secret).
  2. Soft Delete: Bật tính năng này (giống Thùng Rác). Nếu lỡ tay xóa Key Vault, bạn có thể khôi phục lại trong vòng 90 ngày.
  3. Purge Protection: Chống xóa vĩnh viễn. Ngay cả Admin cũng không thể xóa sạch khỏi Thùng Rác cho đến khi hết hạn. Chống kẻ xấu phá hoại.