6 МЕСЯЦЕВ ПРЕДОПЛАТА −28% · 1 ГОД ПРЕДОПЛАТА −50%Сравнить тарифы
PrivacyNodes
РЕЛИЗНАЯ ИНЖЕНЕРИЯ

Дайте учётным данным развёртывания одну узкую задачу

Удостоверение развёртывания должно выполнять проверенную задачу релиза, не становясь универсальным администратором. Определите его задачу, доверенный источник артефактов и путь отзыва, прежде чем давать рабочему процессу CI доступ к хосту или хранилищу секретов.

Инженерные заметки PrivacyNodes · Проверено · 3 мин чтения

Разделите автоматизацию и личное администрирование

Конвейеру API отчётности нужно выбрать одобренный артефакт и вызвать контролируемое действие релиза. Это не означает автоматически необходимости создавать пользователей, изменять биллинг или читать все секреты приложения. Начните с инвентаризации разрешений и защищённой тестовой среды; держите учётные данные вне документов, репозиториев и примеров журналов.

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

Точно опишите разрешённую операцию

Иллюстративная инвентаризация разрешений релиза
ВозможностьНужно?Граница
Чтение одобренного артефактаДаКонкретный репозиторий/версия
Вызов действия релизаДаФиксированное приложение и среда
Чтение всех секретов среды выполненияИзбегатьКонтролируемое удостоверение среды выполнения
Изменение пользователей или политики SSHНетОтдельное администрирование
Изменение конфигурации рабочего процессаНет для удостоверения среды выполненияПроверка защищённого репозитория
Удаление резервных копийНетОтдельные разрешения восстановления

Проверяйте входные данные действия релиза. Ограниченная команда, которая объединяет произвольный текст в привилегированную оболочку, всё равно допускает непреднамеренную работу. Изучите поведение обёртки, доступные для записи пути и доверие к артефактам вместе. Широкие привилегии sudo или доступ к сокету Docker могут свести на нет предполагаемую границу.

Рассматривайте правки рабочего процесса как доступ к учётным данным

Тот, кто может изменять доверенные шаги рабочего процесса, может использовать или раскрыть свои учётные данные. Изучите разрешения репозитория, защищённые среды развёртывания и то, какие события запускают привилегированные задания. Держите производственные учётные данные вдали от недоверенного кода pull-запросов. Дайте токену рабочего процесса только те разрешения, которые нужны его заданию.

GitHub рекомендует закрепление полного хеша коммита SHA для неизменяемого выбора действий. Изучите выбранное действие и последующие обновления; тег версии может перемещаться. Избегайте вставки недоверенных данных событий напрямую во встроенный код оболочки. Маскировка известных значений секретов не является гарантией от раскрытия через преобразования, журналы или артефакты.

Техническая справка: Безопасное использование GitHub Actions.

Используйте короткий срок действия, когда это поддерживает назначение

OpenID Connect может позволить поддерживаемому назначению обменять удостоверение рабочего процесса на краткосрочные учётные данные. Настройте проверки доверия для предполагаемого репозитория, ветки или среды и аудитории. Это ни универсальная замена SSH, ни функция, предоставляемая текущим фронтендом PrivacyNodes.

Если ваше развёртывание использует SSH, изучите параметры authorized-key установленного пакета. Одна лишь принудительная команда не запрещает перенаправление; ограничения должны охватывать предполагаемые пути доступа и при этом вызывать безопасную операцию релиза. Тестируйте в отдельной среде. Сохраняйте работающий административный доступ и доступ к восстановлению при изменении аутентификации и проверьте новое независимое подключение, прежде чем удалять старый метод.

Техническая справка: GitHub Actions OpenID Connect · Формат OpenSSH authorized_keys.

Проверьте разрешённую и запрещённую работу

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

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

Проведите репетицию отзыва и релиза со сломанным конвейером

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

Задокументируйте, как авторизованный сопровождающий останавливает развёртывание и восстанавливается, когда CI недоступен. Свяжите эту процедуру с записи о выпуске и инвентаризацией восстановления. Узкие учётные данные ограничивают предполагаемые полномочия; они не делают вредоносный артефакт безвредным.

Официальные ссылки

Документация была проверена для этой статьи. Примеры — это планировочные упражнения, а не команды, протестированные на сервере PrivacyNodes. Проверьте документацию для вашей установленной версии.