Безопасность и приватность
Изоляция, доступ, публикация и то, что добавляют интеграции в вашей сети.
Автономность не отменяет контроль. Ключевые принципы:
- Двухфакторный вход по коду на email — или единый вход через ваш корпоративный провайдер (OIDC / SAML 2.0): пароли сотрудников остаются у вас, аккаунты создаются при первом входе, вход по паролю участникам можно закрыть. См. Единый вход.
- Журнал аудита — кто, когда, откуда и что сделал в организации, включая отказы; записи не редактируются и не удаляются, каждая связана с предыдущей хэшем. Владелец читает и выгружает его сам, без запроса в поддержку. См. Журнал аудита.
- Изоляция по организациям — отдельное пространство на каждую организацию; данные и трафик не пересекаются.
- Доступ по ролям — вы решаете, кто и что может делать в проекте.
- Ничего не публикуется без одобрения — изменения попадают в ваш репозиторий только после решения «одобрить» на ревью.
- Токены на запись — ключи доступа к вашим репозиториям хранятся только на запись и не читаются обратно.
- Коннектор — вместо передачи токенов. Если git не должен быть доступен нам вовсе, запустите агент у себя: токен останется в вашей сети.
Что добавляют интеграции
Интеграция — это код, который выполняется на вашей машине, поэтому вопрос «что именно расширяет поверхность» законный. Расширяют три вещи, и у каждой есть граница:
| Что добавляется | Чем ограничено |
|---|---|
| Чужой код на вашей машине | комплект подписан нашим ключом; открытый ключ вшит в агент, подпись проверяется до распаковки. Версия отзывается через подписанный список отзывов |
| Доступ к вашему трекеру | учётной записью, которую вы завели боту, и списком репозиториев/проектов в подключении — он работает в обе стороны и пустым означает «нигде» |
| Исходящие запросы | правилом из манифеста: хост берётся из вашего же поля в форме, плюс разрешённые методы и префиксы путей. Link-local адреса (метаданные облаков) запрещены всегда |
Механика — по пунктам, включая права на каталоги, пользователей ОС и то, чего изоляция не даёт: «Изоляция и границы доступа».
Два свойства, которые стоит знать заранее:
- Интеграция не видит секретов. Исходящий запрос собирает коннектор и подставляет учётные данные сам; заголовок авторизации, выставленный интеграцией, вычёркивается.
- Модели не отдаётся ни один пишущий инструмент — ни на одной стадии. Ответ в тикет пишет коннектор по команде платформы, а не модель (почему так).
Если интеграций нет, ничего из этого не появляется: коннектор без установленных плагинов — это git-мост и ничего больше.
Хранение и удаление данных
Импортированный код лежит в изолированном пространстве вашей организации. Удаление копии по письменному запросу владельца организации — в течение 30 дней, из резервных копий — в течение 90.