Codex セキュリティとエンタープライズ管理
Codex は多層的なセキュリティメカニズムとエンタープライズ管理機能を提供し、データの安全性を確保してチームコラボレーションをサポートします。
セキュリティメカニズムの概要
Codex のセキュリティ設計は複数の階層に分かれています:
| 階層 | メカニズム | 役割 |
|---|---|---|
| サンドボックス分離 | Sandbox モード | ファイルとコマンドのアクセス範囲を制限 |
| 承認ポリシー | Approval Policy | 操作実行前の確認を制御 |
| ルールエンジン | Rules | コマンド実行権限を定義 |
| ネットワーク制御 | ネットワークアクセス設定 | 外部ネットワークアクセスを制限 |
| データ保護 | エンタープライズ機能 | 監査ログ、データレジデンシー |
Sandbox サンドボックスモード
Sandbox は Codex の中核となるセキュリティメカニズムであり、Agent の操作範囲を制限します。
3種類のサンドボックスモード
| モード | ファイル変更 | コマンド実行 | ネットワークアクセス | 適用シナリオ |
|---|---|---|---|---|
| read-only | 禁止 | 禁止 | 禁止 | コードレビュー、分析 |
| workspace-write | ワークスペースのみ | 許可 | 禁止 | 日常開発(推奨) |
| danger-full-access | 許可 | 許可 | 許可 | 特殊なシナリオ(注意して使用) |
サンドボックスモードの設定
サンドボックス設定
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 が操作を実行する前の確認動作を制御します。
4種類の承認モード
| モード | 動作 | リスクレベル |
|---|---|---|
| suggest | 提案のみを提供し、操作は実行しない | 最低 |
| interactive | 機密操作の前に確認を求める | 低 |
| auto-edit | ファイル編集は自動、コマンドは確認が必要 | 中 |
| full-auto | すべての操作を自動実行 | 高 |
承認ポリシーの設定
承認設定
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 | 実行を禁止 |
ルール例
ルール定義
# 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 のネットワークアクセスを有効にする際のリスク:
- プロンプトインジェクション:悪意のあるWebページから命令を取得
- データ漏洩:コードやキーを外部に送信
- 悪意のある依存関係:悪意のあるコードを含むパッケージをダウンロード
必要な場合にのみ Agent ネットワークアクセスを有効にし、ドメインホワイトリストで制限してください。
エンタープライズ管理機能
Enterprise プランはエンタープライズレベルのセキュリティと管理機能を提供します。
エンタープライズ機能の概要
| 機能 | 説明 |
|---|---|
| SCIM | 自動ユーザープロビジョニング |
| SAML SSO | シングルサインオン統合 |
| MFA | 多要素認証 |
| EKM | エンタープライズキー管理 |
| RBAC | ロールベースのアクセス制御 |
| 監査ログ | 完全な操作記録 |
| データレジデンシー | データ保存場所を指定 |
マネージド設定
エンタープライズ管理者は統一設定を配布できます。
マネージド設定の優先順位
設定のマージ順序:
- マネージド設定(エンタープライズ配布)——優先度最高
- プロジェクト設定(.codex/config.toml)
- ユーザー設定(~/.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 呼び出し、トークン使用量 |
| ユーザー操作 | ユーザー認証、権限変更 |
ログアクセス
監査ログ
# エクスポート形式:
- JSON 形式
- CSV形式
- SIEMシステム統合形式
データレジデンシー
Enterpriseはデータ保存領域を指定できます。
レジデンシーオプション
| リージョン | 説明 |
|---|---|
| 米国 | デフォルトリージョン |
| 欧州 | GDPR準拠 |
| その他のリージョン | 企業の要件に応じて設定 |
データ保存場所の設定は、セールスチームに連絡して構成する必要があります。
チーム管理
ユーザープロビジョニング
SCIM 設定
# サポートされる操作:
- ユーザーの自動作成
- ユーザー属性の自動更新
- 自動無効化/ユーザー削除
ロール権限
| ロール | 権限 |
|---|---|
| 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段階で自動的に削除します。
その他の拡張