我正在尝试从发布管理部署一个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
}'
证书资源在我的模板中定义如下。
{
"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"
}
}
我正在使用VSTS中的Azure资源组部署任务来部署资源组。该任务配置为使用具有在Azure中设置以下权限的服务主体的端点:
Microsoft.Azure.WebSites主体被授予对密钥保管库机密的获取权限。
密钥保管库还具有“启用Azure资源管理器访问权限以进行模板部署”的功能。选项已启用。证书使用powershell上传到密钥保管库,而不是通过门户网站。
我在这里错过了什么吗?
由于
答案 0 :(得分:0)
我想我找到了这个问题的原因。显然,在创建资源组时,您无法更改密钥名称。如果这样做,将抛出上述错误。
如果要更改密码名称,则需要删除资源组并重新部署所有内容。
您是否一直在更改ARM模板中的秘密名称,而不删除azure门户中的完整资源组?
答案 1 :(得分:0)
如果在先前的部署中在keyvault中引用了证书(秘密),并且证书已在keyvault中删除或替换,则可以获取此证书。新部署将因上述错误而失败(51008)。例如,如果您从另一个密钥库存储中迁移了机密。
这与同一证书的版本不同。新版本可以正常工作。
将密钥替换为密钥库中的原始密钥,或者删除密钥并添加新密钥。