GitHub представил бета-версию action-permissions – инструмента, который позволяет отслеживать права доступа для рабочих процессов Actions. Система подскажет, какие разрешения должны быть для успешного запуска.
Проблема разрешений
GitHub Actions – это система автоматизации использования ИТ-хостинга. С ее помощью можно настроить реакцию на различные события: пушинг кода, публикацию релиза, создание отчета об ошибке. Эти рабочие процессы получают токен доступа к временному репозиторию GITHUB_TOKEN.
Изначально этот токен имел весьма широкий набор разрешений, в том числе на полное чтение и запись. В 2021 году была представлена расширенная модель управления правами, поэтому сейчас по умолчанию в новых репозиториях разрешения для рабочих процессов установлены в режиме только для чтения. Но в остальных случаях Actions по-прежнему имеют право на запись, даже если оно не требуется для нормального функционирования процесса.
Проверить привилегии рабочих процессов по умолчанию для репозитория можно в настройках проекта во вкладке «Действия». Там же можно изменить действующие разрешения.
Оптимальные настройки
Инструмент action-permissions позволяет отслеживать привилегии, которые необходимы конкретному рабочему процессу. Он реализует принцип безопасности с наименьшими привилегиями, который предполагает выдачу только необходимых прав доступа.
Самостоятельно провести такую настройку затруднительно, потому что сложные процессы зачастую состоят из несколько действий, требующих разных разрешений. При этом проблематично увидеть полный список привилегий, которые необходимы для комплексных Actions. Поэтому такие изменения могут критически сказаться на работоспособности проекта.
Инструмент action-permissions состоит из двух модулей:
- Monitor action устанавливает в средство запуска рабочих процессов локальный прокси-сервер, защищенный от передачи информации третьим лицам. Он собирает данные о взаимодействии с API GitHub, которые инициирует процесс, и предлагает рекомендуемые минимальные разрешения как часть сводки.
- Advisor action необходим для консолидации сведений от разных запусков рабочего процесса.
После того, как рекомендации системы применены, можно прекратить использовать модули. Новые разрешения для Actions следует добавлять по мере необходимости. Инструмент action-permissions доступен как open source проект.