SuperAPI AI 工具集

hardening-user-privileges

安全与审计

查看项目

更新于 10-15 19:50

技能介绍

用途:审计并收紧 CockroachDB 的基于角色访问控制(RBAC),识别权限过大的用户、减少 admin 授权、限制 PUBLIC 角色权限、创建用途专用角色并应用最小权限原则。

适用场景:减少拥有 admin 角色的用户;移除 PUBLIC 角色过多的 SELECT、INSERT、UPDATE、DELETE 权限;用专用角色替代宽泛的 admin 授权;响应安全审计中关于权限过大的发现;为生产集群实施 RBAC 最佳实践;将集群纳入最小权限访问模型。

前提条件:需要具备 admin 角色的 SQL 访问权限(修改授权和角色成员关系所必需);了解哪些用户或应用需要何种访问级别;制定应用测试计划,因为撤销授权可能破坏依赖这些授权的应用。可用 SELECT member FROM [SHOW GRANTS ON ROLE admin] WHERE member = current_user(); 检查访问权限。

主要步骤:1)审计当前用户与角色,使用 SHOW USERS、SHOW GRANTS ON ROLE admin 等查询统计 admin 成员并列出 admin 用户;2)识别权限过大的用户,逐一评估 admin 用户,检查 PUBLIC 角色权限及敏感系统权限(如 MODIFYCLUSTERSETTING、CANCELQUERY、CREATEDB 等);3)创建用途专用角色,如只读 analyst_reader、应用服务 app_service、模式管理 schema_manager、监控 monitoring、运维 ops_triage,并配合 GRANT ... ON ALL TABLES IN SCHEMA 与 ALTER DEFAULT PRIVILEGES 覆盖现有及未来表;4)将用户重新分配到专用角色;5)撤销过多授权,包括 REVOKE admin、撤销 PUBLIC 数据权限及不必要的系统权限;6)验证变更,确认 admin 数量减少、PUBLIC 权限最小化,并测试应用的读、写、模式操作及连接认证。

限制与安全注意事项:撤销授权可能导致应用因权限错误而失败。缓解措施包括撤销前审计、先创建替代角色、在预发布环境测试、增量撤销并监控错误日志。不要撤销最后一个 admin 用户、管理模式迁移的自动化账户(除非已创建 schema_manager 角色)以及内置 root 用户的 admin 权限。若应用中断,可紧急重新授予 admin 或特定权限,并建议在变更前记录所有授权快照以便回滚。

相关技能:auditing-cloud-cluster-security、configuring-audit-logging。官方文档涉及 Authorization Overview、GRANT、REVOKE、CREATE ROLE、SHOW GRANTS、System Privileges。