본문으로 건너뛰기

기계 번역입니다. 정식 기준은 영어판이며, 원어민 검수는 아직 완료되지 않았습니다.

쿡북

쿡북: HITL 승인 흐름

요청에서 결정까지의 사람 개입 승인 과정 — 위험 계층, 직무 분리, 플랜 해시 바인딩, critical 작업에 대한 이중 통제, 정족수 도달 불가 시 비상 유리

마지막 업데이트:

HITL 게이트는 인간의 판단 없이 고위험 에이전트 작업이 진행되지 않도록 보장합니다. 이 쿡북은 전체 승인 생명주기를 안내합니다 — 거버넌스된 작업이 요청을 발생시키는 순간부터 위험 계층 해결, 인간 결정, 비상 유리 탈출 밸브까지 — 프로덕션에서 마주치기 전에 모든 움직이는 부분을 추적할 수 있습니다.

아직 인가 모델을 읽지 않았다면 거버넌스부터 시작하세요. 거버넌스 및 승인 가이드는 운영자 관점에서 동일한 메커니즘을 다룹니다; 이 페이지는 단계별 참조입니다.

요청 생명주기

승인 요청은 기본 거부이고 시간 제한으로 열립니다. pending으로 시작하고, 만료를 가지며, 충분한 인간이 결정할 때까지 아무것도 인가하지 않습니다. 요청은 자체 기준을 낮출 수 없습니다 — 일치하는 승인 정책이 임계값과 타임아웃에 대해 권위적입니다.

요청은 정확한 도구 호출 페이로드의 플랜 해시에 바인딩됩니다. 이것은 TOCTOU 방어입니다: 요청과 결정 사이에 기본 작업이 변경되면 해시가 일치하지 않고 승인이 바인딩될 수 없습니다. 오래된 승인은 절대 다른 작업을 인가하지 않습니다.

위험 계층 해결

네 가지 계층이 거버넌스된 작업에 필요한 인간 통제 수준을 결정합니다:

계층의미
low / medium명시적 승인 정책에 의해서만 할당 — 기본값 없음
high승인 큐에 도달하는 모든 것의 기본값. 한 명의 인간 승인 필요
critical필수 2인 최저 기준 (NIST SP 800-53 AC-3(2) 이중 인가)

계층은 모든 결정 시 라이브 정책 세트에서 재도출되며, 저장된 스냅샷에서 읽히지 않습니다. 정책 변경은 즉시 적용됩니다. 오래된 행은 현재 분류보다 기준을 낮출 수 없습니다 — 구조적으로 기본 거부입니다.

내장된 critical 세트는 진정으로 되돌릴 수 없는 것을 다룹니다: 프로덕션 배포 및 폐기, 데이터 삭제 및 소거, 보안 시행 및 킬 스위치 변경, 키 관리 및 교체, NHI 오프보딩.

명시적 risk_tier가 있는 승인 정책은 작업별로 기본값을 올리거나 낮출 수 있습니다. 그러나 critical 작업을 이중 통제 최저 기준 아래로 절대 낮출 수 없습니다.

단계별 진행

1. 거버넌스된 작업이 요청을 트리거

거버넌스된 작업 — deploy apply, agent fire, 예산 재정의, 또는 승인 정책과 일치하는 모든 작업 — 이 승인 엔진에 도달합니다. 엔진이 pending 상태로 새 요청을 엽니다.

2. 요청이 플랜 해시에 바인딩

요청은 정확한 도구 호출 페이로드의 해시를 기록합니다. 이 플랜 해시 바인딩이 TOCTOU 방어입니다: 결정은 요청이 생성된 작업만 인가합니다.

3. 위험 계층이 현재 정책에서 해결

엔진이 라이브 정책 세트(RBAC, 네이티브 ABAC, 외부 PDP)를 평가하여 위험 계층을 도출합니다. 계층은 이전 평가에서 캐시되지 않습니다.

4. 인간 검토자가 결정

충분한 역할을 가진 인간이 approve 또는 deny를 발행합니다. 서버는 이 시점에서 안정적인 사용자 신원에 기반하여 세 가지 불변 조건을 시행합니다:

  • 직무 분리. 요청자가 자신의 요청을 결정할 수 없습니다. 이것은 한 사람이 변경할 수 있는 자격증명 문자열이 아닌 안정적인 사용자 신원에 기반합니다.
  • 중복 결정자 방지. 고유 인덱스가 중복 결정자 경쟁을 방지합니다 — 한 명의 인간은 임계값에 한 번만 계산됩니다.
  • 만료 바인딩. 정리 작업이 만료를 구체화하기 전에도 만료된 요청은 바인딩 결정을 받을 수 없습니다. 유효 상태는 모든 결정 시 재도출됩니다.

5. Critical 작업: AAL3와 이중 통제

critical 계층의 경우: 임계값은 두 명의 서로 다른 인간 승인자로 최저 기준이 설정됩니다. 최저 기준은 생성 시(저장된 임계값이 2 미만으로 시작할 수 없음)와 결정 시(작업이 critical이 되기 전에 생성된 요청도 한 명의 인간으로 통과할 수 없음) 모두에서 시행됩니다.

각 결정하는 인간은 새로운 하드웨어 인증 세션 — WebAuthn 또는 PIV 단계적 강화 (AAL3)가 있어야 합니다. 시스템 토큰은 인간 보증이 없으므로 거부됩니다.

6. 결정이 원장에 기록

모든 결정은 요청의 결정 추적에 변경 불가능한 행을 추가하고 결정, 결과 상태, 결정이 이루어진 위험 계층을 기록하는 원장 이벤트를 기록합니다. 원장은 추가 전용, 해시 체인, Ed25519 서명 — 이력 재작성은 암호학적으로 감지 가능합니다.

만료

만료는 한 번 기록되는 것이 아니라 읽기 시 도출됩니다. 백그라운드 정리 작업이 만료를 구체화하지 않았더라도 만료된 요청은 바인딩 결정을 받을 수 없습니다. 유효 상태는 항상 재도출되므로, 느린 정리 작업은 보안 갭이 아닌 외관상의 지연입니다.

정책 구성

승인 정책을 통해 작업 클래스별로 기본 위험 계층을 재정의할 수 있습니다. 명시적 risk_tier가 있는 정책은 작업을 high에서 low로 이동하거나 mediumcritical로 올릴 수 있습니다. 하나의 제약: critical을 이중 통제 최저 기준 아래로 절대 낮출 수 없습니다. 되돌릴 수 없는 작업에 대한 2인 요구 사항은 구조적이며 구성 가능하지 않습니다.

비상 유리

정족수 도달이 불가능할 때 — 두 번째 승인자가 자고 있는 새벽 3시 사고 — 비상 유리는 감사된 탈출 밸브를 제공합니다. 구조적으로 시끄럽습니다.

활성화에 필요한 모든 것:

  • 활성화자는 admin이며, 항상 실제 인간 — 시스템 토큰은 거부됩니다.
  • 새로운 AAL3 단계적 강화 (WebAuthn 또는 PIV).
  • 동일한 트랜잭션에 기록되는 서면 사유.
  • 전제 조건으로 활성 기록 세션.

시간 제한: 부여는 기본 1시간, 하드 캡 24시간. 더 오래 필요한 비상은 비상이 아닌 운영 모드이며, 일반 이중 통제를 거쳐야 합니다.

모든 사용이 기록됩니다. 비상 유리 하에서 취한 각 작업은 변경 불가능한 행과 부여, 작업, 주체를 명시하는 원장 이벤트를 추가합니다. 비상 유리 하에서 진행된 작업은 적절히 승인된 작업과 영구적으로 구별됩니다.

강제 사후 검토. 이전 부여가 검토되지 않은 상태에서 새 부여를 활성화할 수 없습니다. 검토는 활성화자와 다른 인간이 수행해야 합니다. 비상을 쌓아 감시를 회피할 수 없습니다.

비상 유리는 누락된 정족수를 완화합니다; 명시적 거부를 재정의하지 않습니다. 누군가 의도적으로 거부한 요청은 거부 상태를 유지합니다.

기록되는 것

모든 결정 — 승인, 거부, 만료, 비상 유리 사용 — 은 두 곳에 추가됩니다:

  1. 요청의 결정 추적: 요청 자체의 변경 불가능한 결정 행 시퀀스, 각각 결정자, 판정, 타임스탬프를 포함.
  2. 감사 원장: 결정, 결과 요청 상태, 결정이 이루어진 위험 계층을 기록하는 해시 체인, Ed25519 서명 이벤트.

두 쓰기 모두 상태 변경과 동일한 트랜잭션에서 발생합니다. 원장이 조용히 잊어버리는 거버넌스된 결정을 만들 수 없습니다.

관련 항목

문서 검색