Phân quyền bằng Google Sheet, tiện mà, ai ngờ user cũ vẫn truy cập, lộ dữ liệu!
Một công ty HR gần đây tôi gặp quản lý quyền user bằng Google Sheet, lưu role như “Admin”, “Staff”. User nghỉ việc, quên revoke, dẫn đến lộ dữ liệu lương. Hệ thống sập khi nhân viên cũ “vô tình” truy cập.
Case thực tế: Google Sheet “phá đảo” bảo mật
- Context: Hệ thống HR, 1000 user, quyền Admin/Staff/View-only.
- Quyết định sai: Quản lý role bằng Google Sheet, cập nhật thủ công.
- Vấn đề:
- Quên revoke user cũ, 10 tài khoản vẫn active sau 6 tháng.
- Không có audit trail, không biết ai truy cập dữ liệu.
- Sheet share sai, nhân viên thấy lương đồng nghiệp.
Hậu quả:
- Lộ dữ liệu: Thông tin lương, hợp đồng bị rò rỉ.
- Chi phí: Xử lý vi phạm bảo mật, tốn 500 triệu đồng.
- Danh tiếng: Công ty bị kiện vì bảo mật kém.
Phân tích: Tại sao lại sai?
- Phân quyền thủ công: Google Sheet không scale, dễ lỗi con người.
- Thiếu RBAC/ABAC: Không dùng hệ thống Role-Based/Attribute-Based Access Control.
- Không audit: Không ghi log truy cập, không phát hiện sai sót.
Bài học: Thiết kế phân quyền chuyên nghiệp
- Dùng RBAC/ABAC: Xác định role (Admin, Staff) hoặc attribute (department, level).
- Tích hợp IAM: Dùng Keycloak, AWS IAM, hoặc Laravel Spatie.
- Audit truy cập: Log mọi hành động user, alert khi bất thường.
Code mẫu: RBAC với Laravel Spatie
use Spatie\Permission\Models\Role;
$user->assignRole('admin');
if ($user->hasRole('admin')) {
// Cho phép truy cập
}Góc nhìn CTO
Phân quyền bằng Google Sheet là “chơi với lửa”. Dùng RBAC/ABAC, tích hợp IAM, audit truy cập, để bảo mật không phụ thuộc vào “nhớ hay quên”!
Checklist phân quyền:
- Dùng RBAC/ABAC thay quản lý thủ công.
- Tích hợp IAM (Keycloak, AWS IAM).
- Log và audit truy cập user.
- Revoke quyền user nghỉ việc tự động.
🎯 Tóm lại: Google Sheet quản lý role là “tự mời hacker”. Dùng RBAC, IAM, để dữ liệu không lộ và team không bị kiện!

Đăng nhận xét