Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Используйте эту задачу для скачивания секретов, таких как ключи проверки подлинности, ключи учетной записи хранения, ключи шифрования данных, . PFX-файлы и пароли из экземпляра Azure Key Vault. Задачу можно использовать для получения последних значений всех или подмножества секретов из хранилища и задания их в качестве переменных, которые можно использовать в последующих задачах конвейера. Задача основана на узлах и работает с агентами в Linux, macOS и Windows.
Синтаксис
# Azure Key Vault v2
# Download Azure Key Vault secrets.
- task: AzureKeyVault@2
inputs:
azureSubscription: # string. Alias: ConnectedServiceName. Required. Azure subscription.
KeyVaultName: # string. Required. Key vault.
SecretsFilter: '*' # string. Required. Secrets filter. Default: *.
#RunAsPreJob: false # boolean. Make secrets available to whole job. Default: false.
Входы
azureSubscription
-
подписке Azure
Псевдоним ввода: ConnectedServiceName.
string. Обязательно.
Выберите подключение службы для подписки Azure, содержащей экземпляр Azure Key Vault, или создайте новое подключение. Дополнительные сведения.
хранилища ключей
string. Обязательно.
Имя Azure Key Vault, содержащего секреты для скачивания.
фильтр секретов SecretsFilter -
string. Обязательно. Значение по умолчанию: *.
Загружает имена секретов в соответствии с введенным значением. Это значение может быть значением по умолчанию, чтобы скачать все секреты из выбранного хранилища ключей или список имен секретов, разделенных запятыми.
RunAsPreJob
-
Сделать секреты доступными для всего задания
boolean. Значение по умолчанию: false.
Выполняет задачу перед началом выполнения задания. Предоставляет секреты всем задачам в задании, а не только задачам, которые следуют этому.
Параметры управления задачами
Все задачи имеют параметры управления в дополнение к входным данным задачи. Дополнительные сведения см. в разделе Параметры управления и общие свойства задач.
Выходные переменные
Никакой.
Замечания
Новые возможности версии 2.0: добавлена поддержка %3B, %5D в секретах.
Используйте эту задачу для скачивания секретов, таких как ключи проверки подлинности, ключи учетной записи хранения, ключи шифрования данных, . PFX-файлы и пароли из экземпляра Azure Key Vault. Задачу можно использовать для получения последних значений всех или подмножества секретов из хранилища и задания их в качестве переменных, которые можно использовать в последующих задачах конвейера. Задача основана на узлах и работает с агентами в Linux, macOS и Windows.
Я получаю ошибку forbidden на конвейерах в точке получения учетных данных из Azure Key Vault
Это происходит, если необходимые разрешения отсутствуют в хранилище ключей Azure. Чтобы устранить проблему, добавить политику доступа с правильными разрешениями.
Необходимые условия
Задача имеет следующие предварительные требования:
- Подписка Azure, связанная с Azure Pipelines или Team Foundation Server, с помощью подключения службы Azure Resource Manager.
- Azure Key Vault с секретами.
Вы можете создать хранилище ключей:
- На портале Azure
- Использование Azure PowerShell
- С помощью Azure CLI
Добавьте секреты в хранилище ключей:
С помощью командлета PowerShell Set-AzKeyVaultSecret. Если секрет не существует, этот командлет создает его. Если секрет уже существует, этот командлет создает новую версию этого секрета.
С помощью Azure CLI. Чтобы добавить секрет в хранилище ключей, например секрет с именем SQLPassword со значением PlaceholderPassword, введите:
az keyvault secret set --vault-name 'ContosoKeyVault' --name 'SQLPassword' --value 'PlaceholderPassword'
Если вы хотите получить доступ к секретам:
Убедитесь, что подключение службы Azure имеет по крайней мере получение и разрешения list в хранилище. Эти разрешения можно задать на портале Azure :
- Откройте колонку параметров
для хранилища, выберите политики доступа , а затемДобавить новые . - В колонке Добавление политики доступа выберите Выберите субъект-субъект и выберите субъект-службу для учетной записи клиента.
- В колонке
Добавление политики доступа выберите разрешения секретаи убедитесь, что получить исписок установлен (галочку). - Нажмите кнопку ОК, чтобы сохранить изменения.
- Откройте колонку параметров
Заметка
Если вы используете агент, размещенный корпорацией Майкрософт, необходимо добавить диапазон IP-адресов размещенного корпорацией Майкрософт агента в брандмауэр. Получите еженедельный список диапазонов IP-адресов из еженедельного JSON-файла
Заметка
Значения извлекаются в виде строк. Например, если существует секрет с именем connectionString, создается переменная задачи connectionString с последним значением соответствующего секрета, полученного из хранилища ключей Azure. Эта переменная будет доступна в последующих задачах.
Если значение, полученное из хранилища, является сертификатом (например, PFX-файлом), переменная задачи будет содержать содержимое PFX в строковом формате. Для получения PFX-файла из переменной задачи можно использовать следующий код PowerShell:
$kvSecretBytes = [System.Convert]::FromBase64String("$(PfxSecret)")
$certCollection = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2Collection
$certCollection.Import($kvSecretBytes,$null,[System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable)
Если файл сертификата будет храниться локально на компьютере, рекомендуется зашифровать его паролем:
#Get the file created
$password = 'your password'
$protectedCertificateBytes = $certCollection.Export([System.Security.Cryptography.X509Certificates.X509ContentType]::Pkcs12, $password)
$pfxPath = [Environment]::GetFolderPath("Desktop") + "\MyCert.pfx"
[System.IO.File]::WriteAllBytes($pfxPath, $protectedCertificateBytes)
Дополнительные сведения см. в статье Начало работы с сертификатами Azure Key Vault.
Примеры
краткое руководство по . Использование секретов из Azure Key Vault (классическая версия или YAML)
Руководство по . Использование секретов Azure Key Vault в конвейере YAML
Требования
| Требование | Описание |
|---|---|
| Типы конвейеров | YAML, классическая сборка, классический выпуск |
| Выполняется в | Агент, DeploymentGroup |
| требования | Никакой |
| возможностей |
Эта задача не удовлетворяет требованиям к последующим задачам в задании. |
| ограничения команд | Любой |
| переменные settable | Любой |
| Версия агента | 2.182.1 или более поздней версии |
| Категория задач | Развертывать |