- Дата публикации
Как безопасно кормить Cursor Cloud Agents секретами: разбор подхода Infisical
Что появилось / что изменилось
Инженерные команды всё активнее используют Cursor Cloud Agents как внешних исполнителей задач: агент поднимает свежую Ubuntu‑виртуалку, клонирует репозиторий, запускает install и start‑скрипты и работает с вашим кодом из Slack, GitHub, Linear или прямо из IDE.
Проблема в том, что как только агенту нужно подключиться к базе данных, внутреннему API или приватному пакету из реестра, ему требуются секреты. Cursor уже даёт встроенный Secrets UI (Settings → Background Agents → Secrets), который подсовывает агенту зашифрованные переменные окружения.
Infisical предлагает поверх этого собрать полноценный контур управления секретами:
- хранить в Secrets UI только пару
INFISICAL_CLIENT_IDиINFISICAL_CLIENT_SECRETдля machine identity; - на старте агента получать временный
INFISICAL_TOKENчерез Universal Auth; - подтягивать все остальные секреты из Infisical уже во время запуска агента, а не хранить их в Cursor;
- подставлять секреты либо прямо в процесс через
infisical run, либо выгружать в файлы (.env, JSON, YAML) черезinfisical export.
В итоге сами рабочие секреты не попадают ни в снапшоты диска, ни в репозиторий, ни в environment.json.
Как это работает
Cursor для каждой задачи агента поднимает изолированную Ubuntu‑ВМ:
- Восстанавливает её из снапшота.
- Клонирует репозиторий на нужной ветке.
- Выполняет сценарий из
.cursor/environment.json:install— один раз после снапшота, результат кешируется (например,npm installилиpip sync).start— при каждом запуске ВМ, именно здесь удобно забирать секреты.
Secrets UI Cursor подмешивает ключ‑значение как переменные окружения в рантайме, но не решает задачи ротации, аудита и разделения доступа по командам.
Infisical предлагает другой контур:
- Вы создаёте в Infisical machine identity с минимальными правами — только те секреты, которые нужны Cloud Agent.
- В Cursor Secrets UI сохраняете только
INFISICAL_CLIENT_IDиINFISICAL_CLIENT_SECRET. - В
start‑скрипте логинитесь в Infisical без участия человека:export INFISICAL_TOKEN=$(infisical login \ --method=universal-auth \ --client-id=$INFISICAL_CLIENT_ID \ --client-secret=$INFISICAL_CLIENT_SECRET \ --silent \ --plain) - Дальше два варианта:
infisical run— запускает ваш процесс (например,node server.js), подмешивая секреты вENVбез записи на диск.infisical export— выгружает секреты в файл нужного формата (.env, JSON, YAML), если инструменты ожидают конфиг именно в файле.
Пример конфигурации .cursor/environment.json для варианта с infisical run:
{
"snapshot": "snapshot-...",
"install": "npm install",
"start": "bash .cursor/start.sh"
}
Секреты подгружаются на каждый запуск агента заново, а не живут месяцами в статическом хранилище.
Что это значит для вас
Если вы уже запускаете Cursor Cloud Agents на продакшен‑репозиториях, у вас есть несколько типичных рисков:
- токены и пароли оказываются в снапшотах диска, если вы, например, используете
.npmrcс токеном во времяnpm install; - чувствительные значения попадают в
.cursor/environment.json, который хранится в Git; - значения в Secrets UI живут годами без ротации, а вы не видите, какой запуск агента к ним обращался и когда.
Связка Cursor + Infisical помогает закрыть эти дыры:
- секреты для баз, внутренних API и приватных реестров хранятся централизованно в Infisical, а в Cursor попадает только ограниченная machine identity;
- вы можете на уровне Infisical настроить ротацию, аудит обращений и доступ по проектам и окружениям;
- при компрометации одного токена в Cursor вы не раскрываете весь набор продакшен‑секретов — только тот, к которому привязана конкретная machine identity.
Кому это полезно:
- командам, которые уже используют Cursor Cloud Agents как часть CI/CD или для автоматизации задач в репозитории;
- продуктовым и платформенным командам, у которых есть внутренние сервисы и приватные реестры пакетов;
- компаниям с жёсткими требованиями к аудиту и управлению доступом к секретам.
Где это избыточно:
- маленьким пет‑проектам без продакшен‑данных, где секрет — это один токен к тестовой базе;
- сценариям, где Cursor используется разово и вы готовы жить с парой статичных значений в Secrets UI.
Если вы работаете из России, придётся учитывать доступность как Cursor, так и Infisical: оба сервиса расположены за рубежом, к ним часто нужен VPN.
Место на рынке
Cursor уже даёт базовый механизм секретов через UI и переменные окружения, но не закрывает задачи ротации, аудита и тонкой сегрегации доступа по ролям и окружениям.
Infisical встраивается поверх как специализированный менеджер секретов, который:
- работает с machine identity вместо раздачи одних и тех же токенов всем;
- подставляет секреты на лету через
infisical runбез записи на диск; - умеет выгружать конфиги в форматах, которые ожидают ваши инструменты (
.env, JSON, YAML).
Прямых численных сравнений с другими менеджерами секретов в контексте Cursor Cloud Agents здесь нет, но по архитектуре подход ближе к тому, как команды обычно интегрируют секреты в CI/CD‑пайплайны и MCP‑серверы: минимум долгоживущих токенов, максимум централизованного контроля и логирования в одном месте.