

HashiCorp Vault Là Gì?
HashiCorp Vault là công cụ quản lý bí mật (secrets management) mã nguồn mở, giúp lưu trữ, quản lý và phân phối an toàn các dữ liệu nhạy cảm như mật khẩu, khóa API, chứng chỉ TLS, và token. Vault mã hóa dữ liệu trước khi lưu trữ và cung cấp kiểm soát truy cập chi tiết.
Trong bối cảnh số lượng bí mật tăng theo cấp số nhân cùng với microservices và DevOps, Vault giải quyết bài toán “ai có quyền truy cập gì” một cách hệ thống và tự động. Thay vì rải mật khẩu trong file config và code nguồn, Vault tập trung hóa và bảo vệ mọi thứ.
Tại Cần Vault?
- Quản lý tập trung: Thay vì rải mật khẩu trong file config, code, hay biến môi trường — tất cả tập trung vào Vault.
- Quay vòng tự động: Tự động thay đổi mật khẩu và chứng chỉ theo định kỳ, giảm rủi ro từ bí mật bị lộ.
- Tạo theo yêu cầu (Dynamic Secrets): Tạo tài khoản tạm thời cho từng ứng dụng, tự động hủy sau khi hết hạn.
- Audit logging: Ghi lại mọi truy cập, đáp ứng yêu cầu tuân thủ bảo mật.
- Mã hóa như dịch vụ (Encryption-as-a-Service): Mã hóa dữ liệu trong ứng dụng mà không cần quản lý khóa trực tiếp.
- Zero Trust: Áp dụng nguyên tắc zero trust — không tin tưởng bất kỳ ai theo mặc định.

Kiến Trúc Vault
Vault hoạt động theo mô hình server-client. Máy chủ Vault lưu trữ dữ liệu đã mã hóa trong backend storage (Consul, etcd, Raft, hoặc filesystem). Client giao tiếp qua HTTP API sau khi xác thực.
Vault sử dụng Shamir Secret Sharing để phân tán khóa mã hóa chính (master key) thành nhiều phần (shards). Cần ít nhất số phần quy định (threshold) để tái tạo lại khóa chính, đảm bảo không ai có toàn quyền.
Các Khái Niệm Cơ Bản
- Secret: Cặp key-value chứa dữ liệu nhạy cảm.
- Engine: Mô-đun xử lý loại bí mật cụ thể (KV, PKI, SSH, Database, AWS, v.v.).
- Policy: Quy tắc ACL giới hạn quyền đọc/ghi/liệt kê bí mật theo path.
- Auth Method: Cách xác thực: token, LDAP, OIDC, Kubernetes, AppRole, v.v.
- Seal/Unseal: Mã hóa/khóa khóa chính để bảo vệ Vault khi tắt.
- Root Token: Token đặc biệt có toàn quyền (tương tự root password).
Cài Đặt Nhanh
docker run -d --name vault -p 8200:8200
-e "VAULT_DEV_ROOT_TOKEN_ID=myroot"
-e "VAULT_DEV_LISTEN_ADDRESS=0.0.0.0:8200"
hashicorp/vault:latest
Sau khi khởi động, kết nối qua http://localhost:8200 với token myroot. Sử dụng vault CLI hoặc HTTP API để quản lý bí mật.
Ví Dụ Thực Tế: Lưu Trữ Và Truy Xuất Bí Mật
# Kích hoạt KV secrets engine
vault secrets enable -path=secret kv-v2
# Lưu bí mật
vault kv put secret/myapp password="s3cur3P@ss" dbuser="admin"
# Truy xuất bí mật
vault kv get secret/myapp
Dynamic Secrets — Tính Năng Độc Đáo
Dynamic Secrets là tính năng mạnh mẽ nhất của Vault. Thay vì tạo sẵn tài khoản database, Vault tạo tài khoản tạm thời theo yêu cầu:
- Ứng dụng A cần truy cập PostgreSQL → Vault tạo user A với quyền SELECT, expire sau 1 giờ.
- Ứng dụng B cần truy cập AWS → Vault tạo credential IAM tạm thời, tự động thu hồi sau 15 phút.
- Mỗi credential là duy nhất, không chia sẻ giữa các ứng dụng, giảm thiểu rủi ro.
Tài liệu chi tiết tại Vault Database Secrets và AWS Secrets.
Tích Hợp Với Hệ Sinh Thái
Vault tích hợp sâu với các công nghệ phổ biến:
- Kubernetes: Vault Agent Injector tự động tiêm bí mật vào Pod thông qua annotations. Pod đọc secret qua filesystem mà không cần biết Vault API.
- Terraform: Cung cấp hạ tầng an toàn bằng cách lấy credential từ Vault runtime.
- CI/CD: Tạo token ngắn hạn cho pipeline Jenkins, GitHub Actions, GitLab CI.
- Database: Tạo và quay vòng tài khoản database theo yêu cầu.
- RabbitMQ: Tạo queue và exchange credentials động.
So Sánh Với Các Giải Pháp Khác
| Tính năng | HashiCorp Vault | AWS Secrets Manager | K8s Secrets |
|---|---|---|---|
| Multi-cloud/on-premise | ✓ | ✗ (chỉ AWS) | ✗ (chỉ K8s) |
| Dynamic secrets | ✓ | Một phần | ✗ |
| Encryption-as-a-service | ✓ | ✗ | ✗ |
| Audit log | ✓ Chi tiết | ✓ | ✗ |
| Mã nguồn mở | ✓ | ✗ | ✓ |
| Rotation | ✓ Tự động | ✓ Một phần | ✗ |
Kết Luận
HashiCorp Vault là công cụ không thể thiếu cho bất kỳ tổ chức nào muốn bảo mật hệ thống một cách chuyên nghiệp. Với dynamic secrets, audit logging, và tích hợp đa nền tảng, Vault giúp giảm thiểu rủi ro rò rỉ bí mật và đáp ứng các yêu cầu tuân thủ phức tạp.
Đọc tài liệu chi tiết tại https://developer.hashicorp.com/vault/docs.
