带有密钥保险库证书的ARM模板

时间:2017-02-23 08:36:34

标签: x509certificate2 azure-keyvault azure-resource-manager

我有一个奇怪的问题。我有1个ARM模板,用于部署2个环境。

我正在添加这样的证书:

{
        "type": "Microsoft.Web/certificates",
        "name": "[variables('certificateName')]",
        "apiVersion": "2016-03-01",
        "location": "[resourceGroup().location]",
        "properties": {
            "keyVaultId": "[parameters('almKeyVaultId')]",
            "keyVaultSecretName": "[parameters('servicePrincipalCertSecretName')]",
            "serverFarmId": "[resourceId('Microsoft.Web/serverfarms/', variables('appServicePlanName'))]"
        },
        "dependsOn": [
            "[resourceId('Microsoft.Web/serverfarms/', variables('appServicePlanName'))]"
        ]
    },

对于我的测试环境,这成功了。 当我部署我的QA环境时,我收到了错误:参数KeyVaultId& KeyVaultSecretName的值无效。

但是,Test和QA的参数值相同(almKeyVaultId& servicePrincipalCertSecretName)。

任何想法我做错了什么?

更新

删除完整的QA资源组后,我能够重新部署完全相同的ARM模板。 似乎应该在Key Vault秘密之后创建资源组?有什么想法吗?如果我们在生产中遇到这种情况,我们不想删除整个资源组

2 个答案:

答案 0 :(得分:1)

我想我找到了这个问题的原因。 显然,在创建资源组时,您无法更改密钥名称。如果这样做,将抛出上述错误。

如果要更改密码名称,则需要删除资源组并重新部署所有内容。

答案 1 :(得分:0)

我可以确认删除资源组是可以的,但是我已将RBAC应用于资源组,并且供应商管理了我们的权限,因此重新创建资源组会引起其他问题。

我使用resources.azure.com从资源组(未在门户网站的资源组中显示)中删除证书,导航到资源组并将其从Microsoft.Web \ Certificates集合中删除。