为了账号安全,请及时绑定邮箱和手机立即绑定

如果秘密中的值发生变化,密钥保管库值不会更新,因为它会为秘密生成新版本

如果秘密中的值发生变化,密钥保管库值不会更新,因为它会为秘密生成新版本

C#
开心每一天1111 2022-11-22 15:47:32

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



查看完整描述

4 回答

?
紫衣仙女

TA贡献1543条经验 获得超15个赞

对于我的应用程序服务,我确实成功地使用了以下表单中没有版本的 Key Vault 参考:

@Microsoft.KeyVault(SecretUri=https://<vault_name>.vault.azure.net/secrets/<secret_name>/)

但是,我确实必须停止并启动(而不是重新启动)应用服务才能从密钥保管库中提取新的秘密值。


查看完整回答
反对 回复 2022-11-22
?
繁星点点滴滴

TA贡献1529条经验 获得超3个赞

Key Vault 引用目前处于预览阶段。

Key Vault 引用的格式为 @Microsoft.KeyVault({referenceString}),其中 {referenceString} 替换为以下选项之一:

  1. SecretUri=秘密Uri

Key Vault 中机密的完整数据平面 URI在哪里SecretUri,包括版本,例如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,您需要更新应用程序配置中的版本。


查看完整回答
反对 回复 2022-11-22
?
慕工程0101907

TA贡献0条经验 获得超1个赞

重新启动应用服务并没有立即生效,所以我就是这样做的。

  1. 从 KeyVault 中删除秘密变量。

  2. 清除已删除的变量(以便您可以创建一个具有相同名称的新变量)

  3. 使用相同的名称和新值再次创建秘密变量。


查看完整回答
反对 回复 2022-11-22
?
蛊毒传说

TA贡献1593条经验 获得超3个赞

使用 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# 中的代码中这样做或多或少是相同的(或者至少是可能的)。不太确定网络应用程序的应用程序设置=\。


您可能可以使用某种自动化(如 powershell)来更新它们。


查看完整回答
反对 回复 2022-11-22
  • 4 回答
  • 0 关注
  • 10 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信