Использование секретов Azure Key Vault в Azure Pipelines
Azure DevOps Services | Azure DevOps Server 2022 г. - Azure DevOps Server 2019 г.
Azure Key Vault позволяет разработчикам безопасно хранить секреты, такие как ключи API, учетные данные или сертификаты, и управлять ими. Служба azure Key Vault поддерживает два типа контейнеров: хранилища и управляемые пулы HSM (аппаратный модуль безопасности). Хранилища поддерживают хранение программного обеспечения и ключей, секретов и сертификатов на основе HSM, а управляемые пулы HSM поддерживают только ключи на основе HSM.
В этом учебнике рассматривается следующее.
- Создание Key Vault Azure с помощью Azure CLI
- Добавление секрета и настройка доступа к хранилищу ключей Azure
- Использование секретов в конвейере
Предварительные требования
- Организация Azure DevOps. Если у вас нет такой учетной записи, вы можете создать ее бесплатно.
- Подписка Azure. Создайте бесплатную учетную запись Azure, если у вас ее еще нет.
создать Azure Key Vault;
Войдите на портал Azure и нажмите кнопку Cloud Shell в правом верхнем углу.
Если с вашей учетной записью связано несколько подписок Azure, используйте приведенную ниже команду, чтобы указать подписку по умолчанию. Вы можете использовать для
az account list
создания списка подписок.az account set --subscription <your_subscription_name_or_ID>
Задайте регион Azure по умолчанию. Вы можете использовать для
az account list-locations
создания списка доступных регионов.az config set defaults.location=<your_region>
Например, эта команда выберет регион westus2:
az config set defaults.location=westus2
Создание группы ресурсов Группа ресурсов — это контейнер, содержащий связанные ресурсы для решения Azure.
az group create --name <your-resource-group>
Создайте новое хранилище ключей.
az keyvault create \ --name <your-key-vault> \ --resource-group <your-resource-group>
Создайте секрет в хранилище ключей Azure.
az keyvault secret set \ --name "Password" \ --value "mysecretpassword" \ --vault-name <your-key-vault-name>
Создание проекта
Войдите в организацию Azure DevOps.
Если в вашей организации еще нет проектов, выберите Создать проект, чтобы приступить к работе. В противном случае выберите Новый проект в правом верхнем углу.
Создание репозитория
Мы будем использовать YAML для создания конвейера, но сначала нам нужно создать новый репозиторий.
Войдите в свою организацию Azure DevOps и откройте нужный проект.
Выберите Репозитории, а затем выберите Инициализировать , чтобы инициализировать новый репозиторий с помощью файла сведений.
Создание конвейера
Выберите Конвейеры, а затем — Создать конвейер.
Выберите Azure Repos Git (YAML).
Выберите репозиторий, созданный на предыдущем шаге.
Выберите шаблон начального конвейера .
Конвейер по умолчанию будет включать несколько скриптов, выполняющих команды echo. Они не нужны, чтобы мы могли их удалить. Новый файл YAML должен выглядеть следующим образом:
trigger: - main pool: vmImage: 'ubuntu-latest' steps:
Выберите Показать помощник, чтобы развернуть панель помощник. Эта панель предоставляет удобный и доступный для поиска список задач конвейера.
Найдите хранилище и выберите задачу Azure Key Vault.
Выберите подписку Azure , а затем щелкните Авторизовать. Выберите хранилище ключей в раскрывающемся меню, а затем выберите Добавить , чтобы добавить задачу в конвейер YAML.
Примечание
Функция Сделать секреты доступными для всего задания не поддерживается в Azure DevOps Server 2019 и 2020 годах.
Файл YAML должен выглядеть следующим образом:
trigger: - main pool: vmImage: ubuntu-latest steps: - task: AzureKeyVault@2 inputs: azureSubscription: 'Your-Azure-Subscription' KeyVaultName: 'Your-Key-Vault-Name' SecretsFilter: '*' RunAsPreJob: false - task: CmdLine@2 inputs: script: 'echo $(Your-Secret-Name) > secret.txt' - task: CopyFiles@2 inputs: Contents: secret.txt targetFolder: '$(Build.ArtifactStagingDirectory)' - task: PublishBuildArtifacts@1 inputs: PathtoPublish: '$(Build.ArtifactStagingDirectory)' ArtifactName: 'drop' publishLocation: 'Container'
Пока не сохраняйте и не помещайте конвейер в очередь. Сначала необходимо предоставить конвейеру необходимые разрешения для доступа к azure Key Vault. Не закрывайте вкладку браузера. После настройки разрешений хранилища ключей мы возобновим оставшиеся действия.
Настройка политик доступа azure Key Vault
Чтобы получить доступ к нашим Key Vault Azure, необходимо сначала настроить субъект-службу, чтобы предоставить доступ к Azure Pipelines. Выполните инструкции из этого руководства , чтобы создать субъект-службу, а затем перейти к следующим шагам, описанным в этом разделе.
Перейдите на портал Azure.
Используйте строку поиска для поиска созданного ранее хранилища ключей.
В разделе Параметры выберите Политики доступа.
Выберите Добавить политику доступа , чтобы добавить новую политику.
Для параметра Разрешения секрета выберите Получить и получить список.
Выберите субъект-службу и найдите субъект-службу, созданный в начале этого раздела. Субъект безопасности — это объект, представляющий пользователя, группу, службу или приложение, которые запрашивают доступ к ресурсам Azure.
Нажмите кнопку Добавить , чтобы создать политику доступа, а затем нажмите кнопку Сохранить , когда все будет готово.
Примечание
Azure Key Vault, использующие управление доступом на основе ролей Azure (Azure RBAC), не поддерживаются.
Запуск и проверка конвейера
Вернитесь на предыдущую вкладку, где мы выехали.
Выберите Сохранить, а затем еще раз нажмите кнопку Сохранить , чтобы зафиксировать изменения и активировать конвейер. Вам может быть предложено разрешить конвейеру доступ к ресурсам Azure, если появится соответствующий запрос, выберите Разрешить. Вам потребуется утвердить конвейер только один раз.
Выберите задачу CmdLine , чтобы просмотреть журналы.
Вернитесь к сводке конвейера и выберите опубликованный артефакт.
Выберите артефактsecret.txt , чтобы открыть его.
Текстовый файл должен содержать секрет mysecretpassword.
Предупреждение
Это руководство предназначено только для образовательных целей. Рекомендации по обеспечению безопасности и безопасной работе с секретами см. в статье Управление секретами в серверных приложениях с помощью Azure Key Vault.
Очистка ресурсов
Чтобы удалить созданные ресурсы, выполните следующие действия.
Если вы создали новую организацию для размещения проекта, см. статью Удаление организации, в противном случае — удаление проекта.
Все ресурсы Azure, созданные в рамках этого руководства, размещаются в одной группе ресурсов PipelinesKeyVaultResourceGroup. Выполните следующую команду, чтобы удалить группу ресурсов и все ее ресурсы.
az group delete --name PipelinesKeyVaultResourceGroup
Вопросы и ответы
Вопрос. Я получаю следующую ошибку: "У пользователя или группы нет разрешения на список секретов", что мне делать?
О. Если возникает ошибка, указывающая, что у пользователя или группы нет разрешения на список секретов в хранилище ключей, выполните следующие команды, чтобы авторизовать приложение для доступа к ключу или секрету в Key Vault Azure:
$ErrorActionPreference="Stop";
$Credential = Get-Credential;
Connect-AzAccount -SubscriptionId <YOUR_SUBSCRIPTION_ID> -Credential $Credential;
$spn=(Get-AzureRmADServicePrincipal -SPN <YOUR_SERVICE_PRINCIPAL_ID>);
$spnObjectId=$spn.Id;
Set-AzureRmKeyVaultAccessPolicy -VaultName key-vault-tutorial -ObjectId $spnObjectId -PermissionsToSecrets get,list;
Дальнейшие действия
Кері байланыс
https://aka.ms/ContentUserFeedback.
Жақында қолжетімді болады: 2024 жыл бойы біз GitHub Issues жүйесін мазмұнға арналған кері байланыс механизмі ретінде біртіндеп қолданыстан шығарамыз және оны жаңа кері байланыс жүйесімен ауыстырамыз. Қосымша ақпаратты мұнда қараңыз:Жіберу және пікірді көру