Quick Reference
거버넌스는 관측과 강제를 구분하는 일입니다. analytics·compliance는 활동과 감사 기록을 관측하고, requirements는 사용자가 바꿀 수 없는 실행 제약을 강제하며, managed defaults는 지원되는 local client의 시작값을 정합니다.
| 운영 질문 | 먼저 볼 표면 | 다른 표면으로 대신할 수 없는 이유 |
|---|---|---|
| Codex 채택과 활동을 대화형으로 본다 | Codex analytics | dashboard는 audit record나 정책 강제 장치가 아니다. |
| 집계 수치를 BI에 적재한다 | Analytics API | 화면 label과 download field는 안정된 integration 계약이 아니다. |
| 조사·감사를 위한 기록을 export한다 | Compliance API | 채택률과 생산성 지표를 설명하는 용도가 아니다. |
| 사용자가 바꾸면 안 되는 실행 제약을 둔다 | requirements.toml | 시작값만 지정하는 managed defaults로는 막을 수 없다. |
| 팀의 권장 시작값을 배포한다 | managed_config.toml | 실행 중 사용자가 값을 바꿀 수 있다. |
관측 표면과 접근 제어
Analytics와 Compliance API는 같은 데이터를 다른 형식으로 보여 주는 기능이 아니다. Codex analytics는 활동과 채택을 대화형으로 살펴보는 표면이고, Analytics API는 집계된 수치를 data warehouse나 BI에 연결할 때 쓴다. Compliance API는 보안, 법무, 감사 흐름에서 auditable record가 필요할 때 쓴다. 각 API의 event 범위, schema, retention, 권한은 인증된 공식 reference가 정하므로 dashboard 항목이나 내려받은 열 이름을 영구 계약으로 고정하지 않는다.
Managed configuration도 workspace RBAC와 다른 층위다. 이것은 ChatGPT workspace 접근권을 부여하거나 좌석을 배정하지 않으며, ChatGPT desktop app, Codex CLI, IDE extension의 지원되는 local runtime 동작을 제어한다. 지원 key는 client와 버전에 따라 달라질 수 있으므로 조직 전체 적용 전에는 소규모 사용자로 검증한다.
Requirements와 managed defaults
requirements.toml은 사용자가 우회할 수 없는 제약이다. approval policy, reviewer, sandbox, permission profile, web search, hook, MCP server allowlist, plugin marketplace source 같은 보안 민감 항목을 제한할 수 있다. 충돌하는 local 설정이나 CLI override가 오면 local client는 호환되는 값으로 fallback하고 사용자에게 알린다.
# requirements.toml: 허용하지 않는 선택을 막는다.
default_permissions = ":read-only"
[allowed_permission_profiles]
":read-only" = true
":workspace" = true
[mcp_servers.company_docs]
identity = { command = "company-docs-mcp" }최근 permission profile 기반 배포에서는 allowed_permission_profiles와 default_permissions를 우선 사용하고, allowed_sandbox_modes는 legacy sandbox_mode 설정을 계속 쓰는 경우에 둔다. MCP allowlist는 이름뿐 아니라 identity가 승인 항목과 맞아야 활성화된다.
managed_config.toml의 managed defaults는 client가 시작할 때 적용되는 시작값이다. 사용자는 실행 중 설정을 바꿀 수 있고 다음 시작 때 managed default가 다시 적용된다. 보안상 반드시 막아야 할 값은 defaults에만 두지 말고 requirements로 제한한다.
# managed_config.toml: 보수적인 시작값
approval_policy = "on-request"
sandbox_mode = "workspace-write"
[sandbox_workspace_write]
network_access = falserequirements, managed defaults, macOS MDM, cloud-managed policy는 같은 key라도 적용 순서와 merge 규칙이 다를 수 있습니다. 복사한 TOML 조각을 조합해 배포하지 말고, 현재 Configuration Reference로 key 지원 여부와 precedence를 확인한 뒤 작은 그룹에서 검증하세요.
참고 링크
3 sources