部署包含存储在密钥保管库中的证书的ARM模板时出错

ogo*_*win 8 azure azure-resource-manager azure-keyvault

我正在尝试从Release Management部署一个ARM模板,其中包含一个"Microsoft.Web/certificates"资源,该资源引用存储在密钥库中的证书.当密钥保管库存在于与我部署到的资源组相同的订阅中时,此方法可以正常工作.但是当密钥保管库存在于不同的订阅中时,我收到以下错误.

资源Microsoft.Web /证书的"证书名称"失败并显示消息

{
    "Code": "BadRequest",
    "Message": "The parameter Properties.KeyVaultId has an invalid value.",
    "Target": null,
    "Details": [
    {
      "Message": "The parameter Properties.KeyVaultId has an invalid value."
    },
    {
      "Code": "BadRequest"
    },
    { 
      "ErrorEntity": {
        "Code": "BadRequest",
        "Message": "The parameter Properties.KeyVaultId has an invalid value.",
        "ExtendedCode": "51008",
        "MessageTemplate": "The parameter {0} has an invalid value.",
        "Parameters": [
          "Properties.KeyVaultId"
        ],
        "InnerErrors": null
      }
    }
    ], 
    "Innererror": null
}'
Run Code Online (Sandbox Code Playgroud)

证书资源在我的模板中定义如下.

    {
        "type":"Microsoft.Web/certificates",
        "name": "SomeName",
        "location": "East US 2",
        "apiVersion": "2016-03-01",
        "properties": {
            "keyVaultId": "/subscriptions/<subscriptionId>/resourceGroups/<vault resource group>/providers/Microsoft.KeyVault/vaults/<vault name>",
            "keyVaultSecretName": "SecretName"                
        }            
    }
Run Code Online (Sandbox Code Playgroud)

我正在使用VSTS中的Azure资源组部署任务来部署资源组.该任务配置为使用具有在Azure中设置的以下权限的服务主体的端点:

  • 密钥保管库参与者在包含密钥保管库的资源组上的角色.
  • 获取密钥保管库的秘密权限

Microsoft.Azure.WebSites主体被授予对密钥保管库机密的Get权限.

密钥保管库还具有"启用对Azure Resource Manager进行模板部署的访问"选项.证书使用powershell上载到密钥保管库,而不是通过门户网站.

我在这里错过了什么吗?

谢谢

Ide*_*ity 2

我想我找到了这个问题的原因。显然,当资源组创建后,您就无法更改秘密名称。如果这样做,将会抛出上面的错误。

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

您是否在 ARM 模板中更改了秘密名称,而没有删除 azure 门户中的完整资源组?