我有一个可以创建通知中心名称空间和中心本身的手臂。 我也将证书导入了天蓝色的密钥库。 是否可以在布防或布防后使用此证书?
答案 0 :(得分:1)
是的,您可以在ARM模板中使用密钥库密钥,但是只能以两种方式使用。在ARM模板中像这样引用关键文件库机密:
"sslCertData": {
"reference": {
"keyVault": {
"id": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.KeyVault/vaults/<vault-name>"
},
"secretName": "[parameters('keyVaultSslCertDataSecretName')]"
}
}
但是,您只能在parameters.json
文件中使用此引用。
使用密钥库的第一种方法包括创建带有用于秘密数据的参数的模板:
"sslCertData": {
"type": "securestring"
}
然后创建一个包含上述密钥库和秘密名称引用的parameters.json
文件,并从命令行通过参数文件部署模板:
New-AzResourceGroupDeployment `
-ResourceGroupName $resourceGroupName `
-TemplateUri <The Template File URI> `
-TemplateParameterFile <The Parameter File>
第二种方法是使用父模板或“包装器”模板,该模板将子模板部署到您要使用机密的位置。
在父模板中,您将部署以下资源:
{
"type": "Microsoft.Resources/deployments",
"name": "childTemplate",
"apiVersion": "2017-06-01",
"properties": {
"mode": "incremental",
"templateLink": {
"uri": "[variables('child-template-url')]",
"contentVersion": "1.0.0.0"
},
"parameters": {
"sslCertData": {
"reference": {
"keyVault": {
"id": "[resourceId(parameters('keyVaultSubscriptionId'), parameters('keyVaultResourceGroupName'), 'Microsoft.KeyVault/vaults', parameters('keyVaultName'))]"
},
"secretName": "[parameters('keyVaultSslCertDataSecretName')]"
}
}
}
}
}
传递到子模板的参数用于构造参数文件。因此,就像在第一种方法中一样,我们使用模板文件和参数文件来访问密钥库机密,但是我们可以从门户而不是命令行中进行部署。