Документация

Безопасность и развертывание

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

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

Где выполняется работа агентов

Каждая задача выполняется в собственном изолированном облачном рабочем пространстве. Это рабочее пространство создается для конкретной задачи и удаляется после ее завершения. Агенты могут считывать и записывать данные только в репозиторий, открытый в этом рабочем пространстве.

Существует три зоны:

ЗонаВладелецЧто в ней находится
Рабочее пространство агентаCoRoidИнструменты для проверки исходного кода, сборки и тестирования одной задачи. Создаются для каждой задачи и удаляются после ее завершения.
Планирующая плоскостьCoRoidМеханизмы планирования, спецификации, подтверждения и история принятия решений. В ней хранятся учетные данные проекта в зашифрованной конфигурации.
Ваша сеть и производственная средаВыНедоступно из рабочего пространства агента.
  1. Рабочее пространство агентовУправляется CoRoidИнструменты для проверки исходного кода, сборки и тестирования для одной задачи.
  2. Плоскость управленияУправляется CoRoidПланирование, спецификации, подтверждения и цепочка принятия решений. Учётные данные хранятся в зашифрованном виде.
  3. Ваша сеть и продакшн-средаВашеНе требуется расширение IDE, локальный агент или доступ к сети.

Рабочее пространство агента не может получить доступ к вашей сети или продакшену.

Единственный способ выйти — это pull request, решение о его объединении принимаете вы.

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

Результат работы выходит из рабочего пространства в виде pull request. Ваша команда решает, стоит ли его объединять с основной веткой, а затем ваш собственный путь развертывания использует его дальше. Для работы CoRoid не требуется расширение IDE, локальный агент или доступ к вашей частной сети.

Какие ресурсы интернета может использовать рабочее пространство

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

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

  • Включено (режим наблюдения). Все соединения проходят через прокси, который регистрирует хост и порт задачи, но не путь или содержимое запроса. Никакие запросы не блокируются.
  • Блокировать запрещенные ресурсы (режим принудительного контроля)— выбранный в панели настроек защиты. Прокси-сервер допускает доступ к общедоступным репозиториям пакетов (npm, PyPI, модули Go, crates.io, RubyGems, Maven Central и Gradle, NuGet, Packagist, Hex, pub.dev, conda), к хосту Git вашего проекта и к хостам из списка разрешённых адресов. Все остальные запросы блокируются. Если команда завершается ошибкой после такой блокировки, агенту сообщается, какой хост был заблокирован и по какой причине.

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

Раздел Сеть В разделе в представлении Factory перечислены места назначения, к которым обращались рабочие пространства, сначала — отклоненные запросы. Сканирование, которое проводит само CoRoid (например, сканирование на предмет безопасности), помещает рабочее пространство в отдельную задачу; в этой задаче указано, какое именно сканирование выполнялось, и так же перечислены места назначения.

В обоих режимах соединение, обходящее прокси-сервер, например прямое TCP-соединение, будет заблокировано, а прокси-сервер никогда не подключится к частному адресу. Инструменты определяют прокси-сервер через стандартные переменные среды прокси, которые устанавливает CoRoid; Maven считывает параметры прокси только из settings.xml, поэтому при включенной сетевой песочнице сборка Maven не сможет выйти в интернет. Поиск имен узлов по-прежнему осуществляется через резолвер кластера. Изменения вступают в силу для рабочих пространств, созданных после их применения.

Каждая запись в списке разрешенных ресурсов — это хост (api.example.com), его поддомены (*.example.com), либо и то, и другое с указанием порта (example.com:8443; без указания порта используются порты 80 и 443). Проект с собственной настройкой имеет свой режим и список разрешенных ресурсов; Использовать стандартные настройки вернет их к настройкам организации. Эти параметры передаются вместе с переносимостью настроек, как и другие параметры раздела «Безопасность».

Идентификация и доступ

Аутентификация централизована в шлюзе. Поддерживаются следующие варианты:

  • Сессии пользователей на основе JWT для доступа к порталу
  • Токены между сервисами с управляемым циклом ротации
  • Ключи API для внешних интеграций
  • Механизмы защиты конечных точек с разными уровнями доступа для пользователей, сервисов и смешанных сценариев

Доступ к репозиторию ограничен рамками проекта. Учетные данные одного проекта не могут быть использованы другим проектом, и для работы с одним репозиторием CoRoid не нужны учетные данные всей организации. Подробнее Подключите свой код.

Владельцы и администраторы организации управляют участниками, сессиями и потоком событий безопасности в разделе Настройки → Идентификация и доступ. SSO/SAML с поддержкой протокола SCIM входит в состав тарифа Enterprise, который доступен в режиме приватного предпросмотра.

Защита данных

  • Данные шифруются при передаче и хранении.
  • Учетные данные вашей организации, такие как ключи провайдеров, токены репозиториев и другие секреты интеграции, шифруются с помощью ключа данных, принадлежащего вашей организации. Служба управления ключами шифрует этот ключ данных в свою очередь. Только брокер учетных данных CoRoid может расшифровать их, и он фиксирует каждый случай использования. Подробнее Ключи провайдера.
  • Секреты конфигурации самого CoRoid хранятся в зашифрованном виде.
  • Облачный сервис предлагает Профиль размещения в ЕС для команд, у которых есть требования к GDPR или к резидентности данных. Только для ЕС Профиль AI обеспечивает выполнение вычислений модели на провайдерах, размещенных в ЕС. Подробнее см. Профили AI.
  • Вы сами определяете, как долго сохраняются история выполнения, расшифровки и артефакты. Подробнее см. Хранение данных.

Цепочка принятия решений

Каждое автономное изменение описывается на языке, привычном для рецензентов и команд по обеспечению безопасности:

  • Спецификация, действия агентов, процесс рецензирования и решение об утверждении остаются связанными с задачей.
  • В цепочке выполнения фиксируется каждый запуск агента, включая неудачные попытки и причины их возникновения.
  • История создания пулл-реквеста отображает окончательные доказательства перед слиянием кода.
  • Доказательства безопасности, зависимостей, покрытия кода, визуального тестирования, end-to-end и браузерных тестов можно прикрепить к процессу рецензирования. Подробнее см. Доказательства рецензирования.

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

Операции в продакшн-среде

  • Генерация SBOM и сканирование образов контейнеров в системе непрерывной интеграции
  • Публичные эндпоинты только с протоколом HTTPS с завершением TLS
  • Автоматизированные снимки базы данных и инструкции по восстановлению
  • Мониторинг и оповещения по метрикам, логам и ошибкам

Варианты развертывания

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

МодельДоступностьГде он работает
ОблакоДоступно для широкого использованияУправляется CoRoid, с возможностью размещения данных в ЕС
Корпоративное облакоЗакрытая предварительная версияУправляется CoRoid, с выделенными ресурсами, SSO/SAML, поддержкой SCIM и экспортом аудита
ЛокальноЗакрытая предварительная версияНа вашей инфраструктуре, с использованием Docker Compose или Kubernetes

Локально

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

  • Docker Compose подходит для установок на один сервер и пилотных проектов. Для хранения базы данных, репозиториев и логов используются тома с сохранением данных.
  • Kubernetes подходит для установок на несколько серверов и с автоматическим масштабированием. Helm управляет службами приложения, рабочих процессов, синхронизации и выполнения, а также работает с управляемыми или самостоятельно развернутыми системами PostgreSQL и объектными хранилищами.
  • Ограниченные сети может использовать стратегии работы с моделями и зависимостями в режиме офлайн, самостоятельно развернутые системы управления секретами и внутренний протокол TLS.

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

Сертификаты

В настоящее время у CoRoid нет отчета SOC 2 или другой сторонней сертификации безопасности. SOC 2 — это цель, к которой мы стремимся. Мы не будем называть механизм контроля сертифицированным, пока это не подтвердится.