Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Сервисы Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022
Azure Key Vault — это облачная служба, которая помогает разработчикам безопасно хранить конфиденциальные сведения и управлять ими, такими как ключи API, учетные данные и сертификаты. Служба Azure Key Vault поддерживает два типа контейнеров: хранилища и управляемые пулы HSM (аппаратный модуль безопасности). Хранилища могут хранить как ключи, секреты и сертификаты с поддержкой программного обеспечения, так и ключи, защищенные HSM, в то время как управляемые пулы HSM поддерживают исключительно ключи, защищенные HSM.
В этой статье вы узнаете, как создать Azure Key Vault, добавить секрет, настроить политики доступа и использовать этот секрет в Azure Pipelines. В этом руководстве используется хранилище ключей с доступом к общедоступной сети. Если вам нужно получить доступ к хранилищу закрытых ключей в конвейере, см. раздел "Доступ к хранилищу закрытых ключей". Сведения о связывании секретов Azure Key Vault с группами переменных см. в статье "Связывание группы переменных с секретами в Azure Key Vault".
Предварительные условия
| Категория | Требования |
|---|---|
| Azure DevOps | — организация Azure DevOps. — проект Azure DevOps. |
| Azure | Подписка Azure. |
Получение кода
Если у вас нет собственного проекта, импортируйте следующий пример репозитория в репозиторий Azure.
Войдите в организацию Azure DevOps, а затем перейдите к проекту.
Выберите Repos, а затем нажмите кнопку "Импорт". Введите следующий URL-адрес репозитория, а затем нажмите кнопку "Импорт".
https://github.com/MicrosoftDocs/pipelines-dotnet-core
создать Azure Key Vault;
Выполните следующие действия, чтобы создать Azure Key Vault в Azure с помощью Azure CLI:
Перейдите на портал Azure и выберите Cloud Shell в правом верхнем углу.
Если ваша учетная запись связана с несколькими подписками Azure, задайте подписку по умолчанию:
az account set --subscription <YOUR_SUBSCRIPTION_NAME_OR_ID>Задайте регион Azure по умолчанию. Чтобы просмотреть список доступных регионов, выполните команду
az account list-locations.az config set defaults.location=<YOUR_REGION>Создание группы ресурсов
az group create --name <YOUR_RESOURCE_GROUP_NAME>Создайте новый хранилище ключей в Azure.
az keyvault create \ --name <YOUR_KEY_VAULT_NAME> \ --resource-group <YOUR_RESOURCE_GROUP_NAME>Добавьте секрет в Azure Key Vault:
az keyvault secret set \ --name <YOUR_SECRET_NAME> \ --value <YOUR_ACTUAL_SECRET> \ --vault-name <YOUR_KEY_VAULT_NAME>
Настройка проверки подлинности
Теперь, когда вы создали Azure Key Vault, необходимо настроить проверку подлинности. Выберите Управляемое удостоверение или Служебный принципал и следуйте инструкциям по настройке аутентификации.
Создание управляемой идентичности, назначенной пользователем
Перейдите на портал Azure, а затем найдите Управляемые Удостоверения в строке поиска.
Выберите "Создать" и укажите следующие сведения:
- Подписка. Выберите подписку Azure в раскрывающемся меню.
- Группа ресурсов: выберите существующую группу ресурсов или создайте новую.
- Регион: выберите регион, в котором будет создано управляемое удостоверение.
- Имя: Введите имя управляемой идентичности, назначенной пользователем.
Выберите "Просмотр и создание", а затем нажмите кнопку "Создать ", чтобы начать развертывание.
После завершения развертывания выберите "Перейти к ресурсу" и скопируйте значения идентификатора подписки и идентификатора клиента . Эти значения потребуются в последующих шагах.
В разделе "Параметры" выберите "Свойства и скопируйте значение идентификатора арендатора вашего управляемого удостоверения для последующего использования.
Настройка политик доступа к хранилищу ключей
Перейдите на портал Azure и используйте панель поиска, чтобы найти хранилище ключей Azure, созданное ранее.
Выберите политики доступа, затем выберите Создать, чтобы добавить новую политику.
В разделе "Разрешения секрета" установите флажки "Получить" и "Список".
Нажмите кнопку "Далее", вставьте идентификатор клиента управляемого удостоверения, созданного ранее, в строку поиска, а затем выберите управляемое удостоверение.
Нажмите кнопку "Далее", а затем еще раз.
Просмотрите сведения о политике доступа и нажмите кнопку "Создать ", чтобы применить политику.
Создание подключения службы
Войдите в Azure DevOps, а затем перейдите к проекту.
Выберите параметры проекта>подключения службы, а затем выберите Создать подключение службы.
Выберите Azure Resource Manager, а затем нажмите кнопку "Далее".
Для Типа удостоверения выберите Управляемое удостоверение.
В разделе "Шаг 1. Сведения об управляемом удостоверении" укажите следующие сведения:
Подписка для управляемого удостоверения: выберите подписку, содержащую управляемое удостоверение.
Группа ресурсов для управляемой идентичности: выберите группу ресурсов, в которой размещено ваше управляемое удостоверение.
Управляемое удостоверение: Выберите ваше управляемое удостоверение из раскрывающегося списка.
Для шага 2. Область Azure укажите следующие сведения:
Уровень области подключения к службе: выбор подписки.
Подписка на подключение к службе: выберите подписку, к которой будет доступ управляемая идентичность.
Группа ресурсов для подключения к службе: (необязательно) Укажите группу ресурсов, чтобы ограничить доступ управляемого удостоверения к одной группе ресурсов.
На шаге 3. Сведения о подключении к службе приведены ниже.
Имя подключения службы: введите имя подключения к службе.
Справочник по управлению службами: (необязательно) сведения о контексте из базы данных ITSM.
Описание: (необязательно) Введите описание.
В разделе "Безопасность" опция предоставления разрешения на доступ всем пайплайнам позволяет всем пайплайнам использовать это подключение к службе. Этот параметр использовать не рекомендуется. Вместо этого авторизуйте каждый конвейер по отдельности для использования подключения к службе.
Нажмите кнопку "Сохранить", чтобы проверить и создать подключение к службе.
Доступ к секретам хранилища ключей из конвейера
Предупреждение
Это руководство предназначено только для образовательных целей. Рекомендации по безопасности и рекомендации по безопасной работе с секретами см. в статье "Управление секретами" в серверных приложениях с помощью Azure Key Vault.
Войдите в Azure DevOps, а затем перейдите к проекту.
Выберите "Конвейеры", а затем нажмите кнопку "Создать конвейер".
Выберите Azure Repos Git (YAML) и выберите репозиторий.
Выберите шаблон Starter pipeline конвейера.
Поток по умолчанию включает примеры команд echo. Они не нужны и могут быть удалены.
Добавьте задачу Azure Key Vault в конвейер. Замените заполнители именем подключения к службе, которое вы создали ранее, и именем вашего Key Vault. Файл YAML должен выглядеть примерно так:
trigger: - main pool: vmImage: ubuntu-latest steps: - task: AzureKeyVault@2 displayName: Azure Key Vault inputs: azureSubscription: 'SERVICE_CONNECTION_NAME' KeyVaultName: 'KEY_VAULT_NAME' SecretsFilter: '*' RunAsPreJob: falseДобавьте следующие задачи для копирования и публикации секрета. Этот пример предназначен только для демонстрационных целей и не должен использоваться в рабочей среде.
trigger: - main pool: vmImage: ubuntu-latest steps: - task: AzureKeyVault@2 displayName: Azure Key Vault inputs: azureSubscription: 'SERVICE_CONNECTION_NAME' KeyVaultName: 'KEY_VAULT_NAME' SecretsFilter: '*' RunAsPreJob: false - task: CmdLine@2 displayName: Create file inputs: script: 'echo $(SECRET_NAME) > secret.txt' - task: CopyFiles@2 displayName: Copy file inputs: Contents: secret.txt targetFolder: '$(Build.ArtifactStagingDirectory)' - task: PublishBuildArtifacts@1 displayName: Publish Artifact inputs: PathtoPublish: '$(Build.ArtifactStagingDirectory)' ArtifactName: 'drop' publishLocation: 'Container'Нажмите кнопку "Сохранить и запустить", а затем еще раз выберите ее, чтобы зафиксировать изменения и активировать конвейер. Если появится запрос, выберите "Разрешить предоставить доступ конвейера к ресурсам Azure".
После запуска конвейера выберите задачу CmdLine , чтобы просмотреть журналы.
По завершении выполнения конвейера вернитесь к сводке конвейера и выберите опубликованный артефакт.
Выберите перетащите>secret.txt, чтобы скачать файл.
Откройте скачанный текстовый файл. Он должен содержать секрет, полученный из Azure Key Vault.
Очистка ресурсов
Выполните следующие действия, чтобы удалить созданные ресурсы:
Если вы создали новую организацию для размещения проекта, узнайте, как удалить организацию, в противном случае удалите проект.
Все ресурсы Azure, созданные во время этого руководства, размещаются в одной группе ресурсов. Выполните следующую команду, чтобы удалить группу ресурсов и все ее ресурсы.
az group delete --name <YOUR_RESOURCE_GROUP_NAME>
Устранение неполадок
Ошибка: "У пользователя или группы нет разрешения на список секретов":
Эта ошибка возникает, когда служебный принципал или управляемое удостоверение, используемое вашим конвейером, не имеет разрешения на получение списка секретов в Azure Key Vault. Чтобы устранить эту проблему, убедитесь, что удостоверение имеет разрешения Получить и Список для секретов. Выполните следующие команды, чтобы предоставить необходимые разрешения служебному принципалу:
az login
az account set --subscription <YOUR_SUBSCRIPTION_ID>
$spnObjectId = az ad sp show --id <YOUR_SERVICE_PRINCIPAL_ID>
az keyvault set-policy --name <YOUR_KEY_VAULT_NAME> --object-id $spnObjectId --secret-permissions get list