Использование секретов Azure Key Vault в Azure PipelinesUse Azure Key Vault secrets in Azure Pipelines

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019

Примечание

В этой статье вы узнаете, как работать с хранилищем ключей Azure в конвейере.This article will guide you through working with Azure key vault in your pipeline. Если вы хотите задать секретные переменные или ссылочные группы переменных, см. Дополнительные сведения в разделе Определение переменных .if you want to set secret variables or reference variable groups, see Define variables for more details.

Azure Key Vault позволяет пользователям безопасно хранить конфиденциальные сведения, управлять ими и получать к ним доступ.Azure Key Vault allows users to securely store, manage, and access sensitive information. Секреты могут быть ключами API, учетными данными, сертификатами и т. д.Secrets can be API keys, credentials, certificates, etc.

Служба Azure Key Vault поддерживает контейнеры двух типов: хранилища и управляемые аппаратные пулы модулей безопасности.Azure Key Vault service supports two types of containers: vaults and managed HSM (hardware security module) pools. Хранилища поддерживают хранение ключей, секретов и сертификатов программного обеспечения и АППАРАТных средств, а управляемые пулы HSM поддерживают только ключи HSM.Vaults support storing software and HSM-backed keys, secrets, and certificates, while managed HSM pools only support HSM-backed keys.

В этом учебнике рассматривается следующее.In this tutorial, you will learn how to:

  • Создание Azure Key Vault с помощью Azure CLICreate an Azure Key Vault using Azure CLI
  • Добавление секрета и Настройка доступа к хранилищу ключей AzureAdd a secret and configure access to Azure key vault
  • Использование секретов в конвейереUse secrets in your pipeline

Предварительные требованияPrerequisites

создать Azure Key Vault;Create an Azure Key Vault

Хранилища ключей Azure можно создавать и управлять с помощью портал Azure или Azure CLI.Azure key vaults can be created and managed through the Azure portal or Azure CLI. В этом руководстве мы будем использовать Azure CLI, чтобы создать хранилище ключей Azure.We will use Azure CLI in this tutorial to create our Azure Key vault.

Войдите на портал Azure, а затем нажмите кнопку Cloud Shell в правом верхнем углу.Sign in to the Azure Portal, and then select the Cloud Shell button in the upper-right corner.

  1. Если у вас есть несколько подписок Azure, связанных с учетной записью, используйте приведенную ниже команду, чтобы указать подписку по умолчанию.If you have more than one Azure subscription associated with your account, use the command below to specify a default subscription. az account listДля создания списка подписок можно использовать.You can use az account list to generate a list of your subscriptions.

    az account set --subscription <your_subscription_name_or_ID>
    
  2. Выполните следующую команду, чтобы задать регион Azure по умолчанию.Run the following command to set your default Azure region. az account list-locationsДля создания списка доступных регионов можно использовать.You can use az account list-locations to generate a list of available regions.

    az configure --defaults location=<your_region>
    

    Например, эта команда выберет регион westus2:For example, this command will select the westus2 region:

    az configure --defaults location=westus2
    
  3. Выполните следующую команду, чтобы создать новую группу ресурсов.Run the following command to create a new resource group. Группа ресурсов — это контейнер, содержащий связанные ресурсы для решения Azure.A resource group is a container that holds related resources for an Azure solution.

    az group create --name <your-resource-group>
    
  4. Выполните следующую команду, чтобы создать новое хранилище ключей.Run the following command to create a new key vault.

    az keyvault create \
      --name <your-key-vault> \
      --resource-group <your-resource-group>
    
  5. Выполните следующую команду, чтобы создать новый секрет в хранилище ключей.Run the following command to create a new secret in your key vault. Секреты хранятся в виде пары "ключ-значение".Secrets are stored as a key value pair. В приведенном ниже примере Password является ключом, а мисекретпассворд — значением.In the example below, Password is the key and mysecretpassword is the value.

    az keyvault secret set \
      --name "Password" \
      --value "mysecretpassword" \
      --vault-name <your-key-vault-name>
    

Создание проектаCreate a project

Войдите в Azure pipelines.Sign in to Azure Pipelines. Затем ваш браузер переходит по https://dev.azure.com/your-organization-name адресу и отображает панель мониторинга DevOps для Azure.Your browser will then navigate to https://dev.azure.com/your-organization-name and displays your Azure DevOps dashboard.

Если в вашей организации еще нет проектов, выберите создать проект, чтобы приступить к созданию нового проекта.If you don't have any projects in your organization yet, select Create a project to get started to create a new project. В противном случае нажмите кнопку создать проект в правом верхнем углу панели мониторинга.Otherwise, select the New project button in the upper-right corner of the dashboard.

Создание репозиторияCreate a repo

Мы будем использовать YAML для создания нашего конвейера, но сначала нужно создать новый репозиторий.We will use YAML to create our pipeline but first we need to create a new repo.

  1. Войдите в свою организацию Azure DevOps и откройте нужный проект.Sign in to your Azure DevOps organization and navigate to your project.

  2. Перейдите по адресу репозиториев, а затем выберите инициализировать , чтобы инициализировать новый репозиторий с файлом сведений.Go to Repos, and then select Initialize to initialize a new repo with a README.

    Создание репозитория

Создание конвейераCreate a new pipeline

  1. Перейдите в конвейеры и выберите создать конвейер.Go to Pipelines, and then select New Pipeline.

  2. Выберите Azure Repos Git.Select Azure Repos Git.

    Создание конвейера

  3. Выберите созданный ранее репозиторий.Select the repo you created earlier. Имя должно совпадать с именем проекта Azure DevOps.It should have the same name as your Azure DevOps project.

  4. Выберите начальный конвейер.Select Starter pipeline.

  5. Конвейер по умолчанию будет включать несколько сценариев, выполняющих команды echo.The default pipeline will include a few scripts that run echo commands. Они не нужны, поэтому их можно удалить.Those are not needed so we can delete them. Новый файл YAML теперь будет выглядеть следующим образом:Your new YAML file will now look like this:

    trigger:
    - main
    
    pool:
      vmImage: 'ubuntu-latest'
    
    steps:
    
  6. Выберите команду " отобразить помощник ", чтобы развернуть панель помощника.Select Show assistant to expand the assistant panel. Эта панель предоставляет удобный и поддерживающий поиск список задач конвейера.This panel provides convenient and searchable list of pipeline tasks.

    Отображение помощника по конвейеру

  7. Найдите хранилище и выберите задачу Azure Key Vault .Search for vault and select the Azure Key Vault task.

    Выбор задачи «Azure Key Vault»

  8. Выберите и Авторизуйте подписку Azure, а затем выберите задачу хранилища ключей Azure и нажмите кнопку Добавить , чтобы добавить ее в конвейер.Select and authorize your Azure subscription then select the Azure key vault task and select Add to add it to your pipeline. Эта задача позволяет конвейеру подключаться к Azure Key Vault и получать секреты для использования в качестве переменных конвейера.This task allows the pipeline to connect to your Azure Key Vault and retrieve secrets to use as pipeline variables.

    Примечание

    Функция сделать секреты доступными для всей работы в настоящее время не поддерживается в Azure DevOps Server 2019 и 2020.The Make secrets available to whole job feature is not currently supported in Azure DevOps Server 2019 and 2020.

    Настройка задачи Azure Key Vault

    Совет

    YAML требует определенного расстояния и отступа для работы.YAML requires a specific spacing and indentation to work. Убедитесь, что файл YAML имеет правильный отступ.Make sure your YAML file is indented properly.

  9. Не сохраняйте и не запускайте конвейер еще раз.Do not save or run your pipeline just yet. Сначала необходимо предоставить нашему конвейеру необходимые разрешения для доступа к Azure Key Vault.We must first give our pipeline the right permissions to access Azure Key Vault. Не закрывайте вкладку рабочего браузера. оставшиеся шаги будут возобновлены после настройки разрешений для хранилища ключей.Keep your working browser tab open, we will resume the remaining steps here once we set up the key vault permissions.

Настройка политик доступа Azure Key VaultSet up Azure Key Vault access policies

  1. Перейдите на портал Azure.Go to Azure portal.

  2. Используйте панель поиска, чтобы найти хранилище ключей, созданное ранее.Use the search bar to search for the key vault you created earlier.

    Поиск Azure Key Vault

  3. В разделе Параметры выберите политики доступа.Under Settings Select Access policies.

  4. Выберите Добавить политику доступа , чтобы добавить новую политику.Select Add Access Policy to add a new policy.

  5. В качестве секретных разрешений выберите Get и List.For Secret permissions, select Get and List.

  6. Выберите вариант выбора субъекта-службы и выполните поиск.Select the option to select a service principal and search for yours. Субъект безопасности — это объект, представляющий пользователя, группу, службу или приложение, которые запрашивают доступ к ресурсам Azure.A security principal is an object that represents a user, group, service, or application that's requesting access to Azure resources.

  7. Выберите Добавить , чтобы создать политику доступа, а затем нажмите кнопку сохранить.Select Add to create the access policy, then Save.

Запуск и проверка конвейераRun and review the pipeline

  1. Вернитесь на предыдущую вкладку, на которой мы остановились.Return to the previous tab where we left off.

  2. Выберите сохранить , а затем Сохраните еще раз, чтобы зафиксировать изменения и запустить конвейер.Select Save then Save again to commit your changes and trigger the pipeline.

    Примечание

    Возможно, вам будет предложено разрешить конвейерный доступ к ресурсам Azure, если будет предложено выбрать Разрешить.You may be asked to allow the pipeline access to Azure resources, if prompted select Allow. Вам потребуется только одобрить свой конвейер.You will only have to approve your pipeline once.

  3. Выберите задание cmdline , чтобы просмотреть журналы.Select the CmdLine job to view the logs. Обратите внимание, что фактический секрет не входит в состав журналов.Note that the actual secret is not part of the logs.

    Просмотр задачи командной строки

  4. Вернитесь в сводную сводку по конвейеру и выберите опубликованный артефакт.Return to pipeline summary and select the published artifact.

    Сводка по конвейеру

  5. В разделе Задание выберите файл secret.txt , чтобы открыть его.Under Job select the secret.txt file to open it.

    Просмотр секрета в артефакте

  6. Текстовый файл должен содержать наш секрет: мисекретпассворд ранее.The text file should contain our secret: mysecretpassword from earlier.

Очистка ресурсовClean up resources

Чтобы удалить созданные ресурсы, выполните следующие действия.Follow the steps below to delete the resources you created:

  1. Если вы создали новую организацию для размещения проекта, см. статью Удаление Организации. в противном случае удалите проект.If you created a new organization to host your project, see how to delete your organization, otherwise delete your project.

  2. Все ресурсы Azure, созданные в этом руководстве, размещаются в одной группе ресурсов пипелинескэйваултресаурцеграуп.All Azure resources created during this tutorial are hosted under a single resource group PipelinesKeyVaultResourceGroup. Выполните следующую команду, чтобы удалить группу ресурсов и все ее ресурсы.Run the following command to delete the resource group and all of its resources.

    az group delete --name PipelinesKeyVaultResourceGroup
    

Дальнейшие действияNext steps