Skip to main content

Общие сведения о типах секретов GitHub

Узнайте об использовании, масштабе и правах доступа к GitHub секретам.

Как GitHub хранить секреты

          GitHub использует [запечатанные коробки с либнатрием](https://libsodium.gitbook.io/doc/public-key_cryptography/sealed_boxes) для шифрования секретов. Секрет шифруется до достижения GitHub и остаётся зашифрованным до тех пор, пока не будет использован , DependabotGitHub Actions, или Codespaces.

Dependabot Секреты

          Dependabot Секреты используются для хранения учетных данных и конфиденциальной информации для использования внутри Dependabot.

          Dependabot Секреты упоминаются в файле `dependabot.yml` репозитория.

Usage

          Dependabot Секреты обычно используются Dependabot для аутентификации в частных реестрах посылок. Это позволяет Dependabot открывать pull requests для обновления уязвимых или устаревших зависимостей в приватных репозиториях. Используемые для аутентификации, эти Dependabot секреты ссылаются в файл репозитория `dependabot.yml` .

          Dependabot Секреты также могут включать секреты, необходимые для рабочих процессов, инициированных Dependabot. Например, Dependabot может запускать GitHub Actions рабочие процессы при создании pull request-запросов для обновления зависимостей или комментариев к pull-запросам. В этом случае Dependabot секреты можно ссылаться из файлов рабочего процесса (`.github/workflows/*.yml`), если процесс запускается событием Dependabot .

Scope

Вы можете определить Dependabot секреты по адресу:

  • Уровень репозитория

  • Уровень организации

            Dependabot Секреты могут распространяться между репозиториями, если они установлены на уровне организации. Необходимо указать, какие репозитории в организации могут получить доступ к секрету.
    

Права доступа

          Dependabot Секреты получаются Dependabot при аутентификации в частные реестры для обновления зависимостей.

          Dependabot Секреты получают доступ GitHub Actions к рабочим процессам, когда событие-триггер для этого процесса инициируется Dependabot. Это связано с тем, что при запуске Dependabotрабочего процесса доступны только Dependabot секреты — секреты действий недоступны. Поэтому любые секреты, необходимые для этих рабочих процессов, должны храниться как Dependabot секреты, а не как секреты действий. Для события существуют дополнительные ограничения `pull_request_target` безопасности. См [. ограничения и ограничения](#limitations-and-restrictions).

Разрешения доступа пользователей

Секреты уровня репозитория:

  • Пользователи с администраторским доступом к репозиторию могут создавать и управлять Dependabot секретами.
  • Пользователи с коллаборационным доступом к репозиторию могут использовать секрет для Dependabot.

Секреты уровня организации:

  • Владельцы организаций могут создавать и управлять Dependabot секретами.
  • Пользователи с коллаборационным доступом к репозиториям с доступом к каждому секрету могут использовать секрет для Dependabot.

Ограничения и запреты

Для рабочих процессов, инициированных Dependabot, pull_request_target событие рассматривается иначе, чем другие события. Для этого события, если базовая ссылка на pull request была создана (Dependabotgithub.event.pull_request.user.login == 'dependabot[bot]'):

  • Рабочий процесс получает доступ только для GITHUB_TOKENчтения.
  • Секреты недоступны для рабочего процесса.

Это дополнительное ограничение помогает предотвратить потенциальные риски безопасности, которые могут возникнуть из-за pull request, созданных Dependabot.

          Dependabot Секреты не передаются Форкам.

Действия с секретами

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

Usage

Секреты действий ссылаются на файлы рабочих процессов (.github/workflows/*.yml).

Scope

Вы можете определить секреты действий по адресу:

  • Уровень репозитория
  • Уровень среды
  • Уровень организации

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

Права доступа

Секреты действий доступны только в GitHub Actions рабочих процессах. Несмотря на то, что работает на Действиях, Dependabot не имеет доступа к секретам Действий.

Для рабочих процессов, инициированных Dependabot, секреты действий недоступны. Эти секреты рабочих процессов должны храниться как Dependabot секреты, чтобы быть доступными для рабочего процесса.

Расположение, в котором хранится секрет Actions, определяет его специальные возможности:

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

Разрешения доступа пользователей

Секреты уровня репозитория и среды:

  • Пользователи с доступом администратора к репозиторию могут создавать секреты действий и управлять ими.
  • Пользователи с доступом** к репозиторию могут **использовать секрет.

Секреты уровня организации:

  • Владельцы организации могут создавать секреты действий и управлять ими.
  • Пользователи с доступом к репозиториям с доступом к каждому секрету могут использовать секрет.

Ограничения и запреты

  • Секреты действий недоступны для рабочих процессов, инициированных .Dependabot
  • Секреты действий не передаются рабочим процессам, которые активируются запросом на вытягивание из вилки.
  • GitHub Actions Автоматически редактирует содержимое всех GitHub секретов, которые печатаются в журналы рабочих процессов.
  • Можно хранить до 1000 секретов организации, 100 секретов репозитория и 100 секретов среды. Секреты ограничены размером 48 КБ. Дополнительные сведения см. в разделе "Ограничения для секретов".

Codespaces Секреты

          Codespaces секреты хранят учетные данные и конфиденциальную информацию, такую как API токены и SSH-ключи, для использования внутри GitHub Codespaces, что позволяет настраивать безопасные среды разработки.

Usage

          Codespaces Секреты ссылаются в Codespaces конфигурации контейнера разработки (`devcontainer.json`).

Scope

Вы можете определить Codespaces секреты по адресу:

  • Уровень учетной записи пользователя
  • Уровень репозитория
  • Уровень организации

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

          Codespaces Секреты могут распространяться между репозиториями, если они установлены на уровне организации. Политики доступа можно использовать для управления доступом к секрету репозиториям.

Права доступа

          Codespaces Секреты доступны только в Codespaces.

          GitHub Actions не могу получить доступ Codespaces к секретам.

Разрешения доступа пользователей

Секреты уровня учетной записи пользователя:

  • Codespaces Секреты доступны для любого кодового пространства, которое вы создаёте с помощью репозиториев, имеющих доступ к этому секрету.

Секреты уровня репозитория:

  • Пользователи с администраторским доступом к репозиторию могут создавать и управлять Codespaces секретами.
  • Пользователи с доступом** к репозиторию могут **использовать секрет.

Секреты уровня организации:

  • Владельцы организаций могут создавать и управлять Codespaces секретами.
  • Пользователи с доступом к репозиториям с доступом к каждому секрету могут использовать секрет.

Ограничения и запреты

  • Вы можете хранить до 100 секретов для GitHub Codespaces.
  • Секреты ограничены размером 48 КБ.
  • Codespaces Секреты не передаются Форкам.

Дополнительные материалы