我尝试将Azure密钥保管库集成添加到我们的ARM部署中,因此我们可以将所有密码保存在Azure Key-Vault中。
我正在关注this以尝试访问我在Azure KeyVault(dSentienceAnalytics)中创建的秘密(adminPassword)。 Here是我的模板
我尝试通过powershell部署此模板,但它要求我输入变量“adminPassword”的值,它应该从Azure密钥保险库中检索。
你看到我在这里失踪了吗?有谁可以帮我这个?
您不能在模板本身中使用KeyVault引用,只能在参数文件中使用。因此,如果您使用KeyVault,您的模板看起来会有所不同,adminPassword参数将被简单地定义为secureString。模板对密码的使用看起来完全如下:
https://github.com/Azure/azure-quickstart-templates/blob/master/101-vm-simple-linux/azuredeploy.json
参数文件是将使用引用的位置。这里的第一个代码示例:
显示参数文件,而不是模板文件的参数对象(它有点令人困惑)。
有关一个非常简单的示例,请参阅KeyVaultUse.json和KeyVaultUse.parameters.json:
https://github.com/rjmax/ArmExamples/tree/master/keyvaultexamples
请注意,KeyVaultUse.json没有任何独特或不同之处,“key”位于参数文件中。
这种帮助?
您可以创建链接模板并将keyvault机密作为参数传递给它。您可以通过某些uri访问Azure链接的模板。
"name": "linked-template",
"type": "Microsoft.Resources/deployments",
"properties": {
"mode": "Incremental",
"templateLink": {
"uri":"<your linked template uri, e.g. a blob-store file with a sas token>"
},
"parameters": {
"password": {
"reference": {
"keyVault": {
"id": "[variables('keyVaultId')]"
},
"secretName": "password"
}
},
您需要密钥保险库的ID,例如在这里,它假设在一个变量中,该变量由顶级模板上的参数构成,其中用户指定了密钥库的资源组和名称:
"deploymentKeyVaultId" : "[resourceid(subscription().subscriptionId,
parameters('keyVaultResourceGroup'), 'Microsoft.KeyVault/vaults',
parameters('keyVaultName'))]",