【发布时间】:2021-12-21 13:34:56
【问题描述】:
我有一个类似于Retrieve a secret from keyvault in Bicep and use as input for Synapse Workspace creation的问题
(虽然我没有足够的代表,所以无法继续讨论)
我需要在同一个二头肌部署模板文件中创建 keyvault 和 vm。应使用在 keyvault bicep 模块文件中生成的机密来设置 VM 的本地管理员密码。尽管不要求必须在 keyvault 模块级别创建密钥,但我没有看到任何其他方式来确保部署安全。
这是主要二头肌模板的相关部分:
module kv './modules/keyvault.bicep' = {
name: '${deployment().name}-kv'
scope: rg
params: {
keyvaultName: kvName
createLocalAdmin: true
}
}
resource kvRef 'Microsoft.KeyVault/vaults@2019-09-01' existing = {
name: kvName
scope: rg
}
module vm './modules/vm.bicep' = {
name: '${deployment().name}-vm-${vm.hostShortName}'
scope: rg
params: {
adminPassword: kvRef.getSecret('localadmin')
adminUsername: 'localadmin'
}
dependsOn: [
network
kv
]
}
这里的挑战是,在部署二头肌时出现错误:找不到指定的 KeyVault '
在 ARM 模板中,这可以解决,例如:
"adminPassword": {"Value":{
"reference": {
"keyVault": {
"id":"concat(subscription().Id,'/resourceGroups/',variables('rgName'),'/providers/Microsoft.KeyVault/vaults/',reference('deploy-keyvault').outputs.KeyvaultName.value)]"
},
"secretName": "[variables('localAdminSecretname')]"
}
}
}
有什么方法可以在二头肌中执行与 ARM 示例相同的方法或以任何其他方式解决此问题?
【问题讨论】:
标签: azure-bicep