Quick Reference
default_permissions = "project-edit"
[permissions.project-edit]
extends = ":workspace"
[permissions.project-edit.filesystem.":workspace_roots"]
"**/*.env" = "deny"
[permissions.project-edit.network]
enabled = true
[permissions.project-edit.network.domains]
"api.openai.com" = "allow"
"*.github.com" = "allow"권한 프로필은 local command의 filesystem·network 접근을 함께 정하는 beta 기능입니다. :read-only, :workspace, :danger-full-access 중 하나를 바로 고르거나, :workspace를 상속해 secret deny와 필요한 domain만 더하는 방식이 기본입니다. profile을 쓰면 구형 sandbox_mode 설정과 섞지 않습니다.
profile 구조
default_permissions는 기본 profile 이름을 지정하고, [permissions.<name>]은 custom profile을 정의합니다. built-in :read-only는 local command를 읽기 전용으로, :workspace는 active workspace root와 system temp directory의 쓰기를 허용합니다. :danger-full-access는 로컬 sandbox 경계를 없애므로 custom profile의 부모가 될 수 없습니다.
[permissions.release-check]
description = "Release notes with read-only source access."
extends = ":read-only"
[permissions.release-check.network]
enabled = true
[permissions.release-check.network.domains]
"api.github.com" = "allow"extends는 built-in :read-only, :workspace 또는 다른 named profile을 상속합니다. 상속 체인에 없는 기본 보호를 직접 다시 쓰기보다, 가장 가까운 built-in을 상속한 뒤 차이만 적는 편이 안전합니다. 예를 들어 :workspace를 상속하면 workspace의 .codex directory는 명시적으로 바꾸지 않는 한 read-only로 유지됩니다.
파일과 네트워크 규칙
workspace_roots는 profile이 추가로 workspace로 취급할 실제 directory를 더하고, filesystem.":workspace_roots"는 모든 effective workspace root에 적용할 규칙을 둡니다. 넓은 write 아래에도 더 좁은 deny를 두면 deny가 유지됩니다.
[permissions.project-edit.workspace_roots]
"~/code/shared-lib" = true
[permissions.project-edit.filesystem]
":minimal" = "read"
glob_scan_max_depth = 3
[permissions.project-edit.filesystem.":workspace_roots"]
"." = "write"
".codex" = "read"
"**/*.env" = "deny"network는 enabled = true만으로 끝내지 않고 domain policy를 둡니다. allowlist는 package registry, source host, 필요한 API처럼 task에 필요한 destination만 적습니다. ** deny pattern은 Linux, WSL, native Windows에서 sandbox 시작 전 파일을 찾는 비용을 만들 수 있으므로 glob_scan_max_depth 또는 더 제한된 pattern을 검토합니다.
기존 sandbox와 관리 정책
permission profile과 sandbox_mode / [sandbox_workspace_write]는 합성되지 않습니다. sandbox_mode가 어느 loaded config에든 있거나 --sandbox를 주면 기존 sandbox 설정이 사용됩니다. 조직의 allowed_permission_profiles 관리 정책은 예외적으로 profile 체계를 강제하므로, 배포 전에는 구형 sandbox key를 제거하고 지원 CLI 버전을 맞춥니다.
enabled = true는 인터넷 전체를 검토 없이 열어도 된다는 뜻이 아닙니다. domain rule, secret file deny, 추가 workspace root를 같이 review하고, profile은 beta 기능이므로 Codex 업데이트 뒤에는 현재 문서와 실제 permission picker를 다시 확인하십시오.
참고 링크
2 sources