从ARM模板访问Azure密钥保险库
我试图将Azure key vault与我们的ARM部署进行集成,以便我们可以在Azure key vault中保留所有密码 我跟随尝试访问我在Azure KeyVault(dSentienceAnalytics)中创建的机密(adminPassword)。这是我的模板 我试图通过Powershell部署此模板,但它要求我输入变量“adminPassword”的值,它应该从Azure密钥库检索该变量从ARM模板访问Azure密钥保险库,azure,automation,azure-keyvault,azure-resource-manager,Azure,Automation,Azure Keyvault,Azure Resource Manager,我试图将Azure key vault与我们的ARM部署进行集成,以便我们可以在Azure key vault中保留所有密码 我跟随尝试访问我在Azure KeyVault(dSentienceAnalytics)中创建的机密(adminPassword)。这是我的模板 我试图通过Powershell部署此模板,但它要求我输入变量“adminPassword”的值,它应该从Azure密钥库检索该变量 您看到我在这里缺少什么了吗?您不能在模板本身中使用KeyVault引用,只能在参数文件中使用。因
您看到我在这里缺少什么了吗?您不能在模板本身中使用KeyVault引用,只能在参数文件中使用。因此,如果使用KeyVault,模板的外观不会有任何不同,adminPassword参数将简单地定义为secureString。模板对密码的使用可以如下所示: 参数文件是使用引用的位置。这里的第一个代码示例: 显示的是参数文件,而不是模板文件的参数对象(有点混乱) 有关一个非常简单的示例,请参见此处的KeyVaultUse.json和KeyVaultUse.parameters.json: 请注意,KeyVaultUse.json没有什么独特或不同之处,“key”在参数文件中
是否有帮助?您可以创建链接模板,并将keyvault机密作为参数传递给该模板。Azure需要在某个uri上访问您的链接模板
"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"
}
},
您试图部署什么?如果是应用程序服务,您可以利用密钥库上的托管服务标识和访问策略,从密钥库检索机密。下面是如何 在应用程序中,服务可以添加如下内容:
{
"apiVersion": "2018-11-01",
"name": "appsettings",
"type": "config",
"dependsOn": [
"[resourceId('Microsoft.Web/Sites', WEBSITE NAME))]",
"Microsoft.ApplicationInsights.AzureWebSites",
"[resourceId('Microsoft.KeyVault/vaults/', variables('keyVaultName'))]",
"[resourceId('Microsoft.KeyVault/vaults/secrets', variables('keyVaultName'), variables('secretName'))]"
],
"properties": {
"ConnectionSecret": "[concat('@Microsoft.KeyVault(SecretUri=', reference(SECRET NAME).secretUriWithVersion, ')')]"
}
为什么不呢?您完全可以,因为平台不支持在模板中使用KeyVault引用[尚未]。。。仅在参数文件中。嗯。。。你能分享那个模板吗?是的,那些是参数引用。。。后者不在模板中使用,而是作为参数传递给嵌套部署。
{
"apiVersion": "2018-11-01",
"name": "appsettings",
"type": "config",
"dependsOn": [
"[resourceId('Microsoft.Web/Sites', WEBSITE NAME))]",
"Microsoft.ApplicationInsights.AzureWebSites",
"[resourceId('Microsoft.KeyVault/vaults/', variables('keyVaultName'))]",
"[resourceId('Microsoft.KeyVault/vaults/secrets', variables('keyVaultName'), variables('secretName'))]"
],
"properties": {
"ConnectionSecret": "[concat('@Microsoft.KeyVault(SecretUri=', reference(SECRET NAME).secretUriWithVersion, ')')]"
}