Уберите секреты из рабочей среды и запретите доступ к конфиденциальным файлам. Начните с сочетания этих двух мер.

Режим только для чтения, согласование действий и отказ от использования данных для обучения решают разные задачи. Проверяйте отдельно, может ли каждая мера предотвратить доступ к секретным файлам.

Проверяйте чтение, выполнение и передачу отдельно

Что можно прочитать

Удалите ненужные секреты из рабочей среды. Рассмотрите правило deny для запрета чтения конфиденциальных файлов.

Действия за пределами ограничений

Проверьте, кто рассматривает запросы на согласование. Не расширяйте границы без необходимости через Full access или разрешение выполнять команды вне песочницы.

Сеть и другие инструменты

Отдельно проверяйте сеть для команд, передачу модели и доступ через браузер или MCP.

Ни один переключатель не блокирует одновременно все обращения к файлам, сетевой трафик и использование данных для обучения.

Документация OpenAI по Permissions, песочнице, согласованию, безопасности и настройкам проверена 8 октября 2026 года. Статья посвящена главным образом командам внутри локальной песочницы. Пример конфигурации не применялся на реальном устройстве; действенность ограничений на нём не проверялась. Настройки устройств и аккаунтов не менялись.

1. Режим только для чтения, согласование и обучение

Запрет изменения файлов и запрет их чтения — разные ограничения.

read-only

Режим ограничивает запись. Он не скрывает доступное для чтения содержимое файлов как секретное.

workspace-write

Определяет, где разрешено редактирование. Чтение не обязательно ограничивается теми же расположениями.

МеханизмЧто он в основном регулируетЧего сам по себе не гарантирует
Режим только для чтенияВозможность изменять файлыЧто доступные секретные файлы не будут прочитаны
Политика согласованияКто проверяет действия, выходящие за границыПроверку человеком каждого разрешённого чтения
Правила deny для файловЗапрет чтения и записи по указанным путямУдаление уже вставленного содержимого или запрет доступа через другие инструменты
Сетевые ограничения командСетевые адресаты команд в песочницеБлокировку всех соединений моделей, аутентификации, браузеров, MCP и других сервисов
Настройки обученияИспользование обработанных данных для улучшения моделейОтсутствие обработки или передачи данных

Даже с on-request команды в разрешённой области могут выполняться без дополнительного согласования. Для проверки человеком уточните и политику согласования, и получателя запроса на проверку.

Чем отличается автоматическая проверка ИИ

approvals_reviewer = "auto_review" направляет соответствующую проверку ИИ. Это не проверка человеком; настройка также не требует дополнительно проверять каждое уже разрешённое действие.

Источник: OpenAI: согласование и границы песочницы. Обучение отдельно рассмотрено в статье ChatGPT и Codex: настройки обучения и конфиденциальные сведения.

2. Уберите секреты из рабочей среды

Для изменения интерфейса могут быть достаточны исходный код и вымышленные данные. Ключам API рабочей системы, данным клиентов и семейным документам не обязательно находиться в той же среде.

Перемещения файлов в другую папку недостаточно. Если широкие права чтения сохраняются, файлы могут остаться доступными.

Добавляйте в рабочую копию только необходимое

1
Подготовьте код и вымышленные данные

Вместо данных рабочей системы используйте небольшие входные данные, воспроизводящие проблему.

2
Не включайте секретные значения

В примерах настроек оставляйте только имена полей. Проверьте также журналы, резервные копии и историю.

3
Проверьте доступ к окружению

Уточните доступность других папок, домашнего каталога, общих хранилищ и подключённых приложений.

Рабочие копии, отдельные учётные записи и контейнеры всё равно требуют проверки общих папок и переданных им учётных данных.
Предотвращают ли правила игнорирования Git чтение?

.gitignore задаёт неотслеживаемые файлы, которые Git должен игнорировать. Он не отнимает права чтения в ОС. Даже если поиск обычно пропускает файл, это не гарантирует запрета чтения по явно указанному пути. Добавленное правило игнорирования также не влияет на файлы, уже отслеживаемые Git. Документация Git: область действия gitignore.

Инструкции и технический запрет доступа

Указание «не читать секреты» в AGENTS.md может быть полезной рабочей инструкцией. Само по себе оно не создаёт ограничений доступа в ОС. Сочетайте инструкции с технически обеспеченным запретом доступа. Примеры обезличивания приведены в статье меры предосторожности при вводе сведений в ИИ-инструменты.

3. Пример конфигурации для запрета чтения

Permission profiles — бета-функция. Перед использованием проверьте поддерживаемые среды и конфигурацию, выбранную в текущем сеансе.

read: чтение

Разрешение читать целевой объект

write: изменение

Разрешение записывать в целевой объект

deny: запрет

Запрещает и чтение, и запись для целевого объекта

Учитывайте конфликты с прежними настройками песочницы
Если прежние настройки остаются активными, Permission profiles могут не использоваться.

Проверка конфликтов и административных ограничений

Не смешивайте с прежними настройками: default_permissions и [permissions] не предназначены для совместного использования с прежними sandbox_mode или [sandbox_workspace_write]. Обычно при наличии sandbox_mode в загруженной конфигурации или --sandbox при запуске применяется прежний подход. Административные ограничения через allowed_permission_profiles — отдельное условие.

Ниже приведён иллюстративный вариант конфигурации, который добавляет запрет секретных файлов и согласование человеком к официальному примеру для рабочей области. Не заменяйте им всю существующую конфигурацию. Проверьте поддержку версии, ограничения организации и необходимые пути выполнения, затем испытайте вариант в тестовой среде без секретов.

Где настраивать: пользователь и проект
Настройки пользователя

~/.codex/config.toml

Настройки проекта

.codex/config.toml

Область действия и условия загрузки различаются. Настройки проекта загружаются только для доверенных проектов.

Пример: запретить секретные файлы и отключить сеть для команд
default_permissions = "project-private"
approval_policy = "on-request"
approvals_reviewer = "user"

[permissions.project-private]
extends = ":workspace"

[permissions.project-private.filesystem]
":root" = "deny"
":minimal" = "read"

[permissions.project-private.filesystem.":workspace_roots"]
".env" = "deny"
".env.production" = "deny"
"secrets" = "deny"

[permissions.project-private.network]
enabled = false

Какие пути охватывает этот пример?

Применяется к текущей и каждой дополнительной рабочей области

.envПредусмотрен запрет
.env.productionПредусмотрен запрет
secrets/ и содержимоеПредусмотрен запрет
subfolder/.envПроверить отдельно
Переименованные секреты или копии в журналахПроверить отдельно
Схема иллюстрирует область действия правил. Это не результаты проверки запрета на реальном устройстве.
Вне рабочей области

:root запрещает чтение. Исключения включают :minimal для выполнения и временные каталоги, разрешённые унаследованным профилем.

Внутри рабочей области

Наследует право редактирования из :workspace и запрещает указанные выше пути. Пример не обнаруживает секреты, попавшие в вывод.

Имена профилей, несколько рабочих областей и временные файлы

project-private — имя, выбранное для примера. :workspace_roots распространяется на текущую и дополнительные рабочие области, применяя правила к перечисленным путям непосредственно в каждом корневом каталоге. secrets обозначает файл или поддерево с таким именем.

Конфигурация не предотвращает любое чтение вне рабочей области. Также не копируйте секреты во временные хранилища.

Источник: OpenAI: конфигурация Permission profiles, запреты и область действия. В статье не сообщается о применении примера на реальном устройстве и проверке изоляции.

4. Шаблоны .env и возможные пробелы

Точные имена подходят для секретов в известных местах. При использовании шаблонов учитывайте, что *.env и .env.* различаются. Не считайте, что официальный пример **/*.env также запрещает .env.production при тех же условиях.

Пример правилаПредполагаемая цельПроверить отдельно
.envФайл с этим именем непосредственно в корне рабочей областиПодпапки и имена с добавленным суффиксом
.env.productionКонфигурация рабочей системы в корнеНастройки рабочей системы под другими именами или их копии
secretsПуть с этим именем в корне и его содержимоеКопии в других местах, например журналах и резервных копиях
**/*.envФайлы с окончанием .env на разных уровнях каталоговИмена с суффиксом, глубину поиска и изменения после запуска

Проверьте глубину каталогов и файлы, добавленные после запуска

В Linux, WSL и нативном Windows шаблоны запрета с неограниченным ** могут требовать ограниченного раскрытия до запуска. Официальная документация описывает установку glob_scan_max_depth не ниже 1 либо явное указание глубины шаблонами *.env, */*.env и */*/*.env. Если используются более глубокие каталоги, проверьте охват до этой глубины.

Некоторые механизмы защиты собирают совпадающие пути до запуска. Проверьте, запрещаются ли файлы, созданные позже, в вашей фактической ОС, версии и среде выполнения. Не считайте шаблоны универсальным правилом, которое обязательно защитит все будущие секреты.

Какое правило действует при пересечении разрешений?

Более конкретное правило пути может переопределить более общее. Для одинакового пути запрет имеет приоритет, но внутри широкого запрета возможно узкое разрешение. Проверьте также дополнительные слои конфигурации и наследование родительских профилей.

Источники: OpenAI: запрет чтения по путям и шаблонам, порядок загрузки конфигурации. Файл проекта .codex/config.toml загружается только для доверенных проектов. Различайте записанные настройки и реально действующие в текущем сеансе.

5. Что блокирует отключение сети для команд

Отключение сети для команд ограничивает сеть программ внутри соответствующей песочницы. Однако запросы клиента Codex к модели и сервисам аутентификации отделены от сетевых ограничений команд. Выключенный переключатель не доказывает, что прочитанный Codex код не передаётся как контекст модели.

Область действия сетевых ограничений команд

Охвачено: внутри песочницы

Сетевые обращения команд, скриптов и их дочерних процессов.

Отдельное управление: другие пути

Модели и аутентификация, веб-поиск, подключённые приложения, MCP, браузер и Computer Use, облачные задачи.

Инструменты с отдельным управлением проверяйте через их собственные настройки подключения, разрешений и окружения.

Чтобы разрешить сеть, но ограничить адресатов, нужно включить сетевой прокси и задать правила доменов. Сам по себе список разрешённых доменов в профиле не активирует эти правила.

Сеть командПроксиРезультат
ОтключенаЛюбой вариантСеть для команд не разрешена
ВключенаОтключёнВозможны прямые соединения; правила доменов профиля не действуют
ВключенаВключёнПрокси применяет правила доменов и запрещает внешние адресаты, если ни один не разрешён

Секреты всё ещё можно отправить разрешённому адресату. Ограничение доменов не равнозначно проверке передаваемого содержимого. При согласовании выполнения вне песочницы не считайте, что текущие запреты продолжают защищать без изменений. Проверьте, что расширяет такое согласование. OpenAI: сетевые разрешения и требования к прокси.

6. Переменные окружения, ОС и Cloud

Секреты бывают не только в файлах. Если в оболочке есть API-ключ, дочерний процесс может использовать его через унаследованные переменные окружения даже при запрете доступа к файлу. Наследование регулируется отдельно через shell_environment_policy.

Автоматическое исключение переменных: true и false

true | По умолчанию

Не применяет автоматическое исключение переменных, чьи имена содержат KEY, SECRET или TOKEN

false

Применяет это автоматическое исключение

Сравниваются значения ignore_default_excludes. Это отдельный от запрета файлов механизм, который фильтрует по имени переменной и не обнаруживает все секреты.

Механизм не защищает переменные под другими именами или значения, получаемые программами из других источников. set применяется после исключения и может восстановить исключённые переменные. OpenAI: наследование окружения и порядок применения.

Windows: проверьте и реализацию песочницы

Локальные Permission profiles документированы для macOS, Linux, WSL и нативного Windows, но реализации различаются. В Windows песочница с повышенными правами описана как более сильный вариант. Песочница без повышенных прав обеспечивает более слабую сетевую изоляцию и не может применять некоторые политики изоляции чтения и записи. Согласно документации, неподдерживаемые политики приводят к отказу в выполнении. Ошибка не повод переключаться на Full access. OpenAI: применение ограничений в разных ОС.

Cloud: не переносите локальные настройки без изменений

Проверяйте настройки конкретной среды Codex Cloud отдельно. Не считайте, что локальные профили автоматически действуют во всей Cloud или в облачной среде dot. Не используйте местный пример конфигурации из статьи без изменений как облачную настройку. Различия мест выполнения описаны в статье Codex Remote, Cloud и условия подключения ПК.

7. Проверка на тестовых файлах

«Я запретил читать», «Я сохранил настройки» и «Чтение действительно было заблокировано» — разные виды доказательств. Проверка не требует предоставлять Codex реальные секреты. Далее приведён план для пользователя или администратора, а не отчёт о тестах на этом устройстве.

  1. Запишите окружение: Отметьте версию Codex, ОС, место выполнения и выбранные разрешения. В CLI проверяйте рабочую область через /status, а выбранные разрешения через /permissions.
  2. Проверьте конфликты: Изучите настройки пользователя и доверенного проекта, выбранный профиль, флаги запуска и административные ограничения. Не вставляйте полные конфигурационные файлы или секретные значения в переписку для диагностики.
  3. Подготовьте тестовые файлы: В отдельной рабочей области без секретов создайте разрешённые и запрещённые файлы. Заполните их вымышленными маркерами.
  4. Проверьте разрешение и запрет: Через один и тот же путь выполнения убедитесь, что разрешённые файлы читаются, а запрещённое чтение вызывает ошибку. Добровольный отказ Codex читать файл не доказывает технический запрет.
  5. Испытайте разные расположения: Проверьте тестовые файлы в корне, подпапках, имена с суффиксом и файлы, созданные после запуска. Не согласовывайте обход запрета. Если неожиданное чтение удалось, прекратите работу в среде и выясните причину.
  6. Проверьте и пути вывода: Уточните, не выводят ли тесты или сборки секреты в журналы и не передают ли те же сведения другим MCP-инструментам, браузерам или подключённым приложениям.

Доступные сведения зависят от версии CLI и отображения, поэтому проверяйте фактический вывод, а не только названия команд. Официальный CLI также предлагает проверки для конкретной ОС через codex sandbox. Прежде чем считать их равнозначными, убедитесь, что настройки вспомогательной команды совпадают с действующими в обычном сеансе настольного приложения или IDE. OpenAI: проверка песочницы.

Добавленный позднее запрет не отменяет уже прочитанное. Отдельно проверяйте хранение прежних разговоров, журналов и файлов, а также настройки обучения. Сам факт успешного чтения не доказывает раскрытие третьим лицам. Рассматривайте отдельно, что было прочитано, куда попало и требуют ли учётные данные дополнительных мер.

Пользователи также запрашивали исключение секретных файлов в публичном обсуждении Codex. Это пример реального запроса, а не доказательство отсутствия поддержки сегодня. Утверждения о спецификации в статье основаны на актуальной официальной документации Permissions, а не старых сообщениях.

Частые вопросы

Предотвращает ли read-only передачу .env?

Такая гарантия из read-only не следует: режим ограничивает изменения. Чтобы доступное содержимое .env не попадало в контекст модели, отдельно проверьте запрет чтения файла и рабочую среду без секретов.

Достаточно ли .gitignore или AGENTS.md?

Они не заменяют технически обеспеченный запрет чтения. Игнорирование Git, рабочие инструкции и разрешения ОС — разные механизмы. Проверьте тестовыми файлами, что deny действует в текущей среде выполнения.

После отключения сети Codex работает полностью на устройстве?

Нет. Сетевые ограничения команд не отключают соединения с моделями и сервисами аутентификации. Настройки браузера, MCP, подключённых приложений и Cloud также отдельные.

Полностью ли пример защищает секреты в Windows?

Полная защита не гарантируется. Нужно проверить поддержку бета-функции, реализацию песочницы ОС, действующие слои конфигурации, пути и используемые инструменты. Пример не применялся и не проверялся на реальном устройстве.