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.