Управление зашифрованными секретами
Секреты — это зашифрованные переменные среды, которые можно создать для хранения маркеров, учетных данных или любых других конфиденциальных данных, на которые могут полагаться рабочие процессы и действия GitHub Actions. После создания они становятся доступными для использования в рабочих процессах и действиях, имеющих доступ к организации, репозиторию или среде репозитория, в которой они хранятся.
В этом разделе описаны различные средства и стратегии, доступные в GitHub Enterprise Cloud и GitHub Enterprise Server для управления использованием зашифрованных секретов. Мы также объясним, как получить доступ к зашифрованным секретам в рабочих процессах и действиях.
Управление зашифрованными секретами на уровне организации
Создание зашифрованных секретов на уровне организации для хранения конфиденциальной информации — отличный способ обеспечить безопасность этой информации, минимизируя затраты на управление в вашей организации.
Предположим, что некоторые разработчики, пишущие рабочие процессы в вашей организации GitHub, нуждаются в учетных данных для развертывания кода в рабочей среде в некоторых из рабочих процессов. Чтобы избежать совместного использования этих конфиденциальных данных, можно создать зашифрованный секрет, содержащий учетные данные на уровне организации. Таким образом, учетные данные можно использовать в рабочих процессах без предоставления доступа.
Чтобы создать секрет на уровне организации, перейдите к параметрам организации и на боковой панели выберите секреты и переменные > Actions > New organization secret. На появившемся экране введите имя и значение и выберите политику доступа к репозиторию для секрета.
Политика доступа отображается под секретом в списке секретов после его сохранения:
Для получения дополнительных сведений о настроенных разрешениях для секрета можно выбрать пункт Обновить.
Управление зашифрованными секретами на уровне репозитория
Если вам требуется зашифрованный секрет в масштабе определенного репозитория, GitHub Enterprise Cloud и GitHub Enterprise Server также позволяют создавать секреты на уровне репозитория.
Чтобы создать секрет на уровне репозитория, перейдите к параметрам репозитория и на боковой панели выберите секреты и переменные > Actions > New репозиторий. На появившемся экране введите имя и значение секрета.
Доступ к зашифрованным секретам в рамках действий и рабочих процессов
В рабочих процессах
Чтобы получить доступ к зашифрованному секрету в рабочем процессе, необходимо использовать контекст secrets
в файле рабочего процесса. Например:
steps:
- name: Hello world action
with: # Set the secret as an input
super_secret: ${{ secrets.SuperSecret }}
env: # Or as an environment variable
super_secret: ${{ secrets.SuperSecret }}
В действиях
Чтобы получить доступ к зашифрованному секрету в действии, необходимо указать секрет в качестве параметра input
в файле метаданных action.yml
. Например:
inputs:
super_secret:
description: 'My secret token'
required: true
Если необходимо получить доступ к зашифрованному секрету в коде действия, код действия может считать значение входных данных с помощью переменной среды $SUPER_SECRET
.
Предупреждение
При создании собственных действий не включайте в исходный код вашего действия зашифрованные секреты, так как действия являются совместно используемые единицы работы. Если действие должно использовать зашифрованные секреты или другие предоставленные пользователем входные данные, рекомендуется использовать основной модуль из набора средств действий.