Khái niệm
Trang này giải thích các khái niệm nền tảng của Access Hub. Đọc trước khi phân quyền hoặc tích hợp API, vì hầu hết hành vi của hệ thống xoay quanh hai ý: dữ liệu thuộc về công ty nào, và người dùng có quyền gì.
Đa công ty (multi-tenant)
Một hub phục vụ nhiều công ty. Mỗi công ty (Company) sở hữu dữ liệu riêng và người dùng của công ty đó không thấy dữ liệu của công ty khác.
CompanyScope
Việc cô lập dữ liệu dựa trên CompanyScope, một global scope của Eloquent. Mọi model thuộc về công ty mang cột company_id, và scope tự động thêm điều kiện lọc theo công ty của người dùng đang đăng nhập vào mọi truy vấn.
Hai trường hợp được bỏ qua scope:
- Người dùng có vai trò
super-admin. - Người dùng có quyền
companies.view-all.
Dữ liệu toàn cục và dữ liệu theo công ty
| Loại | Ví dụ | Ghi chú |
|---|---|---|
| Theo công ty | Máy chủ, kết nối, dải mạng, DNS, chứng chỉ SSL, agent giám sát, License | Mang company_id, chịu CompanyScope |
| Toàn cục | Collector giám sát, danh mục quyền, vai trò hệ thống | Không thuộc công ty nào |
Mẹo: Tên và địa chỉ là duy nhất toàn hệ thống
Toàn hệ thống dùng chung một mạng nội bộ. Tên máy chủ, hostname và địa chỉ IP là duy nhất trên toàn hệ thống, không phân biệt theo công ty. Hai công ty không thể cùng đặt một tên máy chủ.
Người dùng, nhóm, vai trò và quyền
Quyền (permission)
Quyền là một khóa dạng tài-nguyên.hành-động, ví dụ servers.view hay iac.apply. Danh mục quyền (PermissionCatalog) được nhóm như sau:
| Nhóm | Phạm vi |
|---|---|
companies | Xem, quản lý, xóa, xóa vĩnh viễn công ty, companies.view-all |
infrastructure | Máy chủ, kết nối (firewall), thiết bị F5, virtual port, pool member, topology |
networking | Domain, IP công khai, subnet, DNS record, proxy, proxy target, chứng chỉ SSL, SSL binding |
access | Tài khoản PAM |
iac | Yêu cầu IaC, workflow phê duyệt, khung giờ làm việc |
administration | Người dùng, vai trò, nhóm người dùng, danh mục tùy chọn, cài đặt, API token |
commands | Xem, quản lý, chạy lệnh theo lịch |
audit | Xem nhật ký kiểm toán |
notifications, notification-templates | Thông báo và mẫu thông báo |
queue | Xem và quản lý hàng đợi |
webhooks | Kênh webhook |
monitoring | monitoring.view, monitoring.manage, monitoring.delete, monitoring.collector |
Hầu hết tài nguyên có bốn quyền: .view, .manage, .delete, .purge (xóa vĩnh viễn).
Vai trò (role)
Vai trò là một tập quyền. Hub cài sẵn các vai trò sau:
| Vai trò | Mục đích |
|---|---|
super-admin | Có mọi quyền nhờ một gate, danh sách quyền của vai trò này để trống có chủ đích |
administrator | Mọi quyền (*) |
infrastructure-engineer | Xem, quản lý, xóa tài nguyên hạ tầng và mạng, nộp và xuất IaC |
access-manager | Quản lý tài khoản PAM, xem máy chủ, người dùng và IaC |
auditor | Chỉ xem, phục vụ kiểm toán |
| Vai trò collector | Chỉ có quyền monitoring.collector, dành cho tài khoản dịch vụ của collector |
Bạn có thể tạo thêm vai trò riêng trong Quản trị, Vai trò. Nhóm người dùng (UserGroup) giúp gom người dùng để gán chung quyền hoặc người duyệt.
Xác thực
Đăng nhập dùng Laravel Fortify, hỗ trợ xác thực hai lớp. Hub cũng có thể đăng nhập một lần (SSO) qua Socialite. Tích hợp máy với máy dùng token Bearer (Sanctum), xem REST API v1.
Kho tài nguyên hạ tầng
Hub quản lý bản ghi của các loại tài nguyên sau, mỗi loại có trang danh sách, trang chi tiết và có thể khai báo bằng IaC:
| Nhóm | Tài nguyên | kind trong YAML |
|---|---|---|
| Máy chủ | Server | Server |
| Mạng | Subnet, IP công khai | Subnet (IP công khai không có kind riêng) |
| Truy cập | Kết nối (firewall), tài khoản PAM | Connection, PamAccount |
| Proxy | Proxy, proxy target | Proxy, ProxyTarget |
| DNS | Domain, DNS record | Domain, DnsRecord |
| F5 | Thiết bị, virtual port, pool member | F5Device, F5VirtualPort, F5PoolMember |
| SSL | Chứng chỉ, binding | SslCertificate |
Trang topology vẽ quan hệ giữa các tài nguyên. Các tài nguyên có hạn dùng (như chứng chỉ SSL) sinh thông báo sắp hết hạn.
Nhật ký kiểm toán
Mọi thay đổi dữ liệu quan trọng được ghi vào nhật ký kiểm toán: ai thay đổi, thay đổi gì, khi nào. Người có quyền audit-log.view xem nhật ký trong giao diện hoặc qua API. Lệnh audit-log:purge dọn các bản ghi cũ theo lịch.
Thùng rác
Xóa một bản ghi là xóa mềm: bản ghi vào thùng rác và khôi phục được bằng quyền .delete. Xóa vĩnh viễn cần quyền .purge. Lệnh trash:purge dọn định kỳ các bản ghi đã nằm trong thùng rác quá lâu.
Danh mục tùy chọn (option lists)
Các trường chỉ nhận một số giá trị cố định (môi trường, vai trò máy chủ, nền tảng, trạng thái, hệ điều hành, trung tâm dữ liệu, vùng mạng...) lấy giá trị từ bảng OptionList thay vì cố định trong mã. Quản trị viên chỉnh các giá trị trong Quản trị, Danh mục tùy chọn. Mỗi giá trị có nhãn theo từng ngôn ngữ, thứ tự sắp xếp và cờ kích hoạt, nên thêm ngôn ngữ mới không đòi hỏi đổi cấu trúc dữ liệu.
Bước tiếp theo
- IaC và phê duyệt: khai báo tài nguyên bằng YAML và cho qua phê duyệt.
- Giám sát: gắn agent vào máy chủ trong kho tài nguyên.