Bảo Mật Multi-Tenant SaaS: Tenant Token Mã Hóa, Scoped API Keys & Caddy HTTP/3
MeiliSizer Blueprint Summary: Đừng bao giờ tạo 10.000 Index riêng cho 10.000 khách hàng SaaS — máy chủ sẽ cạn sạch File Descriptors và RAM quản lý. Gom chung vào một Index kèm trường lọc tenant_id được ký số HMAC.
Vì Sao Mô Hình "Mỗi Khách Hàng 1 Index" Sụp Đổ Khi Vượt 500 Tổ Chức? (MeiliSizer Guide)
Mỗi môi trường LMDB hoặc bảng RocksDB độc lập đều ngốn bộ nhớ quản lý siêu dữ liệu và tệp mở của hệ điều hành. Khi gom 5 triệu bản ghi của 10.000 công ty vào một chỉ mục duy nhất có trường số nguyên tenant_id, mức tiêu thụ RAM giảm tới 65%. Backend của bạn chỉ cần ký cục bộ một mã JWT Tenant Token gắn cứng điều kiện {"filter": "tenant_id = 4821"} để trình duyệt truy vấn thẳng an toàn tuyệt đối.
Cấu Hình Caddyfile Bật HTTP/3 QUIC, Nén Zstd & Keepalive Nội Bộ
# /etc/caddy/Caddyfile — Tối ưu HTTP/3 độ trễ cực thấp trước Meilisearch/Typesense
search.your-saas.io {
encode zstd gzip
header {
Access-Control-Allow-Origin "https://app.your-saas.io"
Access-Control-Allow-Methods "GET, POST, OPTIONS"
Access-Control-Allow-Headers "Content-Type, Authorization, X-Meilisearch-Client, X-TYPESENSE-API-KEY"
Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
}
reverse_proxy 127.0.0.1:7700 {
transport http {
keepalive 90s
keepalive_idle_conns 256
}
}
}
Bảng Định Cỡ RAM MeiliSizer Cho MULTI-TENANT-SECURITY
| Quy Mô Danh Mục | Tập Làm Việc Nóng | Đỉnh RAM Dự Phòng | Cấu Hình Khớp Tải |
|---|---|---|---|
| 500 Công ty / 1M Bản ghi chung | 2.3 GB Chỉ mục gộp | VPS KVM 8GB–16GB | Hostinger KVM 4 ($10.49/tháng) |
| 5.000 Công ty / 5M Bản ghi chung | 12.8 GB Chỉ mục gộp | Xung 3.5GHz+ Độ trễ thấp | Vultr High Frequency 16GB–32GB |
| 25.000+ Công ty / Chuẩn Enterprise | 28.0 GB + Cụm VIP riêng | 64 GB VDS Nhân vật lý | UltaHost VDS 64GB ($95/tháng) |
Checklist Triển Khai MeiliSizer: MULTI-TENANT-SECURITY
- Lưu tenant_id dưới dạng số nguyên (int32/int64) trong filterableAttributes để phép lọc Roaring Bitmap chạy dưới 0.2ms.
- Ký mã Tenant Token có hạn dùng 2 giờ ngay lúc người dùng đăng nhập — không tốn bất kỳ cuộc gọi mạng nào sang máy chủ tìm kiếm!
- Đặt Caddy làm lớp chặn TLS 1.3 + HTTP/3 QUIC kèm nén Zstd giúp giảm 70% dung lượng JSON trả về trên mạng di động.
- Chỉ tách Index riêng cho các khách hàng Tập đoàn lớn (trên 2 triệu dòng dữ liệu riêng) có yêu cầu kiểm toán độc lập.
Vultr High Frequency 3.5GHz+ NVMe (Singapore / Tokyo / US / EU) — MeiliSizer Pick
Xung nhịp 3.5GHz+ xử lý Roaring Bitmap & cây tiền tố cực nhanh • 32 cụm máy chủ toàn cầu (có Singapore/Tokyo)
Hostinger KVM DDR5 NVMe VPS (Docker / Meilisearch 1-Click) — MeiliSizer Option
Giảm tới 67% + Giảm thêm 20% đối tác • 8GB–32GB RAM DDR5 + NVMe Gen4 tối ưu LMDB Mmap
Câu Hỏi Kỹ Thuật MeiliSizer: MULTI-TENANT-SECURITY
- Người dùng mở F12 sửa mã Tenant Token để xem trộm dữ liệu công ty khác được không?
-
Hoàn toàn không thể. Cả Tenant Token của Meilisearch lẫn Scoped Search Key của Typesense đều ký mật mã HMAC-SHA256 lên biểu thức lọc tenant_id; sửa dù chỉ 1 ký tự sẽ bị từ chối ngay ở tầng xác thực.
- Việc tạo Tenant Token cho mỗi phiên đăng nhập có làm chậm API Backend không?
-
Không hề chậm — phép ký HMAC/JWT diễn ra cục bộ trên CPU của ứng dụng Web mất chưa tới 0.05ms và không cần gọi sang Meilisearch.