如果值为秘密生成新版本,则密钥保险库值不会更新

问题描述 投票:0回答:2

以下是我面临的Key-Vault问题。我有一个Key-Vault,它存储了一些在web-app中使用的密钥和使用@Microsoft.KeyVault的函数(SecretUri =)秘密的值将使用自动化每三天更改一次。这也将更改版本号(GUID),然后应用程序设置值(主要和次要时至少为1)将变为无效。有什么方法可以在应用程序设置中引用KeyVault的最新值。更新所有网站中的应用设置将是一个繁琐的过程。

c# azure-functions azure-keyvault appsettings
2个回答
2
投票

密钥库引用目前处于预览状态。

密钥保管库引用的格式为@ Microsoft.KeyVault({referenceString}),其中{referenceString}将替换为以下选项之一:

  1. SecretUri = secretUri

其中SecretUri应该是Key Vault中秘密的完整数据平面URI,包括版本,例如https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931

  1. VaultName的= VAULTNAME; SecretName = secretName; SecretVersion = secretVersion

其中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时,您需要更新应用程序配置中的版本。


0
投票

使用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)来更新它们。

© www.soinside.com 2019 - 2024. All rights reserved.