AzureKeyVault@2 — задача Azure Key Vault версии 2
Используйте эту задачу для скачивания секретов, таких как ключи проверки подлинности, ключи учетной записи хранения, ключи шифрования данных, . 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, или создайте новое подключение. Подробнее.
KeyVaultName
- Хранилище ключей
string
. Обязательный.
Имя Key Vault Azure, содержащего скачивать секреты.
SecretsFilter
- Фильтр секретов
string
. Обязательный. Значение по умолчанию: *
.
Скачивает имена секретов в соответствии с введенным значением. Значением может быть значение по умолчанию для скачивания всех секретов из выбранного хранилища ключей или разделенный запятыми список имен секретов.
RunAsPreJob
- Сделать секреты доступными для всего задания
boolean
. Значение по умолчанию: false
.
Выполняет задачу до начала выполнения задания. Предоставляет секреты всем задачам в задании, а не только задачам, которые следуют за этим.
Параметры управления задачами
Все задачи имеют параметры управления в дополнение к входным данным задачи. Дополнительные сведения см. в разделе Параметры управления и общие свойства задачи.
Выходные переменные
Нет.
Remarks
Новые возможности версии 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-AzureKeyVaultSecret. Если секрет не существует, этот командлет создает его. Если секрет уже существует, этот командлет создает новую версию этого секрета.
Использование Azure CLI. Чтобы добавить секрет в хранилище ключей, например секрет с именем SQLPassword со значением PlaceholderPassword, введите:
az keyvault secret set --vault-name 'ContosoKeyVault' --name 'SQLPassword' --value 'PlaceholderPassword'
Если вы хотите получить доступ к секретам:
Убедитесь, что подключение к службе Azure имеет по крайней мере разрешения На получение и перечисление в хранилище. Эти разрешения можно задать в портал Azure:
- Откройте колонку Параметры хранилища, выберите Политики доступа, а затем — Добавить.
- В колонке Добавление политики доступа выберите Выбрать субъект и выберите субъект-службу для учетной записи клиента.
- В колонке Добавление политики доступа выберите Разрешения секрета и убедитесь, что установлен флажок Получить и Список .
- Нажмите кнопку ОК , чтобы сохранить изменения.
Примечание
Если вы используете размещенный агент Майкрософт, необходимо добавить диапазон IP-адресов этого агента в брандмауэр. Еженедельный список диапазонов IP-адресов доступен в файле JSON, который публикуется каждую среду. Новые диапазоны IP-адресов вступают в силу со следующего понедельника. Дополнительные сведения см. в разделе Агенты, размещенные на сервере Майкрософт. Чтобы найти диапазоны IP-адресов, которые необходимы вашей организации Azure DevOps, узнайте, как определить возможные диапазоны IP-адресов для агентов, размещенных на сервере Майкрософт.
Примечание
Значения извлекаются в виде строк. Например, если есть секрет с именем 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.
Требования
Требование | Описание |
---|---|
Типы конвейеров | YAML, классическая сборка, классический выпуск |
Выполняется в | Агент, DeploymentGroup |
Требования | Нет |
Capabilities | Эта задача не удовлетворяет требованиям для последующих задач в задании. |
Ограничения команд | Любой |
Устанавливаемые переменные | Любой |
Версия агента | 2.182.1 или более поздней версии |
Категория задач | Развертывание |