azure - 从 CI/CD YAML 引用 Azure Key Vault 机密
问题描述
我们有一个多阶段 YAML 管道,可以对现有的一组 Azure 资源执行 CI/CD
阶段是
- 建造
- 部署到开发和运行测试
- 如果 Previous 成功 - 部署到生产环境并运行测试
我们AzureRmWebAppDeployment
在部署阶段使用该任务,并使用该任务的 AppSettings 参数来指定特定于环境的设置。例如
- task: AzureRmWebAppDeployment@4
displayName: 'Deploy Azure App Service'
inputs:
azureSubscription: '$(azureSubscriptionEndpoint)'
appType: '$(webAppKind)'
WebAppName: 'EXISTING__AZURE_RESOURCENAME-DEV'
Package: '$(Pipeline.Workspace)/**/*.zip'
AppSettings: >
-AzureAd:CallbackPath /signin-oidc
-AzureAd:ClientId [GUID was here]
-AzureAd:Domain [domain was here]
-AzureAd:Instance https://login.microsoftonline.com/
-AzureAd:TenantId [Id was here]
-EmailServer:SMTPPassword SECRETPASSWORD
-EmailServer:SMTPUsername SECRETUSERNAME
该集中有两个设置EmailServer: SMTPUsername
,EmailServer: SMTPPassword
我想从 Azure KeyVault 中提取它们。我知道如何使用语法从 Azure 门户引用 KV 机密
@Microsoft.KeyVault(SecretUri=https://our.vault.azure.net/secrets/SendGridPassword/ReferenceGuidHere)
但是如何引用 YAML 管道中的值以便在 Azure 中设置它?
解决方案
正如 Thomas 在此评论中所指出的,从 CI/CD YAML 引用 Azure Key Vault 机密
我可以像这样在 YAML 文件中显式设置值:
-EmailServer:SMTPPassword @Microsoft.KeyVault(SecretUri=https://our.vault.azure.net/secrets/SendGridPassword/ReferenceGuidHere)
推荐阅读
- react-native - React Native FlatList 中的动态高度调整大小
- python-3.x - 字符串索引超出范围/无效语法
- python - SQL从python列表迭代UPDATE
- rest - Elasticsearch - 在无法识别的 url 中指定参数
- zsh - 如何阻止zsh重印上一条命令
- arrays - 如何在 PowerShell 中处理循环数组?
- powershell - Pester 测试评估 PSCustomObject - 无法
- c# - 标题栏不消失
- python - 使用内置函数和并行化读取大型 (>5GB) 日志文件的最快方法?
- r - 一个函数可以检测它是否已经被输入?