Использование секретов Azure Key Vault в конвейере
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
С помощью Azure Key Vault вы можете безопасно хранить конфиденциальные данные и управлять ими, такими как пароли, ключи API, сертификаты и т. д. с помощью Azure Key Vault можно легко создавать ключи шифрования и управлять ими для шифрования данных. Azure Key Vault также можно использовать для управления сертификатами для всех ресурсов. В этой статье вы узнаете, как выполнять следующие задачи.
- Создайте хранилище Azure Key Vault.
- Настройте разрешения Key Vault.
- Создайте подключение к службе.
- Запрос секретов из Azure Pipeline.
Необходимые компоненты
- Организация Azure DevOps. Создайте его бесплатно, если у вас еще нет.
- Собственный проект. Создайте проект, если у вас еще нет этого проекта .
- Собственный репозиторий. Создайте репозиторий Git, если у вас еще нет репозитория Git .
- Подписка Azure. Создайте бесплатную учетную запись Azure, если у вас еще нет учетной записи .
Создайте хранилище ключей.
Войдите в портал Azure и нажмите кнопку "Создать ресурс".
В разделе Key Vault выберите "Создать", чтобы создать azure Key Vault.
Выберите свою подписку в раскрывающемся меню, а затем выберите существующую группу ресурсов или создайте новую. Введите имя хранилища ключей, выберите регион, выберите ценовую категорию и нажмите кнопку "Далее", если требуется настроить дополнительные свойства. В противном случае нажмите кнопку "Проверить и создать ", чтобы сохранить параметры по умолчанию.
По завершении развертывания выберите элемент Перейти к ресурсу.
Настройка проверки подлинности
Создание управляемого удостоверения, назначаемого пользователем
Войдите в портал Azure, а затем найдите службу управляемых удостоверений в строке поиска.
Выберите "Создать" и заполните обязательные поля следующим образом:
- Подписка: выберите подписку в раскрывающемся меню.
- Группа ресурсов: выберите существующую группу ресурсов или создайте новую.
- Регион: выберите регион в раскрывающемся меню.
- Имя. Введите имя управляемого удостоверения, назначаемого пользователем.
Нажмите кнопку "Рецензирование" и "Создать " после завершения.
После завершения развертывания выберите "Перейти к ресурсу", а затем скопируйте значения подписки и идентификатора клиента, которые будут использоваться в предстоящих шагах.
Перейдите к свойствам> параметров и скопируйте значение идентификатора клиента управляемого удостоверения для последующего использования.
Настройка политик доступа к хранилищу ключей
Перейдите к портал Azure и используйте строку поиска, чтобы найти созданное ранее хранилище ключей.
Выберите политики access, а затем нажмите кнопку "Создать ", чтобы добавить новую политику.
В разделе "Разрешения секрета" установите флажки "Получить " и "Список ".
Нажмите кнопку "Далее", а затем вставьте идентификатор клиента управляемого удостоверения, созданного ранее, в строку поиска. Выберите управляемое удостоверение.
Нажмите кнопку "Далее", а затем еще раз.
Просмотрите новые политики и нажмите кнопку "Создать " после завершения.
Создание подключения службы
Войдите в организацию Azure DevOps и перейдите к проекту.
Выберите "Параметры> службы проекта" и выберите "Создать подключение службы", чтобы создать новое подключение к службе.
Выберите Azure Resource Manager, а затем нажмите кнопку "Далее".
Для типа удостоверения выберите управляемое удостоверение в раскрывающемся меню.
Для шага 1. Сведения об управляемом удостоверении заполните поля следующим образом:
Подписка для управляемого удостоверения: выберите подписку, содержащую управляемое удостоверение.
Группа ресурсов для управляемого удостоверения: выберите группу ресурсов, на котором размещено управляемое удостоверение.
Управляемое удостоверение: выберите управляемое удостоверение в раскрывающемся меню.
Для шага 2. Область Azure заполните поля следующим образом:
Уровень области подключения к службе: выбор подписки.
Подписка на подключение к службе: выберите подписку, к которым будет обращаться управляемое удостоверение.
Группа ресурсов для подключения к службе: (необязательно) Укажите, чтобы ограничить доступ к управляемому удостоверению одной группе ресурсов.
Для шага 3. Сведения о подключении к службе:
Имя подключения службы: укажите имя подключения к службе.
Справочник по управлению службами: (необязательно) сведения о контексте из базы данных ITSM.
Описание: (необязательно) Добавьте описание.
В разделе "Безопасность" установите флажок "Предоставить доступ ко всем конвейерам ", чтобы разрешить всем конвейерам использовать это подключение к службе. Если этот параметр не выбран, необходимо вручную предоставить доступ к каждому конвейеру, использующего это подключение к службе.
Нажмите кнопку "Сохранить", чтобы проверить и создать подключение к службе.
Запрос и использование секретов в конвейере
С помощью задачи Azure Key Vault мы можем получить значение секрета и использовать его в последующих задачах в нашем конвейере. Важно учитывать, что секреты должны быть явно сопоставлены с переменной env, как показано в приведенном ниже примере.
pool:
vmImage: 'ubuntu-latest'
steps:
- task: AzureKeyVault@1
inputs:
azureSubscription: 'SERVICE_CONNECTION_NAME'
KeyVaultName: 'KEY_VAULT_NAME'
SecretsFilter: '*'
- bash: |
echo "Secret Found! $MY_MAPPED_ENV_VAR"
env:
MY_MAPPED_ENV_VAR: $(SECRET_NAME)
Выходные данные последней команды Bash должны выглядеть следующим образом:
Secret Found! ***
Примечание.
Если вы хотите запросить несколько секретов из Azure Key Vault, используйте SecretsFilter
аргумент для передачи разделенного запятыми списка имен секретов: secret1, secret2.