Codex 安全与企业管理

Codex 提供多层次的安全机制和企业管理功能,保障数据安全并支持团队协作。


安全机制概述

Codex 安全设计分为多个层级:

层级机制作用
沙箱隔离Sandbox 模式限制文件和命令访问范围
审批策略Approval Policy控制操作执行前的确认
规则引擎Rules定义命令执行权限
网络控制网络访问设置限制外部网络访问
数据保护企业功能审计日志、数据驻留

Sandbox 沙箱模式

Sandbox 是 Codex 的核心安全机制,限制 Agent 的操作范围。

三种沙箱模式

模式文件修改命令执行网络访问适用场景
read-only禁止禁止禁止代码审查、分析
workspace-write仅工作区允许禁止日常开发(推荐)
danger-full-access允许允许允许特殊场景(谨慎使用)

设置沙箱模式

沙箱配置

# CLI 中指定
codex --sandbox read-only
codex --sandbox workspace-write
codex --sandbox danger-full-access

# 配置文件
[mycode4 type="toml"]
# ~/.codex/config.toml
sandbox = "workspace-write"
[/mycode4]

沙箱边界

  • 工作区边界:workspace-write 模式只允许修改项目目录内文件
  • 命令边界:read-only 禁止所有命令执行
  • 网络边界:默认禁止 Agent 阶段的网络访问

建议默认使用 workspace-write 模式,仅在必要时使用 danger-full-access。


Approval 审批策略

Approval 策略控制 Codex 执行操作前的确认行为。

四种审批模式

模式行为风险等级
suggest仅提供建议,不执行任何操作最低
interactive敏感操作前询问确认
auto-edit自动编辑文件,命令需确认
full-auto自动执行所有操作

设置审批策略

审批配置

# CLI 指定
codex --approval-mode interactive

# 会话中切换
/approval suggest
/approval auto-edit

# 配置文件
[mycode4 type="toml"]
approval_policy = "interactive"
[/mycode4]

Rules 规则引擎

Rules 使用 Starlark 语言定义命令执行策略。

规则类型

规则说明
prefix_rule匹配命令前缀
glob_rule匹配文件路径模式

决策类型

决策行为
allow自动批准执行
prompt询问用户确认
forbidden禁止执行

规则示例

规则定义

# ~/.codex/rules/default.rules

# 允许 Git 命令
prefix_rule(
    pattern = ["git"],
    decision = "allow",
    justification = "Git commands are safe for version control"
)

# 允许 npm install
prefix_rule(
    pattern = ["npm", "install"],
    decision = "allow",
    justification = "Package installation is expected"
)

# 禁止删除根目录
prefix_rule(
    pattern = ["rm", "-rf", "/"],
    decision = "forbidden",
    justification = "Prevent system damage"
)

# 询问 sudo 命令
prefix_rule(
    pattern = ["sudo"],
    decision = "prompt",
    justification = "Elevated privileges need review"
)

网络访问控制

控制 Codex 的网络访问能力,防止数据泄露。

云端网络控制

阶段默认访问说明
设置脚本允许需要下载依赖
Agent 执行禁止默认禁用,可开启

域名白名单

网络配置

# 预设白名单
domain_allowlist = "common-dependencies"
# 包含:github.com, npmjs.com, pypi.org

# 自定义域名
domain_allowlist = [
    "github.com",
    "api.mycompany.com"
]

# 限制 HTTP 方法
allowed_methods = ["GET", "HEAD", "OPTIONS"]

安全风险

启用 Agent 网络访问可能带来的风险:

  • 提示注入:从恶意网页获取指令
  • 数据泄露:向外部发送代码或密钥
  • 恶意依赖:下载包含恶意代码的包

仅在必要时启用 Agent 网络访问,并使用域名白名单限制。


企业管理功能

Enterprise 计划提供企业级安全和管理功能。

企业功能概览

功能说明
SCIM自动用户 provisioning
SAML SSO单点登录集成
MFA多因素认证
EKM企业密钥管理
RBAC基于角色的访问控制
审计日志完整操作记录
数据驻留指定数据存储区域

托管配置

企业管理员可以下发统一配置。

托管配置优先级

配置合并顺序:

  1. 托管配置(企业下发)——优先级最高
  2. 项目配置(.codex/config.toml)
  3. 用户配置(~/.codex/config.toml)——优先级最低

托管配置示例

企业托管配置

# 企业下发的托管配置

# 强制沙箱模式
sandbox = "workspace-write"

# 强制审批策略
approval_policy = "interactive"

# 禁用的模型
disabled_models = ["gpt-5.4-mini"]

# 网络白名单
domain_allowlist = ["github.com", "internal-api.company.com"]

# 审计配置
audit_logging = true

审计日志

Enterprise 计划提供完整的审计日志功能。

日志内容

记录类型说明
会话记录每个会话的创建、修改、删除
工具调用文件读写、命令执行的详细信息
模型调用API 调用、token 使用量
用户操作用户认证、权限变更

日志访问

审计日志

# 通过企业管理面板访问审计日志

# 可导出为:
- JSON 格式
- CSV 格式
- SIEM 系统集成格式

数据驻留

Enterprise 可以指定数据存储区域。

驻留选项

区域说明
美国默认区域
欧洲GDPR 合规
其他区域根据企业需求配置

数据驻留设置需要联系销售团队配置。


团队管理

用户 provisioning

SCIM 配置

# 通过 IdP(如 Okta、Azure AD)自动管理用户

# 支持的操作:
- 自动创建用户
- 自动更新用户属性
- 自动禁用/删除用户

角色权限

角色权限
Admin完全管理权限
Member标准使用权限
Viewer只读权限

安全最佳实践

日常使用

  • 默认使用 workspace-write 沙箱模式
  • 敏感操作使用 interactive 审批模式
  • 定期审查 Rules 配置
  • API Key 作为 Secrets 存储

企业部署

  • 启用 SAML SSO 和 MFA
  • 配置托管配置统一策略
  • 启用审计日志记录
  • 根据合规需求配置数据驻留
  • 使用域名白名单限制网络访问

常见问题

Q: 如何防止 Codex 删除重要文件?

使用 read-only 或 workspace-write 沙箱模式,添加 Rules 禁止删除命令。

Q: 企业如何统一配置?

使用托管配置功能,企业管理员可下发统一配置,覆盖用户设置。

Q: 审计日志包含哪些信息?

包含所有会话、工具调用、模型调用和用户操作的完整记录。

Q: 如何处理敏感数据?

使用 Secrets 存储敏感信息,仅在设置脚本中可用,Agent 阶段自动移除。