Olivares AI의 거버넌스는 한 번에 이해할 수 있는 두 가지 원칙 위에 구축됩니다: 시행 전에 관찰, 그리고 시행할 때는 기본적으로 거부. 제품은 단일 작업을 게이트하기 훨씬 전에 모든 에이전트가 접근할 수 있는 것을 매핑하고 감사하며, 실행하는 게이트는 기본 거부입니다.
읽기 우선: 시행 전 관찰
플랫폼의 기본 자세는 탐지적이지 예방적이지 않습니다. 로그, OpenTelemetry 및 네이티브 감사를 대역 외에서 수집하여 읽기/쓰기 접근 맵을 구축합니다 — 에이전트의 데이터 경로에 절대 있지 않으므로, 수집기 장애가 프로덕션을 다운시킬 수 없습니다. 그 맵에서 허용된 것과 관찰된 것을 비교하고 사람이 판단할 수 있도록 드리프트를 표면화합니다.
이것은 이 페이지의 나머지 부분을 읽는 방법에 영향을 줍니다. 제품은 광범위하게 관찰하고 거버넌스합니다; 광범위하게 작동하지는 않습니다. 인프라에 대해 조치를 취할 수 있는 경우 그 기능은 세 가지 중 하나이며, 모듈 카탈로그가 어느 것인지 표시합니다:
- 라이브 — 오늘 배선되어 작동 중 (좁은 세트);
- 온디맨드 — 백엔드가 구축되고 주입 지점에 배선되었지만 운영자가 프로비저닝할 때까지 기본 거부 또는 저하 상태 (실행기, 디스패처, 추론 자격증명);
- 심(seam) — 기본 바이너리에 백엔드가 없는 선언된 기본 거부 인터페이스.
따라서 시행의 부재는 보통 설계에 의한 것이지 실수가 아닙니다. 읽기 우선은 정직한 기본값이 관찰하고 기록하는 것이며, 명시적으로 켠 표면에만 게이트를 적용하는 것을 의미합니다.
거버넌스 대상 인가 모델
모든 거버넌스된 결정은 나머지 API를 보호하는 동일한 인가 코어를 통해 실행됩니다. 무엇이든 변경하기 전에 내재화할 세 가지 속성이 있습니다.
RBAC는 기본 거부입니다. 테넌트에 소속이 없는 주체는 거부됩니다 — 암묵적 권한 부여가 없습니다. 권한은 테넌트 범위이며, 핸들러는 요청이 해결된 단일 테넌트에 대해서만 작동하여 혼동된 대리인(confused-deputy)과 IDOR 클래스를 구조적으로 차단합니다. 역할은 계단식입니다: viewer는 읽기, editor는 쓰기, admin은 테넌트 IAM 관리, owner는 모든 것을 보유합니다. 접근 그래프를 읽는 것은 의도적으로 editor 이상 권한입니다 — 모든 에이전트가 접근할 수 있는 것의 전체 맵은 정찰 로드맵이므로 — 그리고 모든 읽기는 감사 원장에 기록됩니다.
정책 심은 제한만 합니다. RBAC 위에 속성 기반 정책 결정 지점을 배선할 수 있습니다. 구성은 교집합입니다 — RBAC ∩ 네이티브 ABAC ∩ 외부 PDP — 따라서 정책은 RBAC가 이미 허용한 것을 더 제한할 수만 있고 권한을 확대할 수는 없습니다. 이것은 관례가 아닌 시행됩니다. 최대 하나의 외부 엔진을 선택합니다:
# 임베디드 Cedar (순수 Go, 사이드카 없음) 또는 HTTP를 통한 OPA. 기본값: none.
OLIVARES_PDP_ENGINE=cedar # 또는: opa | none
Cedar의 경우 forbid 규칙을 작성합니다; 빈 규칙 세트는 RBAC 결정을 그대로 둡니다. OPA의 경우 Rego는 기본 허용이어야 하며, 결과가 없거나 전송 오류가 있으면 기본 거부(fail closed)됩니다. 잘못된 PDP 구성은 외부 PDP만 비활성화하고 그 사실을 로깅합니다 — 네이티브 ABAC와 RBAC가 계속 거버넌스하며, 잘못 구성된 엔진이 요청을 거버넌스 없이 남기지 않습니다. PDP가 적용하는 모든 제한은 감사됩니다.
위험 계층과 이중 통제 최저 기준
승인 큐에 도달하는 작업은 네 가지 위험 계층으로 분류됩니다 — low, medium, high, critical — OWASP AI 에이전트 분류법을 따릅니다. (이것은 EU AI Act 준수 계층과 별개의 축입니다; 둘을 혼동하지 마세요.) 계층은 모든 보안 결정 시 실시간 정책에서 다시 도출되며, 저장된 스냅샷에서 읽히지 않으므로 정책 변경은 즉시 적용되고 오래된 행이 현재 분류보다 기준을 낮출 수 없습니다.
critical 작업에는 필수 2인 최저 기준이 있습니다: NIST SP 800-53 AC-3(2) 이중 인가에서 가져온 최소 두 명의 서로 다른 인간 승인자. 최저 기준은 두 번 시행됩니다 — 생성 시(저장된 임계값이 그 아래로 시작할 수 없음)와 결정 시 재도출(다운그레이드되거나 레거시 행도 한 명의 승인자로 통과할 수 없음) — 따라서 운영자 정책이 명시적으로 계층을 낮추더라도 critical 작업을 단독으로 처리할 수 없습니다. 내장된 critical 세트는 되돌릴 수 없는 환경 전체 변경 계열입니다: 프로덕션 배포 및 폐기, 데이터 삭제, 보안 시행 변경, 키 관리 및 교체, 킬 스위치 후 환경 재활성화.
낮은 계층은 엔진의 메커니즘을 변경하지 않습니다 — 이미 존재하는 승인은 최소한 한 명의 인간을 요구합니다 — 다른 제어가 의존하는 어휘입니다 (예를 들어, critical 작업에서 인증 강화).
사람 개입(HITL) 승인 게이트
제품이 작업을 게이트하는 곳에서 루프는 다음과 같습니다: 표면이 제시 (접근 맵에서의 드리프트, 보안 모듈에서의 발견) → 인가된 운영자가 결정 → 결정이 감사 원장에 기록. 이를 뒷받침하는 승인 엔진은 오늘 실제로 작동합니다: 요청이 기본 거부로 열리고, 플랜 해시에 바인딩되며, 시간 제한이 있습니다. 불변 조건은 안정적인 사용자 신원에 기반하여 서버 측에서 시행됩니다 (시스템 토큰은 신원이 없으므로 결정할 수 없습니다):
- 직무 분리 — 요청자가 자신의 요청을 결정할 수 없습니다.
- 중복 결정자 방지 — 한 명의 인간은 임계값에 한 번만 계산됩니다.
- 만료 — 읽기 시 도출되므로, 정리 작업이 만료를 구체화하기 전에도 만료된 요청은 바인딩할 수 없습니다.
아직 성숙 중인 것은 더 풍부한 운영자 검토 콘솔입니다; 엔드포인트와 엔진은 오늘 출시됩니다. 거버넌스 및 승인 가이드에서 실시간 흐름을 안내합니다.
이 모든 것을 신뢰할 수 있게 만드는 의존성은 에이전트별 신원입니다. 감사는 활동을 자격증명에 귀속시키며, 본질적으로 에이전트에 귀속시키지 않습니다; 공유 서비스 계정은 귀속을 신원 수준으로 축소합니다 — 발견으로 정직하게 표면화되며, 절대 조용히 복구되지 않습니다. 거버넌스 대상 신호에 대한 영향은 허용된 것 vs 관찰된 것과 충실도를 참조하세요.
비상 유리(break-glass): 감사된 탈출 밸브
2인 통제에는 한 명의 승인자에게 연락할 수 없는 새벽 3시 사고를 위한 탈출 밸브가 필요합니다. 비상 유리는 그 밸브이며, 구조적으로 시끄럽습니다. 활성화는 admin 계층이며 실제 인간(시스템 토큰은 거부됨), 하드웨어 인증(AAL3) 단계적 강화, 서면 사유, 그리고 전제 조건으로 활성 기록 세션을 요구합니다. 부여는 시간 제한이 있습니다 — 기본 1시간, 하드 캡 1일 — 만료된 부여는 아무것도 인가할 수 없습니다.
부여가 활성 상태인 동안, 범위 내 작업은 승인 정족수 없이 진행할 수 있지만, 모든 사용은 변경 불가능한 추적과 감사 원장에 추가되어 부여, 작업 및 주체를 명시합니다 — 비상 유리 하에서 진행된 작업은 승인된 작업과 영구적으로 구별됩니다. 강제 사후 검토가 루프를 닫습니다: 이전 부여가 검토되지 않은 상태에서 새 부여를 활성화할 수 없으며, 검토는 활성화한 사람과 다른 인간이 수행해야 합니다.
킬 스위치: 환경 전체 거부 게이트
킬 스위치는 원클릭 비상 정지이며, 의도적으로 일반적인 인체공학을 뒤집습니다. 작동은 의도적으로 저렴합니다 — admin 계층, 필수 사유, 승인 정족수 없음, 단계적 강화 없음, 비상 유리 없음 — 합의를 기다리는 정지는 정지가 아니기 때문입니다. 작동 세션의 보증 수준은 포렌식을 위해 기록됩니다; 작동 남용은 가용성만 비용이 들며, 이것이 안전한 방향입니다.
정지 행이 단일 진실 소스입니다. 모든 거버넌스된 작동 게이트는 각 작업마다 실시간으로 이를 확인하고 읽기 오류 시 **기본 거부(fail closed)**합니다 — 예산 게이트의 fail-open 계약의 정확한 반대인데, 읽을 수 없는 정지 상태가 “진행”을 의미해서는 안 되기 때문입니다. 작동은 또한 게이트가 도달할 수 없는 대기 중인 작업을 취소합니다: 모든 보류 중인 범위 내 작동 승인은 동일한 트랜잭션에서 취소되므로, 정지 전 의도가 환경이 복귀하는 순간 발송되는 부여로 성숙할 수 없습니다. 거버넌스 작업 자체는 면제됩니다 — 정지는 에이전트 환경을 중단하며 거버넌스하는 제어는 중단하지 않습니다.
재활성화는 절대 일방적이지 않습니다. 새로운 이중 통제 승인(critical 2명의 서로 다른 인간 최저 기준, 전환 시 구조적으로 재검증되어 다운그레이드된 정책이 단독으로 만들 수 없음)에 게이트되며, 재활성화에 대한 비상 유리 경로는 의도적으로 없습니다: “환경이 정지된 상태로 유지”가 안전한 상태입니다. 관련되지 않은 인간에 의한 강제 사후 검토가 사고를 마감합니다.
기록된 결정 보장
위의 워크플로우 깊이에 관계없이, 거버넌스 결정은 기록된 사실입니다. 변경 작업은 변경과 동일한 트랜잭션에서 실제 행위자와 함께 감사 원장에 추가되며, 민감한 읽기(접근 그래프, 원장 자체)는 커밋된 쓰기에서 자체 감사됩니다. 원장은 추가 전용이며 해시 체인이고, 각 레코드는 체인 무결성 필드를 포함하므로 이력 재작성이 감지 가능하며 PII를 포함하지 않습니다. 원장이 조용히 잊어버리는 거버넌스되지 않은 변경을 만들 수 없습니다.
관련 항목
- 허용된 것 vs 관찰된 것 — 이러한 결정이 작용하는 드리프트.
- 충실도 — 결정 하의 신호가 얼마나 확실한지.
- 거버넌스 및 승인 — 단계별 실시간 승인 흐름.
- 킬 스위치 — 제품 용어로 본 환경 전체 거부 게이트.
- 정직함 & 한계 — 기본 거부, 탐지 기본 자세의 전체 내용.