Назад | Перейти на главную страницу

Лучшее решение, позволяющее внешним разработчикам получить доступ к нашему внутреннему серверу Git?

Моя компания использует аутсорсинг в разработке программного обеспечения. Обычно поставщики управляют исходным кодом, пока приложение не будет завершено, а затем передают его нам. У этого есть очевидные недостатки: (1) мы не можем контролировать, кто имеет доступ к коду во время разработки; (2) мы не можем проводить обзоры кода или статический анализ до окончания разработки. Решением было бы иметь сервер Git в нашей компании и позволить внешним разработчикам подключаться к нему. Это позволит правильно управлять доступом с нашей стороны. Однако единственный сегмент сети, к которому можно получить доступ напрямую извне, - это DMZ. Мне не нравится идея иметь конфиденциальные данные, такие как исходный код, в DMZ. Мы могли бы поместить сервер во внутренний сегмент, к которому нельзя получить прямой доступ. Затем нам нужно будет предоставить внешним разработчикам доступ к VPN, что означает управление их идентификаторами в нашей AD, или мы могли бы настроить правило для FW, но это нарушило бы правила сегментации сети.

Вы можете придумать лучшее решение? Видели ли вы какое-нибудь решение этой проблемы и было ли это удобно? Спасибо.

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

В конце концов, мы переместили систему управления версиями на внешний хостинг git. Доступно множество таких сервисов (например, SourceForge, BitBucket, Gitlab, GitHub).

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

Есть вариант безопасного git-хостинга (есть бесплатный и открытый исходный код). Keybase) или используйте помощник git, который шифрует файлы перед отправкой на сервер, например:

мерзавец

мерзавец обеспечивает прозрачное шифрование и дешифрование файлов в репозитории git. Файлы, которые вы выбираете для защиты, зашифровываются при фиксации и расшифровываются при извлечении. git-crypt позволяет вам свободно делиться репозиторием, содержащим как публичный, так и частный контент.

или git-secret

git-secret - это инструмент bash, который хранит личные данные внутри репозитория git. git-secret шифрует файлы с помощью открытых ключей разрешенных пользователей, позволяя пользователям, которым вы доверяете, получать доступ к зашифрованным данным с помощью pgp и их секретных ключей.