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

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

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

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

## Dependabot Секреты

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

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

### Использование

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

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

### Объем

Вы можете определить 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 была создана (Dependabot`github.event.pull_request.user.login == 'dependabot[bot]'`):

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

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

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

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

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

### Использование

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

### Объем

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

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

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

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

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

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

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

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

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

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

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

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

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

### Ограничения и условия

* Секреты действий недоступны для рабочих процессов, инициированных .Dependabot
* Секреты действий не передаются рабочим процессам, которые активируются запросом на вытягивание из вилки.
* GitHub Actions Автоматически редактирует содержимое всех GitHub секретов, которые печатаются в журналы рабочих процессов.
* Можно хранить до 1000 секретов организации, 100 секретов репозитория и 100 секретов среды. Секреты ограничены размером 48 КБ. Дополнительные сведения см. в разделе ["Ограничения для секретов](/ru/actions/reference/security/secrets#limits-for-secrets)".

## Codespaces Секреты

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

### Использование

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

### Объем

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

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

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

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

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

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

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

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

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

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

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

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

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

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

### Ограничения и условия

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

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

* [Настройка доступа к частным реестрам для Dependabot](/ru/code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/configure-access-to-private-registries#storing-credentials-for-dependabot-to-use)
* [Справочник по секретам](/ru/actions/reference/security/secrets#limits-for-secrets)
* [Управление секретами среды разработки для репозитория или организации](/ru/codespaces/managing-codespaces-for-your-organization/managing-development-environment-secrets-for-your-repository-or-organization)
* [Управление секретами, специфичными для ваших аккаунтов, для GitHub Codespaces](/ru/codespaces/managing-your-codespaces/managing-your-account-specific-secrets-for-github-codespaces)