Конфигурация хоста Linux для непрерывного развертывания?

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

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

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

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

Хост развертывания использует виртуальную машину на основе Ubuntu 16.04.2 LTS с доступом через ssh. На сервере будет размещаться веб-приложение на основе HTTP.

0
задан 16 October 2017 в 19:01
2 ответа

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

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

0
ответ дан 5 December 2019 в 07:18

Можно принудительно запустить команду при соединении, что может ограничить действия, которые можно сделать с помощью ключа. Существует ряд других опций, которые можно применить, включая ограничение IP-адреса источника для соединения. См. Вашу справочную страницу для authorized_keys и / или sshd для получения подробной информации.

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

Вы можете предоставить развертывание через NFS или использовать scp для отправки или получения сборки.

0
ответ дан 5 December 2019 в 07:18

Теги

Похожие вопросы