Безопасность и корпоративное управление Codex
Codex предоставляет многоуровневые механизмы безопасности и функции корпоративного управления для обеспечения безопасности данных и поддержки командной работы.
Обзор механизмов безопасности
Архитектура безопасности Codex разделена на несколько уровней:
| Уровень | Механизм | Функция |
|---|---|---|
| Изоляция песочницы | Режим песочницы | Ограничение области доступа к файлам и командам |
| Политики подтверждения | Политика одобрения | Управление подтверждением перед выполнением операции |
| Движок правил | Правила | Определить разрешения на выполнение команд |
| Управление сетью | Настройки доступа к сети | Ограничить доступ к внешней сети |
| Защита данных | Корпоративные функции | Журналы аудита, резидентность данных |
Режим песочницы
Песочница — основной механизм безопасности Codex, ограничивающий область работы Агента.
Три режима песочницы
| Mode | Изменение файлов | Выполнение команд | Доступ к сети | Применимые сценарии |
|---|---|---|---|---|
| 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 применять только при необходимости.
Политика одобрения
Политики одобрения управляют поведением подтверждения перед выполнением операций Codex.
Четыре режима одобрения
| Mode | Поведение | Уровень риска |
|---|---|---|
| suggest | Только предлагать рекомендации, не выполнять никаких операций | Минимум |
| interactive | Запрашивать подтверждение перед чувствительными операциями | Низкая |
| auto-edit | Автоматически редактировать файлы, для команд требуется подтверждение | Средняя |
| full-auto | Автоматически выполнять все операции | Высокая |
Установить политику подтверждения
Конфигурация подтверждения
codex --approval-mode interactive
# Переключение во время сеанса
/approval suggest
/approval auto-edit
# Файл конфигурации
[mycode4 type="toml"]
approval_policy = "interactive"
[/mycode4]
Движок правил
Правила используют язык Starlark для определения политик выполнения команд.
Типы правил
| Правила | Описание |
|---|---|
| prefix_rule | Сопоставление префикса команды |
| glob_rule | Сопоставление шаблонов путей к файлам |
Типы решений
| Принятие решений | Поведение |
|---|---|
allow | Автоматически одобрять выполнение |
prompt | Запросить у пользователя подтверждение |
forbidden | Запретить выполнение |
Примеры правил
Определения правил
# Разрешить команды Git
prefix_rule(
pattern = ["git"],
decision = "allow",
justification = "Команды Git безопасны для контроля версий"
)
# Разрешить npm install
prefix_rule(
pattern = ["npm", "install"],
decision = "allow",
justification = "Ожидается установка пакета"
)
# Запретить удаление корневого каталога
prefix_rule(
pattern = ["rm", "-rf", "/"],
decision = "forbidden",
justification = "Предотвратить повреждение системы"
)
# Спрашивать о командах sudo
prefix_rule(
pattern = ["sudo"],
decision = "prompt",
justification = "Повышенные привилегии требуют проверки"
)
Управление доступом к сети
Управляет возможностями Codex по доступу к сети для предотвращения утечки данных.
Управление облачной сетью
| Этап | Доступ по умолчанию | Описание |
|---|---|---|
| Скрипты настройки | Разрешено | Необходимо скачать зависимости |
| Выполнение агента | Запретить | По умолчанию отключено, можно включить |
Белый список доменов
Конфигурация сети
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 | Автоматическая подготовка пользователей |
| 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-системой
Резидентность данных
Предприятие может указать регионы хранения данных.
Параметры резидентности
| Область | Описание |
|---|---|
| США | Регион по умолчанию |
| Европа | Соответствие GDPR |
| Другие регионы | Настройка в соответствии с потребностями предприятия |
Для настройки параметров резидентности данных необходимо обратиться в отдел продаж.
Управление командой
Подготовка пользователей
Конфигурация SCIM
# Поддерживаемые операции:
- Автоматическое создание пользователей
- Автоматическое обновление атрибутов пользователей
- Автоматически отключать/Удалять пользователей
Разрешения роли
| Роль | Разрешения |
|---|---|
| Администратор | Полные административные разрешения |
| Участник | Стандартные разрешения на использование |
| Наблюдатель | Разрешения только для чтения |
Лучшие практики безопасности
Ежедневное использование
- По умолчанию использовать режим песочницы workspace-write.
- Для чувствительных операций используется режим интерактивного подтверждения
- Регулярно проверяйте конфигурацию Rules
- Ключи API, хранящиеся как Secrets
Корпоративное развертывание
- Включение SAML SSO и MFA
- Настройка управляемой конфигурации для единых политик
- Включить ведение журнала аудита
- Настройка размещения данных с учетом требований соответствия
- Используйте белый список доменов для ограничения сетевого доступа
ЧАВО
Вопрос: Как запретить Codex удалять важные файлы?
Используйте режим песочницы read-only или workspace-write и добавьте Rules для запрета команд удаления.
Вопрос: как предприятия настраивают единообразно?
Используя функцию управляемой конфигурации, администраторы предприятия могут развертывать единые конфигурации, которые переопределяют пользовательские настройки.
Вопрос: какая информация включается в журналы аудита?
Содержит полную запись всех сессий, вызовов инструментов, вызовов модели и операций пользователя.
Вопрос: Как обрабатывать конфиденциальные данные?
Используйте Secrets для хранения конфиденциальной информации; они доступны только в скриптах настройки и автоматически удаляются на этапе Agent.
Другие расширения