gpt4 book ai didi

azure - 从 ARM 模板中的 Azure key 保管库获取最新版本的证书

转载 作者:行者123 更新时间:2023-12-01 13:16:27 26 4
gpt4 key购买 nike

创建需要安装位于 Azure key 保管库内部的 SSL 证书的 ARM 模板。如果我用指纹指定证书,它就可以正常工作:

https://contoso.vault.azure.net/secrets/web01-test-contoso-com/968bf207451149d3aceb390065af9d3a

但由于证书是在滴答作响的时钟上,这会硬编码一个依赖项,该依赖项可能会在 ARM 模板中过时。我宁愿只指定最新版本(就像门户中显示的那样)。但是,我还没有找到任何文档来说明如何做到这一点,甚至没有提到是否可能。

我使用以下方法进行了一些实验:

https://contoso.vault.azure.net/secrets/web01-test-contoso-com

https://contoso.vault.azure.net/secrets/web01-test-contoso-com/latest

但是在这两种情况下,我都收到相同的错误消息:

message '{
"error": {
"code": "InvalidParameter",
"message": "https://contoso.vault.azure.net/secrets/web01-test-contoso-com/latest is
not a valid versioned Key Vault Secret URL. It should be in the format
https://<vaultEndpoint>/secrets/<secretName>/<secretVersion>.",
"target": "certificateUrl"
}
}'

所以我的问题是:如何以获取最新版本的方式引用证书?

为了清楚起见,我使用 VM ARM 模板的 secrets 部分中的 URL,如下所示,该 URL 从 Azure key 保管库获取证书并将其安装到 Windows 证书存储中。

"secrets": [
{
"sourceVault": {
"id": "[resourceId(parameters('keyVaultResourceGroupName'), 'Microsoft.KeyVault/vaults', parameters('keyVaultName'))]"
},
"vaultCertificates": [
{
"certificateUrl": "https://contoso.vault.azure.net/secrets/web01-test-contoso-com/latest",
"certificateStore": "My"
}
]
}
]

NOTE: I would find it odd that you can specify the latest version of an OS to install, but you cannot specify to install the latest version of a certificate.

最佳答案

这是可能的,与公认的答案所说的相反。使用 Secret 的资源 id 定义变量,例如:

"mySecretResourceId": "[concat(resourceGroup().id,'/providers/Microsoft.KeyVault/vaults/', variables('keyVaultName'), '/secrets/', 'my-secret-name')]"

然后您可以在模板中使用它,如下所示:

"certificateUrl": "[reference(variables('mySecretResourceId'), '2018-02-14').secretUriWithVersion]"

关于azure - 从 ARM 模板中的 Azure key 保管库获取最新版本的证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54402366/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com