Поделиться через


Использование секретов 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.

Необходимые компоненты

Создайте хранилище ключей.

  1. Войдите в портал Azure и нажмите кнопку "Создать ресурс".

  2. В разделе Key Vault выберите "Создать", чтобы создать azure Key Vault.

  3. Выберите свою подписку в раскрывающемся меню, а затем выберите существующую группу ресурсов или создайте новую. Введите имя хранилища ключей, выберите регион, выберите ценовую категорию и нажмите кнопку "Далее", если требуется настроить дополнительные свойства. В противном случае нажмите кнопку "Проверить и создать ", чтобы сохранить параметры по умолчанию.

  4. По завершении развертывания выберите элемент Перейти к ресурсу.

Настройка проверки подлинности

Создание управляемого удостоверения, назначаемого пользователем

  1. Войдите в портал Azure, а затем найдите службу управляемых удостоверений в строке поиска.

  2. Выберите "Создать" и заполните обязательные поля следующим образом:

    • Подписка: выберите подписку в раскрывающемся меню.
    • Группа ресурсов: выберите существующую группу ресурсов или создайте новую.
    • Регион: выберите регион в раскрывающемся меню.
    • Имя. Введите имя управляемого удостоверения, назначаемого пользователем.
  3. Нажмите кнопку "Рецензирование" и "Создать " после завершения.

  4. После завершения развертывания выберите "Перейти к ресурсу", а затем скопируйте значения подписки и идентификатора клиента, которые будут использоваться в предстоящих шагах.

  5. Перейдите к свойствам> параметров и скопируйте значение идентификатора клиента управляемого удостоверения для последующего использования.

Настройка политик доступа к хранилищу ключей

  1. Перейдите к портал Azure и используйте строку поиска, чтобы найти созданное ранее хранилище ключей.

  2. Выберите политики access, а затем нажмите кнопку "Создать ", чтобы добавить новую политику.

  3. В разделе "Разрешения секрета" установите флажки "Получить " и "Список ".

  4. Нажмите кнопку "Далее", а затем вставьте идентификатор клиента управляемого удостоверения, созданного ранее, в строку поиска. Выберите управляемое удостоверение.

  5. Нажмите кнопку "Далее", а затем еще раз.

  6. Просмотрите новые политики и нажмите кнопку "Создать " после завершения.

Создание подключения службы

  1. Войдите в организацию Azure DevOps и перейдите к проекту.

  2. Выберите "Параметры> службы проекта" и выберите "Создать подключение службы", чтобы создать новое подключение к службе.

  3. Выберите Azure Resource Manager, а затем нажмите кнопку "Далее".

  4. Для типа удостоверения выберите управляемое удостоверение в раскрывающемся меню.

  5. Для шага 1. Сведения об управляемом удостоверении заполните поля следующим образом:

    • Подписка для управляемого удостоверения: выберите подписку, содержащую управляемое удостоверение.

    • Группа ресурсов для управляемого удостоверения: выберите группу ресурсов, на котором размещено управляемое удостоверение.

    • Управляемое удостоверение: выберите управляемое удостоверение в раскрывающемся меню.

  6. Для шага 2. Область Azure заполните поля следующим образом:

    • Уровень области подключения к службе: выбор подписки.

    • Подписка на подключение к службе: выберите подписку, к которым будет обращаться управляемое удостоверение.

    • Группа ресурсов для подключения к службе: (необязательно) Укажите, чтобы ограничить доступ к управляемому удостоверению одной группе ресурсов.

  7. Для шага 3. Сведения о подключении к службе:

    • Имя подключения службы: укажите имя подключения к службе.

    • Справочник по управлению службами: (необязательно) сведения о контексте из базы данных ITSM.

    • Описание: (необязательно) Добавьте описание.

  8. В разделе "Безопасность" установите флажок "Предоставить доступ ко всем конвейерам ", чтобы разрешить всем конвейерам использовать это подключение к службе. Если этот параметр не выбран, необходимо вручную предоставить доступ к каждому конвейеру, использующего это подключение к службе.

  9. Нажмите кнопку "Сохранить", чтобы проверить и создать подключение к службе.

    Снимок экрана, на котором показано, как создать подключение службы ARM управляемого удостоверения.

Запрос и использование секретов в конвейере

С помощью задачи 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.