Triển khai an toàn
Cấu hình HieraChain ở môi trường production với các biện pháp bảo vệ cơ bản (AUTH, CORS/HSTS, Rate Limit, API key) và bảo vệ tài nguyên (Resource Guard).
Chuẩn bị môi trường
- Quản lý secrets bằng biến môi trường/secret manager (không commit .env lên VCS).
- Bật logging phù hợp (
LOG_LEVEL=INFOhoặcWARNING).
Bật xác thực API Key
Trong production, xác thực API key phải bật (theo ProductionSettings). Đối với môi trường dev/test, có thể bật thủ công:
Client cần gửi header:
Mã xác minh API key: hierachain/security/verify/api_key_verifier.py.
Cấu hình CORS
Chỉ cho phép origin tin cậy trong production:
# .env
HRC_CORS_ALLOW_ALL=false
HRC_CORS_ORIGINS=https://admin.example.com,https://console.example.com
Bật HSTS (HTTPS)
Thêm header HSTS để trình duyệt cưỡng bức HTTPS:
Bật Rate Limiting
Giảm thiểu DoS ở cấp ứng dụng:
Lưu ý: triển khai thực tế nên kết hợp rate limit ở reverse proxy (Nginx/Envoy/API Gateway).
Bảo vệ tài nguyên (Lưu ý)
Không có ResourceGuardMiddleware hay security/resource_guard.py trong code. Bảo vệ DoS/limit thực tế là: api/middleware.py:add_rate_limit / add_payload_limit, và kiểm tra HRC_RAM_CRITICAL_THRESHOLD / HRC_EVENT_POOL_MAX_SIZE trong ordering/storage. Đừng import ResourceGuardMiddleware không tồn tại; hãy kết hợp rate limiting ở app với reverse-proxy.
Khởi động dịch vụ
Mặc định phục vụ tại http://localhost:2661. Đặt HRC_API_HOST/HRC_API_PORT nếu cần.
Kiểm chứng nhanh
-
Thiếu API key (khi
HRC_AUTH_ENABLED=true) → kỳ vọng 401/403: -
Có API key:
-
Tải nặng → ResourceGuard có thể trả 503 (nếu ngưỡng vượt quá).
Secrets & cấu hình an toàn
- Không in secrets ra log/console.
- Dùng
python-dotenvchỉ trong dev; production dùng hệ thống secrets (K8s Secret, Vault…). - Kiểm tra
hierachain/security/secure_logging.pyvàsecurity/sanitization.pyđể tránh rò rỉ dữ liệu nhạy cảm.
Production Checklist
Dưới đây là checklist nhanh để triển khai HieraChain trong production:
Bắt buộc
# Thiết lập môi trường production
export HRC_ENV=production
# Bật xác thực
export HRC_AUTH_ENABLED=true
# Chính sách tin cậy P2P nghiêm ngặt
export HRC_P2P_TRUST_POLICY=strict
Khuyến nghị
# Sử dụng biến môi trường cho master key
export HRC_MASTER_KEY_SOURCE=env
# Bật rate limiting
export HRC_RATE_LIMIT=true
export HRC_RATE_LIMIT_RPM=100
# Bật HSTS
export HRC_HSTS_ENABLED=true
Optional (Enterprise)
# Sử dụng Vault bên ngoài (biến thực tế là HRC_VAULT_TOKEN / HRC_VAULT_PATH / HRC_VAULT_URL, không phải HRC_VAULT_ADDR)
export HRC_VAULT_TOKEN=your_token
export HRC_VAULT_PATH=/path/to/vault
# HSM không có cờ boolean HRC_HSM_ENABLED trong code; dùng interface KeyProvider + HRC_VAULT_* / tích hợp HSM bên ngoài
Kiểm tra cấu hình
Sau khi cấu hình, bạn có thể kiểm tra cấu hình bảo mật bằng cách:
from hierachain.config.settings import check_security_config
warnings = check_security_config()
for w in warnings:
print(f"WARNING: {w}")
Mẹo
- Chỉ WARN, không ngăn chặn dev dùng insecure mode (giữ flexibility)
- Dev tự handle enterprise integrations (LDAP, HSM, SIEM) bên ngoài
Liên quan
- Mô‑đun Security: Security
- Kiến trúc Bảo mật: Bảo mật (chuyên sâu)
- Tham chiếu Cấu hình: Config