Чтобы CI пайплайны были безопасными, важно уметь передавать ключи, токены и пароли — так, чтобы они не утекали в логах и не хранились в коде. Самый удобный способ — переменные secrets, встроенные в GitHub Actions. Покажу, как это делается.
Сначала заходим в настройки репозитория, далее Settings → Secrets and variables → Actions → New repository secret и создаём новый секрет. Например:
Name: SECRET_KEYValue: super-secure-tokenТеперь переходим к CI-файлу .github/workflows/deploy.yml.
Используем этот секрет внутри run через ${{ secrets.SECRET_KEY }} — но не выводим напрямую! Вот как надо:
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Use secret safely
run: |
echo "${{ secrets.SECRET_KEY }}" | some-secure-command
Если хочется передать секрет как переменную окружения (например, использовать его в скриптах), делаем так:
- name: Export secret to env
run: echo "SECRET=$SECRET_KEY" >> $GITHUB_ENV
env:
SECRET_KEY: ${{ secrets.SECRET_KEY }}
Теперь переменная
$SECRET будет доступна на всех следующих шагах. Главное правило: никогда не выводим её напрямую через echo или print. GitHub и замаскирует, но лучше не рисковать.🔥 В итоге: секрет хранится в зашифрованном виде, в логах не светится, в пайплайне используется безопасно.
➡️ DevOps Ready | #практика