HITL 把关确保没有高风险代理操作在没有人类判断的情况下进行。本实践手册详述了完整的审批生命周期——从受治理操作触发请求的那一刻到风险等级解析、人类决策和紧急越权应急阀——让你在生产中遇到之前就能追踪每个活动部件。
如果你还没有阅读授权模型,请先从治理开始。指南治理与审批从操作员角度覆盖了相同的机制;本页是逐步参考。
请求生命周期
审批请求以默认拒绝和有时间限制方式打开。它以 pending 状态开始,携带过期时间,在足够的人类做出决策之前不授权任何内容。请求无法降低自身的标准——匹配的审批策略对阈值和超时具有权威性。
请求绑定到精确工具调用载荷的计划哈希。这是反 TOCTOU 防御:如果底层操作在请求和决策之间发生变化,哈希将不匹配,审批将无法绑定。过时的审批永远不会授权不同的操作。
风险等级解析
四个等级驱动受治理操作需要多少人类控制:
| 等级 | 含义 |
|---|---|
low / medium | 仅通过显式审批策略分配——没有默认值 |
high | 到达审批队列的任何内容的默认值。需要一次人类审批 |
critical | 强制双人底线(NIST SP 800-53 AC-3(2) 双重授权) |
等级在每次决策时从实时策略集重新推导,绝不从存储的快照读取。策略变更立即生效。过时的记录永远无法将标准降低到当前分类以下——这是结构性的默认拒绝。
内置的 critical 集合覆盖真正不可逆的操作:生产部署和退役、数据删除和擦除、安全执行和紧急停止开关变更、密钥保管和轮换,以及 NHI 下线。
具有显式 risk_tier 的审批策略可以按操作提高或降低默认值。但它永远不能将 critical 操作降低到双人控制底线以下。
逐步操作
1. 受治理操作触发请求
受治理操作——部署应用、代理触发、预算覆盖,或任何匹配审批策略的操作——到达审批引擎。引擎以 pending 状态打开新请求。
2. 请求绑定到计划哈希
请求记录精确工具调用载荷的哈希。此计划哈希绑定是 TOCTOU 防御:决策只会授权请求最初创建时对应的操作。
3. 风险等级从当前策略解析
引擎评估实时策略集(RBAC、原生 ABAC 和任何外部 PDP)来推导风险等级。等级绝不从早期评估中缓存。
4. 人类审查者决策
具有足够角色的人类发出 approve 或 deny。服务器在此时执行三个不变量,基于稳定用户身份:
- 职责分离。 请求者不能决策自己的请求。这基于稳定用户身份,而非单人可以变化的凭证字符串。
- 重复决策者防护。 唯一索引防止重复决策者竞争——一个人类只计入阈值一次。
- 过期绑定。 过期请求永远无法收到绑定决策,即使在清理任务实际标记过期之前。有效状态在每次决策时重新推导。
5. 关键操作:带 AAL3 的双人控制
对于 critical 等级:阈值被设为底线两个不同的人类审批者。底线在创建时(存储的阈值永远不能低于二)和决策时(在操作变为 critical 之前创建的请求仍然无法通过一个人类)都被执行。
每个决策的人类必须有一个新的硬件验证会话——WebAuthn 或 PIV 升级(AAL3)。系统令牌没有人类保证,会被拒绝。
6. 决策记录到账本
每个决策向请求的决策跟踪追加一个不可变行,并且向账本记录一个事件,记录决策、结果状态和做出决策时的风险等级。账本是仅追加的、哈希链化的、Ed25519 签名的——重写历史是密码学上可检测的。
过期
过期在读取时推导,而非只写入一次。过期的请求永远无法收到绑定决策,即使没有后台清理任务实际标记过期。有效状态始终被重新推导,因此慢速清理是外观上的延迟,而非安全漏洞。
策略配置
审批策略允许你按操作类别覆盖默认风险等级。具有显式 risk_tier 的策略可以将操作从 high 移到 low,或将 medium 提升到 critical。唯一的约束:你永远不能将 critical 降低到双人控制底线以下。不可逆操作的双人要求是结构性的,不可配置。
紧急越权
当法定人数不可达时——凌晨 3 点第二个审批者在睡觉的事件——紧急越权提供一个受审计的应急阀。它在结构上就是高调的。
激活需要满足所有条件:
- 激活者是管理员,始终是真实人类——系统令牌被拒绝。
- 新的 AAL3 升级(WebAuthn 或 PIV)。
- 在同一事务中记录的书面说明。
- 作为前提条件的正在录制的会话。
时间限制: 授权默认一小时,硬性上限 24 小时。需要更长时间的紧急情况是一种运营模式,而非紧急情况,必须通过正常的双人控制。
每次使用都被记录。 在紧急越权下执行的每个操作都追加一个不可变行和一个账本事件,命名授权、操作和主体。在紧急越权下进行的操作与正常批准的操作是永久可区分的。
强制事后审查。 在任何先前授权未被审查之前,无法激活新授权。审查必须来自与激活者不同的人类。你不能通过堆叠紧急情况来逃避审查。
紧急越权放宽缺失的法定人数;它永远不会覆盖明确的拒绝。 某人有意拒绝的请求保持被拒绝状态。
记录内容
每个决策——批准、拒绝、过期或紧急越权使用——追加到两个位置:
- 请求的决策跟踪:请求本身上的不可变决策行序列,每个携带决策者、裁决和时间戳。
- 审计账本:哈希链化的、Ed25519 签名的事件,记录决策、结果请求状态和做出决策时的风险等级。
两次写入发生在与状态变更相同的事务中。你无法做出账本静默遗忘的受治理决策。
相关内容
- 治理与审批 ——覆盖相同机制的操作员指南。
- 治理 ——授权模型、自审计姿态和紧急停止开关机制。
- 实践手册:紧急停止开关演练 ——全资产拒绝关口演练。
- 紧急停止开关 ——紧急停止的产品页面。