system-db-three-role-security
Skill8 starsChanged 5 months agoMITView on GitHub
系统与数据库运维补充规范。涉及 Linux/SSH、K3s/容器部署、数据库账户权限、巡检审计、安全加固或相关迁移时必须遵循三权分立:系统管理不运行业务、业务独立读写并渐进 rootless、审计独立且强制只读。要求最小化渐进改造,保留证据和回退;不用于无运维影响的普通业务代码修改。
In this repository60 other files it gives its agents.
- animejsSkill
- sketch-animation-videoSkill
- sound-fx-for-videoSkill
- content_series_infographicSkill
- tech-article-seriesSkill
- agent-team-harnessSkill
- ai-agent-collaboration-standardSkill
- ci-cd-workflow-specSkill
- config-as-code-specSkill
- execution-ownership-migrationSkill
- feature-lane-release-workflowSkill
- generation-upgrade-acceptanceSkill
- gitops-canonical-resource-deliverySkill
- harness-workflowSkill
- infrastructure-as-code-specSkill
- issue-pr-traceability-standardSkill
- multi-environment-delivery-and-releaseSkill
- project-development-standardSkill
- store-and-startup-homepage-specSkill
- zero-trust-overlay-deliverySkill
- it-infra-continuous-pngSkill
- image-svg-pptx-proSkill
- autoglm-websearchSkill
- blogwatcherSkill
- Browser AutomationSkill
- docxSkill
- find-skillsSkill
- image-cogSkill
- image-resizerSkill
- pdfSkill
- pptxSkill
- Self-Improving Agent (With Self-Reflection)Skill
- skill-security-checkSkill
- skill-vetterSkill
- video-translatorSkill
- wan-image-video-gen-editSkill
- xlsxSkill
- backup-disaster-recovery-and-data-migrationSkill
- capacity-cost-and-resource-lifecycleSkill
- github-actions-operational-dispatchSkill
- incident-response-and-change-managementSkill
- network-dns-tls-edge-managementSkill
- observability-slo-and-alertingSkill
- secrets-identity-and-access-governanceSkill
- service-catalog-and-runbook-standardSkill
- unified-observability-architectureSkill
- vault-eso-tls-certificate-governanceSkill
- ai-tech-news-videoSkill
- ai-ti-wo-shuo-explainerSkill
- it-infra-evolution-videoSkill
- it-infra-evolution-video-v2Skill
- product-intro-videoSkill
- swimlane-videoSkill
- video-understandingSkill
- ai-news-md-digestSkill
- article-to-image-seriesSkill
- content-pdf-with-imagesSkill
- evolutionary-social-copy-packSkill
- image-series-to-videoSkill
- research-to-slide-deckSkill
The file
Files
系统与数据库安全:三权分立
这是系统、容器和 DB 运维的共同补充规范。检查、部署、账户变更及迁移均按同一边界评估;已有授权、环境门禁、备份恢复和仓库职责规则继续适用。创建规范或进行审查不自动授权生产账户、服务和数据变更。
三类身份
| 身份 | 允许职责 | 权限边界 |
| 系统管理用户 | 主机/控制面管理,受审计的安装、配置、恢复及数据库管理/迁移 | 不作为日常业务进程、应用连接池或巡检的运行身份;管理凭据不注入业务 |
| 业务系统账户 | 每个服务使用独立身份,对必需业务对象独立读写 | 应用实际进程以非 root 运行;不继承宿主机管理、集群管理或 DB 超级权限;不与其他服务混用凭据 |
| 审计安全用户 | 独立存在、可撤销的系统状态、集群状态、监控及授权脱敏数据读取 | 不依赖 root、业务写账户或脚本自律;允许读取有证据,禁止写入/提权/秘密读取有拒绝证据 |
三类是职责分类,不要求不同层使用同一个 Unix 用户名。Linux 用户、Kubernetes 身份、DB 角色和 Vault 身份分别授权、追溯到同一职责。系统管理员/root 具有高信任能力;三权分立不等于对宿主机 root 的绝对隔离。
最小化、渐进改造与迁移
- 先只读盘点有效身份、权限、凭据消费者和当前写者;区分已验证事实与未验证目标。发现旧环境不达标时记录差距,不把它写成已经合规。
- 只改本轮已确认的问题和最小依赖。优先收敛直接提权/秘密暴露入口,再建立审计身份,最后分服务降权与 rootless。不要顺带重建集群、轮换全部凭据、清库或迁移全部服务。
- 旧生产保留可用,新身份先用 UAT/隔离样本验证;一次切换一个服务或连接用途,先灰度再扩大。暂时保留旧凭据只用于有边界、可审计的恢复,明确退出条件;失败时不静默回退成管理员或扩大授权。
- 在移除旧权限前确认实际消费者已使用新身份;不同层权限分开交付,避免把 SSH、RBAC、DB、镜像 UID 和数据卷改动捆绑为不可回退的一次切换。
- 现有数据卷的 UID/GID、所有权与恢复路径先核对。权限不足不默认递归 chown、chmod 777、删除卷或重建库。状态变更前执行与风险相称的备份/恢复检查。
- rootless 迁移失败可按既有授权恢复前一服务版本和身份;目标已产生新数据时不能靠切回旧库完成回退。写者交接、DNS、停机及破坏性恢复沿用独立审批边界。
Linux 与主机权限
- 管理用户与业务服务用户、审计用户分离;业务身份默认无交互登录,业务文件仅授予必要目录权限。
- 审计用户无通用 sudo、容器运行时管理组/套接字权限,不可读取管理员 kubeconfig、私钥、Vault token、应用凭据或 DB 数据目录。
- 跨用户读取状态优先使用受控、脱敏接口或报告。必要的特权读取封装为固定参数白名单;不放行任意 shell、解释器、编辑器、pager 逃逸或任意文件读取。
- 检查文件权限时同时检查父目录、ACL、有效组和实际读取结果。管理员 kubeconfig 默认 0600;需要共享时仅专用管理员组 0640,不把审计用户加入该组。持久生成源与现有文件权限都须覆盖,避免重部署恢复不安全模式。
- 普通审计用户可能写入自己的受控工作目录、缓存及审计输出;不能把“禁止业务/系统变更”宣称为整个操作系统绝对零写入。
K3s 与业务 rootless
- 业务进程的实际 UID/GID 必须非 root;按服务兼容性设置 runAsNonRoot、禁止权限提升、收敛 capabilities、只读根文件系统及显式可写数据目录。
- 不以 privileged、宿主机 PID/IPC/网络、敏感 hostPath 或运行时 socket 代替业务所需权限。确有依赖时记录明确范围和临时例外,验证后逐步移除,不把例外扩散到所有服务。
- “容器内业务进程非 root”与“容器运行时本身 rootless”分别记录。K3s 控制面/节点守护进程的管理身份单独管理,不能因业务 UID 非零就宣称整个集群 rootless。
- 审计身份使用独立 RBAC,按需授予状态、指标、事件等 get/list/watch。内建 view 只是候选,不等于已经安全;审核聚合角色和 CRD 的实际权限。
- 审计不得 exec/attach、写资源、签发 token、impersonate、bind/escalate 或调用可间接执行操作的 proxy。GET nodes/proxy 也不能当作安全只读。
- Secrets、ConfigMap、Pod 环境变量、日志和 CRD 可能包含凭据/个人数据;需要字段级脱敏或受控报告,不承诺“所有原始资源无风险可读”。
数据库账户
- 数据库管理/DDL/恢复与日常业务 DML 身份分开。业务连接不得使用 SUPERUSER、CREATEROLE、CREATEDB、REPLICATION、BYPASSRLS 或服务器文件/程序执行权限;仅对必要 schema、表、序列授予实际所需权限。
- 不为完成首次降权同时转移所有对象所有权。先核对 ORM、迁移工具、序列、默认权限、连接池和后台任务,再按服务切换;数据库初始化所需权限不永久留给运行账户。
- 审计拆分状态监控与业务脱敏查询需求,优先授权明确视图/字段;不默认 pg_read_all_data 或全表 SELECT,避免读取密码哈希、MFA、会话、支付或服务凭据。
- 审计身份无业务写权限、对象所有权、可提权的角色成员关系或写入型 SECURITY DEFINER 执行入口。检查继承/SET ROLE、PUBLIC、未来对象默认权限、RLS 及函数权限,不能只看角色名称。
- default_transaction_read_only/BEGIN READ ONLY 是补充防护,不是授权边界;实际只读依赖角色权限及执行路径。绝对不需要临时对象时收敛 TEMP,否则记录其范围,不宣称零写入。
- 查询设置语句/锁等待超时、连接与结果限额。SELECT 仍可能造成负载、锁竞争或信息泄露;只读不是“零风险”。
验证与证据
执行或评审改造时读取 允许/拒绝验收与渐进阶段。用真实拟用身份验证;管理员 impersonation、静态配置与角色存在只能作为辅助证据。
- 管理能力、业务读写、审计读取均有允许测试;交叉越权、敏感读取和写操作均有拒绝测试。
- 优先权限自省、授权评审和隔离样本;不为证明拒绝而在生产尝试真实 DELETE/DDL、故障注入或泄露秘密值。
- 报告同时记录实施层级(配置/身份登录/运行验证)、环境/主机、固定 SHA、身份用途、run ID、预期与实际、退出码、脱敏证据及回退范围。非 PASS 项不能放行;旧身份执行的只读脚本不能证明新审计用户已只读隔离。
- 对现有 23 组 V5 用例,作为各组身份/权限前置子用例补充;不增加虚假 PASS,不把阶段规划写成已经完成。
交付归属
GitOps 声明目标和非敏感引用;IaC 管云资源/DNS/权威事实;Playbooks Role 管主机、身份、服务与数据库权限执行;Toolkit 管编排、授权、回执和最终门禁。保留已有路径,先验证 owner,再逐步切换 caller,最后移除旧权限/实现。文档审查和只读测试不自动触发生产改造。
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

