安全是围绕“谁、能对什么、做什么、留下什么证据”建立的一组控制,任何单点控制都会失效,所以需要分层、检测和响应。
身份是所有安全控制的起点:人、服务、工作负载和 CI 任务都需要可验证的身份。认证回答“你是谁”,授权回答“你能做什么”,审计回答“你做了什么”。长期静态密钥容易泄露且难以追溯,应优先使用短期凭据、OIDC、mTLS、工作负载身份和最小有效期的令牌。共享账号会让审计失去意义,也无法精确撤销权限。
最小权限要求只授予完成当前任务所需的动作、资源和时间,并定期复核。Linux 侧体现为 sudo 规则、文件权限、capability 和 SELinux;Kubernetes 侧体现为 RBAC、ServiceAccount 和命名空间边界;云上体现为 IAM 策略和条件限制。权限一旦过大,攻击者获得一个入口就继承整片资源。分离职责和即时提权能降低长期暴露面。
边界可以是网络分段、命名空间、VPC、安全组、Ingress/Egress 策略或进程隔离。边界的作用是限制横向移动和爆炸半径,而不是证明“内网可信”。默认拒绝、显式放行、按身份而非仅按 IP 授权,是现代边界设计的基线。边界越多,运维复杂度越高,因此边界要围绕信任区和数据敏感度设计,而不是堆叠设备。
供应链覆盖源码、依赖、构建、制品、仓库和部署。任一环节被篡改,最终运行的制品都会继承信任。防护手段包括依赖锁定、最小权限的构建环境、SBOM、漏洞扫描、签名、provenance 和准入验证。供应链安全的核心是建立可验证的信任链:每个步骤都能说明输入是什么、由谁执行、产出了什么。
预防控制总会失效,因此需要日志、审计、运行时检测和告警。检测要覆盖身份异常、权限提升、异常进程、外连、文件篡改和凭证使用。响应包括确认、遏制、清除、恢复和总结;平均检测时间和平均响应时间比“有没有告警”更重要。没有演练的检测规则,在真实事件中往往不会产生有效行动。
合规是把安全控制映射到标准、法规和内部制度,并保留可审计的证据。它关注控制是否存在、是否执行、是否留痕,例如访问复核、日志保留、加密和变更审批。合规不等于安全:通过审计只能说明满足了一组检查项,不能说明系统能抵御当前攻击。合规是底线,不是终点。
| 控制层 | 核心问题 | 典型手段 | 失效后的后果 |
|---|---|---|---|
| 身份 | 你是谁 | OIDC、mTLS、短期令牌 | 冒充、共享账号、无法追溯 |
| 权限 | 你能做什么 | RBAC、sudo、IAM、capability | 横向移动、权限提升 |
| 边界 | 你能到哪里 | 网络策略、安全组、命名空间 | 爆炸半径扩大 |
| 供应链 | 制品可信吗 | SBOM、签名、provenance、准入 | 运行被篡改的制品 |
| 检测响应 | 正在发生什么 | 审计日志、Falco、Tetragon | 发现和处置延迟 |
| 合规 | 能否证明 | 基线、证据、访问复核 | 审计失败、责任不清 |
身份 → 权限 → 边界 → 工作负载 → 供应链
↑ ↓
└──────── 审计、检测、响应 ←────────┘
身份和权限决定“能不能进”,边界限制“能走多远”,供应链决定“运行的是什么”,检测响应负责在控制失效后止损。
合上页面,先回答,再展开对照。