Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Секретные переменные — это зашифрованные переменные, которые можно использовать в конвейерах без предоставления их значения. Секретные переменные можно использовать для конфиденциальной информации, такой как пароли, идентификаторы и другие идентифицирующие данные, которые не должны быть раскрыты в конвейере. Секретные переменные шифруются в состоянии покоя с помощью 2048-разрядного ключа RSA и доступны агенту для выполнения задач и сценариев.
Рекомендуемые способы задания секретных переменных находятся в пользовательском интерфейсе, в группе переменных и в группе переменных из Azure Key Vault. Вы также можете задать секретные переменные в скрипте с помощью команды ведения журнала, но этот метод не рекомендуется, так как любой пользователь, который может получить доступ к конвейеру, также может видеть секрет.
Секретные переменные, заданные в интерфейсе настроек конвейера, относятся к тому конвейеру, где они установлены. Группы переменных можно использовать для совместного использования секретных переменных в конвейерах.
Секретная переменная в пользовательском интерфейсе
При редактировании отдельного конвейера можно задать секретные переменные в редакторе конвейера. Вы шифруете переменную конвейера и устанавливаете её в состояние секретности, выбрав значок блокировки.
Вы задаете секретные переменные таким же образом для YAML и classic.
Чтобы задать секреты в веб-интерфейсе, выполните следующие действия.
- Перейдите на страницу Pipelines (Конвейеры), выберите соответствующий конвейер и нажмите кнопку Edit (Изменить).
- Найдите Переменные для этого конвейера.
- Добавьте или обновите переменную.
- Выберите параметр сохранить это значение в секрете, чтобы переменная хранилась в зашифрованном виде.
- Сохраните конвейер.
Секретные переменные шифруются неактивных с помощью 2048-разрядного ключа RSA. Секреты доступны агенту для использования в задачах и сценариях. Будьте осторожны с тем, кто имеет доступ к изменению конвейера.
Внимание
Мы стараемся маскировать секреты в выводе Azure Pipelines, но вам всё же необходимо принять меры предосторожности. Никогда не повторять секреты в качестве выходных данных. Некоторые аргументы командной строки журнала операционных систем. Никогда не передавать секреты в командной строке. Вместо этого мы рекомендуем перенести ваши секреты в переменные среды.
Мы никогда не скрываем части секретной информации. Если, например, "abc123" задается как секрет, "abc" не маскируется в журналах. Это позволяет избежать маскирования секретов на слишком детальном уровне, что делает журналы нечитаемыми. По этой причине секреты не должны содержать структурированные данные. Если, например, "{ "foo": "bar" }" имеет значение секрета, "панель" не маскируется из журналов.
В отличие от обычной переменной, они не расшифровываются автоматически в переменные среды для скриптов. Необходимо явно сопоставить секретные переменные.
Использование секретной переменной в пользовательском интерфейсе
Необходимо сопоставить секретную переменную с переменными среды, чтобы ссылаться на них в пайплайнах YAML. В этом примере в пользовательском интерфейсе определены две секретные переменные. SecretOne
SecretTwo
Значение SecretOne
равно foo
, и значение SecretTwo
равно bar
.
steps:
- powershell: |
Write-Host "My first secret variable is $env:FOO_ONE"
$env:FOO_ONE -eq "foo"
env:
FOO_ONE: $(SecretOne)
- bash: |
echo "My second secret variable: $FOO_TWO"
if [ "$FOO_TWO" = "bar" ]; then
echo "Strings are equal."
else
echo "Strings are not equal."
fi
env:
FOO_TWO: $(SecretTwo)
Выходные данные конвейера:
My first secret variable is ***
True
My second secret variable: ***
Strings are equal.
Примечание.
Azure Pipelines делает попытку маскировать секреты при создании данных в журналы конвейера, поэтому вы можете увидеть дополнительные переменные и данные, маскированные в выходных данных и журналах, которые не заданы как секреты.
Более подробный пример см. в разделе "Определение переменных".
Установка секретной переменной в группе переменных
Вы можете добавить секреты в группу переменных или связать секреты из существующего Azure Key Vault.
Создание новых групп переменных
Выберите группу "Библиотека> конвейеров>+ переменная".
Введите имя и описание группы.
Необязательно. Переместите переключатель, чтобы связать секреты из хранилища ключей Azure в качестве переменных. Дополнительные сведения см. в разделе "Использование секретов Azure Key Vault".
Введите имя и значение для каждой переменной , включаемой в группу, выбрав +Добавить для каждой из них.
Чтобы обеспечить безопасность переменной, щелкните значок блокировки в конце строки.
После завершения добавления переменных нажмите кнопку "Сохранить".
Группы переменных соответствуют модели безопасности библиотеки.
Подключение секретов из Azure Key Vault
Вы можете создать группы переменных и связать их с существующим хранилищем ключей Azure, что позволяет сопоставить секреты, хранящиеся в хранилище ключей. Только имена секретов сопоставляются с группой переменных, а не значениями секретов. Запуски конвейера, которые связаны с группой переменных, извлекают последние секретные значения из хранилища. Дополнительные сведения см. в статье "Связывание группы переменных с секретами в Azure Key Vault".
Использование задачи Azure Key Vault
Задачу Azure Key Vault можно использовать для добавления секретов в конвейер. Эта задача позволяет конвейеру подключаться к Azure Key Vault и извлекать секреты для использования в качестве переменных конвейера.
В редакторе конвейера выберите "Показать помощника ", чтобы развернуть панель помощника.
Найдите
vault
и выберите задачу Azure Key Vault.
Параметр "Сделать секреты доступными для всего задания " в настоящее время не поддерживается в Azure DevOps Server 2019 и 2020.
Дополнительные сведения о задаче Azure Key Vault см. в статье "Использование секретов Azure Key Vault в Azure Pipelines".
Настройка секретной переменной в сценарии с помощью команд ведения журнала
Для задания переменных в сценариях PowerShell и Bash можно использовать task.setvariable
команду ведения журнала. Этот метод является наименее безопасным способом работы с секретными переменными, но может быть полезным для отладки. Рекомендуемые способы задания секретных переменных находятся в пользовательском интерфейсе, в группе переменных и в группе переменных из Azure Key Vault.
Чтобы задать переменную в качестве скрипта с помощью команды ведения журнала, необходимо передать issecret
флаг.
Если issecret
задано значение true, значение переменной будет сохранено как секрет и замаскировано из журналов.
Примечание.
Azure Pipelines старается маскировать секреты при выводе данных в журналы конвейера, поэтому вы можете увидеть дополнительные переменные и данные, скрытые в выходных данных и журналах, которые не заданы как секреты.
Задайте секретную переменную mySecretVal
.
- bash: |
echo "##vso[task.setvariable variable=mySecretVal;issecret=true]secretvalue"
Получите секретную переменную mySecretVal
.
- bash: |
echo "##vso[task.setvariable variable=mySecretVal;issecret=true]secretvalue"
- bash: |
echo $(mySecretVal)
Вывод секретной переменной в bash.
Дополнительные сведения о настройке и использовании переменных в скриптах.