0Pricing
CI/CD with GitHub Actions & DevOps Pipelines · Урок

Управление секретами с GitHub

Подробно изучите безопасное хранение и получение конфиденциальных учётных данных с помощью GitHub Secrets и OpenID Connect (OIDC).

«Управление секретами с GitHub» — бесплатный урок CI/CD with GitHub Actions & DevOps Pipelines на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения CI/CD with GitHub Actions & DevOps Pipelines, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс CI/CD with GitHub Actions & DevOps Pipelines содержит 4 уроков всего.

Зачем нужно безопасное управление секретами

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

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

Что такое секреты GitHub

GitHub предоставляет безопасный способ хранения конфиденциальных данных, называемый секретами GitHub. Это зашифрованные переменные среды, которые можно использовать в рабочих процессах GitHub Actions.

  • По умолчанию они не записываются в журналы.
  • После создания они не отображаются в пользовательском интерфейсе.
  • Они доступны только выбранным рабочим процессам.

Это защищает ваши учетные данные от случайного раскрытия.

Настройка секретов репозитория

Секреты можно определять на разных уровнях: репозитория, среды или организации. Чаще всего начинают с секретов репозитория.

Чтобы создать секрет:

  1. Откройте вкладку Настройки своего репозитория.
  2. Перейдите в раздел Секреты и переменные > Действия.
  3. Нажмите Новый секрет репозитория.

Укажите уникальное имя, например API_KEY, и вставьте значение секрета.

Доступ к секретам в рабочих процессах

После определения секрета его можно использовать в файлах рабочего процесса YAML. GitHub Actions автоматически передает секреты в задачи как переменные среды.

Для доступа к ним используется контекст ${{ secrets.SECRET_NAME }}. Этот сценарий имитирует шаг, в котором используется такой секрет. Чтобы запустить его, представьте, что GitHub Actions установил MY_API_KEY как переменную среды.

#!/bin/bash
# This script simulates a workflow step
# where a secret is passed as an environment variable.

echo "Attempting to use an API key..."

# In a real GitHub Action, MY_API_KEY would be
# set by ${{ secrets.MY_API_KEY }} in the workflow YAML.

if [ -z "$MY_API_KEY" ]; then
  echo "Error: MY_API_KEY is not set!"
  echo "Please define it as a secret in your workflow."
else
  echo "Successfully accessed API key (partially shown): ${MY_API_KEY:0:5}..."
fi

Более широкие области действия секретов

Помимо секретов репозитория, GitHub предлагает еще две области действия с более широкими возможностями:

  • Секреты организации: доступны нескольким репозиториям внутри организации. Полезны для секретов, общих для многих проектов, например токена развертывания, используемого всей компанией.
  • Секреты среды: привязаны к конкретным средам развертывания, например staging и production. Для них можно настроить правила защиты, например требовать ручного подтверждения перед развертыванием.

Для максимальной безопасности всегда используйте наименьшую необходимую область действия.

Что такое OpenID-подключение (OIDC)

OpenID-подключение (OIDC) — это уровень аутентификации, построенный поверх OAuth 2.0. Это стандарт, позволяющий клиентам проверять личность конечного пользователя на основе аутентификации, выполненной сервером авторизации.

В CI/CD OIDC позволяет рабочим процессам безопасно проходить аутентификацию у облачных провайдеров, например AWS, Azure и GCP, без хранения долгосрочных учетных данных, таких как ключи API, в секретах GitHub.

Как OIDC работает с действиями

GitHub Actions может выступать в роли поставщика OIDC. При запуске рабочего процесса GitHub создает уникальный токен OIDC с коротким сроком действия для конкретной задачи.

Этот токен содержит проверяемые утверждения о рабочем процессе, например репозиторий, ветвь и идентификатор задачи (ID). Затем облачных провайдеров можно настроить так, чтобы они доверяли токенам, выпущенным GitHub, и предоставляли временный доступ на основании этих утверждений.

Ключевые преимущества OIDC

Использование OIDC с GitHub Actions дает существенные преимущества для безопасности:

  • Отсутствие долгосрочных учетных данных: вам не нужно хранить статические облачные ключи API в секретах GitHub.
  • Снижение риска: токены с коротким сроком действия сводят к минимуму последствия возможной компрометации токена.
  • Детализированный доступ: облачные роли можно сопоставить с конкретными условиями рабочего процесса, например разрешить развертывание только из ветви main.
  • Аудит: проще отслеживать, кто и что сделал, поскольку идентичность связана с запуском рабочего процесса.

Интеграция OIDC с облаком

Чтобы использовать OIDC, необходимо настроить облачного провайдера, например AWS IAM, Azure AD или GCP IAM, так, чтобы он доверял издателю OIDC от GitHub.

Обычно это включает следующие действия:

  1. Настройка поставщика удостоверений (IdP) в вашей облачной учетной записи.
  2. Определение роли/политики, предоставляющей конкретные разрешения.
  3. Добавление «политики доверия» к роли, позволяющей токенам OIDC GitHub использовать эту роль, часто с условиями на основе утверждений токена, например только для определенного репозитория.

Затем рабочий процесс запрашивает токен и использует его для аутентификации.

Быстрая проверка: безопасный доступ

Вы узнали о секретах GitHub для хранения конфиденциальных данных и об OpenID-подключении для аутентификации в облаке без учетных данных.

Какие из следующих утверждений об управлении секретами GitHub Actions являются TRUE?

Итоги: защита учетных данных

Отличная работа! Вы узнали, как безопасно управлять конфиденциальными данными в конвейерах CI/CD.

  • Секреты GitHub обеспечивают зашифрованное хранение ключей API и токенов в репозитории, организации или конкретных средах.
  • OpenID-подключение (OIDC) обеспечивает еще более безопасную аутентификацию у облачных провайдеров с помощью проверяемых токенов с коротким сроком действия вместо статических учетных данных.

Эти практики необходимы для создания надежных и безопасных конвейеров DevOps.

Часто задаваемые вопросы

Урок «Управление секретами с GitHub» бесплатный?

Да — полный текст урока «Управление секретами с GitHub» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс CI/CD with GitHub Actions & DevOps Pipelines, подпишись на CoddyKit PRO. Курс CI/CD with GitHub Actions & DevOps Pipelines содержит 4 уроков всего.

Чему я научусь в уроке «Управление секретами с GitHub»?

Подробно изучите безопасное хранение и получение конфиденциальных учётных данных с помощью GitHub Secrets и OpenID Connect (OIDC). Ты практикуешь CI/CD with GitHub Actions & DevOps Pipelines с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать CI/CD with GitHub Actions & DevOps Pipelines?

Предыдущий опыт не требуется. CI/CD with GitHub Actions & DevOps Pipelines на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Управление секретами с GitHub»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке CI/CD with GitHub Actions & DevOps Pipelines?

Да. Каждый урок CI/CD with GitHub Actions & DevOps Pipelines включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Лучшие практики безопасности в CI/CD
  2. Управление секретами с GitHub
  3. Статическое тестирование безопасности приложений (SAST)
  4. Безопасность зависимостей и цепочки поставок (SCA)
← Назад к CI/CD with GitHub Actions & DevOps Pipelines