Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Интерфейс командной строки разработчика Azure (azd) поддерживает ссылки на секреты из Azure Key Vault в среде проекта (.env файл). Это обеспечивает безопасный способ работы с конфиденциальными данными в проектах azd . Эти секреты интегрируются с различными azd функциями, такими как хуки и конфигурации конвейера CI/CD.
Необходимые условия
- Azure Developer CLI установлен.
- Экземпляр Azure Key Vault, к которому у вас есть доступ или разрешение на создание.
Установить секрет в Key Vault
Чтобы установить секрет Key Vault, выполните команду azd env set-secret <name>, где <name> — это ключ в среде, ссылающейся на секрет Key Vault. После задания секрета azd автоматически извлекает значение из Key Vault в следующих сценариях.
Параметры Bicep
Чтобы связать параметр Bicep со значением секрета Azure Key Vault, выполните следующие действия:
- Аннотируйте параметр Bicep в качестве защищенного, используя ключевое слово
@secure(). - Создайте сопоставление в
main.parameters.jsonфайле так, чтобы параметр Bicep был связан с соответствующим именем ключа в среде, ссылающейся на секрет Azure Key Vault.
Замечание
Секреты среды в настоящее время не поддерживаются при использовании файлов параметров Bicep (.bicepparam).
Пример
azd В проекте запустите azd env set-secret MY_SECRET и следуйте инструкциям, чтобы выбрать существующий секрет Azure Key Vault или создать новый. После завершения команды ключ MY_SECRET содержит ссылку на секрет Key Vault. Добавьте или выберите параметр Bicep, значение которого вы хотите использовать, и отметьте его как защищенный.
@secure()
param secureParameter string
Создайте сопоставление в main.parameters.json файле:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"secureParameter": {
"value": "${MY_SECRET}"
}
}
}
При следующем запуске azd up или azd provision, azd использует секрет Azure Key Vault в качестве значения для вашего параметра.
Хуки
azd может автоматически извлекать секреты Azure Key Vault при запуске перехватчика. Когда azd запускает перехватчик, по умолчанию все пары "ключ-значение" из среды проекта (.env файл) устанавливаются в окружение перехватчика. Однако ссылки на секреты Key Vault не преобразуются автоматически в соответствующие значения.
Чтобы устранить эти ссылки, выполните следующие действия.
- Создайте сопоставление из ключа в среде с новым ключом, где раскрывается секрет из Key Vault.
- Используйте поле
secretsв определении перехватчика для создания этого сопоставления.
Пример
azd В проекте запустите azd env set-secret MY_SECRET и следуйте инструкциям, чтобы выбрать существующий секрет Azure Key Vault или создать новый. После завершения команды ключ MY_SECRET ссылается на секрет Key Vault. Создайте определение хука, соответствующее вашей операционной системе.
hooks:
preprovision:
run: 'echo ".env value: $MY_SECRET \nResolved secret: $SECRET_RESOLVE"'
shell: sh
interactive: true
secrets:
SECRET_RESOLVE: MY_SECRET
При следующем запуске azd provision запускается перехватчик preprovision, который разрешает MY_SECRET в SECRET_RESOLVE.
Конфигурация конвейера
azd упрощает процесс настройки непрерывной интеграции (CI) для приложения. Независимо от того, используете ли вы GitHub или Azure DevOps, выполните azd pipeline config и выполните инструкции по настройке CI/CD.
В рамках автоматической настройки azd создаются секреты и переменные для рабочего процесса развертывания CI/CD. Вы также можете определить собственные переменные и секреты с помощью pipeline конфигурации azure.yaml. Имена, которые вы определяете, соответствуют ключам в вашей azd среде (.env). Если ключ содержит ссылку на секрет (akvs), azd применяет другое поведение в зависимости от того, добавляете ли он в качестве переменной или секрета:
| Подход | Хранимое значение CI/CD | Обновление секретных ключей | лучше всего подходит для |
|---|---|---|---|
variables |
Ссылка на Key Vault (akvs://...) |
Автоматически — конвейер всегда считывает последнее значение из Key Vault. | Когда учетная запись службы CI/CD имеет доступ на чтение к Key Vault. |
secrets |
Фактическое значение секрета | Ручное — перезапустите azd pipeline config после поворота. |
Если вы не можете назначить доступ на чтение к "Key Vault" для служебного принципала. |
Замечание
При использовании variables, azd пытается назначить роль доступа для чтения служебному принципалу, который используется рабочим процессом CI/CD. Если у вас нет достаточных разрешений для назначения роли чтения для Хранилища ключей, операция не удается. Вместо этого используйте secrets.
Пример
В инициализированном azd проекте запустите azd env set-secret SECURE_KEY и следуйте инструкциям. После завершения azd env get-values команды отобразится ссылка:
SECURE_KEY="akvs://faa080af-c1d8-40ad-9cce-000000000000/vivazqu-kv/SECURE-KEY-kv-secret"
Добавьте SECURE_KEY либо в список variables, либо в список secrets в azure.yaml:
# yaml-language-server: $schema=https://raw.githubusercontent.com/Azure/azure-dev/main/schemas/v1.0/azure.yaml.json
name: your-project-name
pipeline:
variables:
- SECURE_KEY
При запуске azd pipeline configSECURE_KEY устанавливается в качестве переменной CI/CD, а в качестве его значения используется ссылка на Key Vault. Если SECURE_KEY также сопоставляется с входным параметром Bicep или определением хука, azd автоматически разрешается секретное значение в ходе выполнения.