以下是我面临的Key-Vault问题。我有一个Key-Vault,它存储了一些在web-app中使用的密钥和使用@Microsoft.KeyVault的函数(SecretUri =)秘密的值将使用自动化每三天更改一次。这也将更改版本号(GUID),然后应用程序设置值(主要和次要时至少为1)将变为无效。有什么方法可以在应用程序设置中引用KeyVault的最新值。更新所有网站中的应用设置将是一个繁琐的过程。
密钥库引用目前处于预览状态。
密钥保管库引用的格式为@ Microsoft.KeyVault({referenceString}),其中{referenceString}将替换为以下选项之一:
其中SecretUri
应该是Key Vault中秘密的完整数据平面URI,包括版本,例如https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931
其中VaultName
应该是Key Vault资源的名称。 SecretName
应该是目标秘密的名称。 SecretVersion
应该是使用秘密的版本。
例如,完整的引用将如下所示:
@ Microsoft.KeyVault(SecretUri = https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931)
或者:
@ Microsoft.KeyVault(VaultName的= myvault; SecretName = mysecret; SecretVersion = ec96f02080254f109c51a1f14cdb1931)
在当前预览中,需要versions
。旋转secrets
时,您需要更新应用程序配置中的版本。
使用Azure Python SDK,您可以执行以下操作:
kv_client.get_secret("https://%kvname%.vault.azure.net/", name, KeyVaultId.version_none)
# or this
kv_client.get_secret("https://%kvname%.vault.azure.net/", name, "")
这两个都将拉出最新版本的秘密。所以我假设在c#代码中这样做会或多或少相同(或者至少是可能的)。不太确定web apps =的设置。
您可以使用某种自动化(如powershell)来更新它们。