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, или создайте новое подключение. Дополнительные сведения.
хранилища ключей
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 или более поздней версии |
Категория задач | Развертывать |