Управление секретами и переменными окружения
Безопасно используйте секреты, переменные и окружения GitHub Actions, чтобы хранить учётные данные отдельно от кода и управлять развёртываниями
«Управление секретами и переменными окружения» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.
Почему с секретами нужно обращаться осторожно
Конвейерам нужны токены и пароли для доступа к реестрам и облачным целевым системам. Если зашить их в код, они станут доступны всем, у кого есть доступ к репозиторию, — именно от этого защищают секреты.
Где хранятся секреты
Вы добавляете секреты в настройках репозитория, организации или окружения. В состоянии покоя они зашифрованы и передаются рабочим процессам только как замаскированные значения.
Использование секрета
Обратитесь к секрету через контекст secrets, а затем передайте его шагу как переменную окружения или входной параметр действия. Здесь секрет передаётся сценарию развёртывания.
steps:
- name: Deploy
env:
API_TOKEN: ${{ secrets.API_TOKEN }}
run: ./deploy.shСекреты маскируются
GitHub автоматически маскирует секреты в журналах, заменяя их на ***. Несмотря на это, никогда не выводите секрет и не сохраняйте его: преобразования вроде base64 могут обойти маскирование и раскрыть секрет.
Переменные и секреты
Для конфигурации, не содержащей чувствительных данных, например региона или флага сборки, используйте переменные через контекст vars. Они видны в пользовательском интерфейсе, и это нормально, если в них нет секретов.
env:
REGION: ${{ vars.AWS_REGION }}Стандартный GITHUB_TOKEN
Каждый запуск автоматически получает GITHUB_TOKEN для аутентификации в репозитории. Жёстко ограничьте его область действия с помощью ключа permissions — предоставляйте минимально необходимые права.
permissions:
contents: read
pull-requests: writeОкружения
Окружение, например тестовое или рабочее, объединяет секреты и добавляет правила защиты — обязательных проверяющих, таймеры ожидания и ограничения веток — перед запуском развёртывания.
jobs:
deploy:
environment: production
runs-on: ubuntu-latestОбязательные проверяющие
В защищённом окружении задание развёртывания приостанавливается, пока назначенный проверяющий не подтвердит его, создавая осознанный человеческий контроль перед рабочей средой.
Безопасность PR из форков
Секреты никогда не передаются рабочим процессам из PR из форков, поэтому ненадёжный участник не сможет их украсть. Проектируйте CI так, чтобы PR из форков не требовали секретов.
Ротация секретов
Считайте каждый секрет подлежащим ротации. Если секрет раскрыт или срок его действия истёк, просто обновите его в настройках — следующий запуск получит новое значение, и изменения кода не потребуются.
Кратко о лучших практиках
Основные рекомендации: используйте секреты для чувствительных значений, переменные — для остальных, жёстко ограничивайте область действия GITHUB_TOKEN, защищайте рабочую среду с помощью окружений и никогда не записывайте секрет в журнал.
Проверка понимания
Что и где следует использовать: секрет или переменную, замаскированное или видимое значение?
Итоги
Теперь Вы умеете безопасно управлять секретами и переменными: хранить их в зашифрованном виде, считывать через контекст secrets, ограничивать область действия токена и защищать развёртывания с помощью окружений.
Часто задаваемые вопросы
Урок «Управление секретами и переменными окружения» бесплатный?
Да — полный текст урока «Управление секретами и переменными окружения» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.
Чему я научусь в уроке «Управление секретами и переменными окружения»?
Безопасно используйте секреты, переменные и окружения GitHub Actions, чтобы хранить учётные данные отдельно от кода и управлять развёртываниями Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать DevOps Bootcamp?
Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Управление секретами и переменными окружения»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке DevOps Bootcamp?
Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Что такое CI/CD и DevOps?
- Основные концепции GitHub Actions
- Ваш первый рабочий процесс GitHub
- Управление секретами и переменными окружения