【问题标题】:keyVaultClient - get a secretkeyVaultClient - 获取秘密
【发布时间】:2021-04-16 14:08:06
【问题描述】:

我正在使用 Azure 函数执行操作,在此操作中,我需要从 keyvault 获取机密。 我正在使用此代码来获取秘密

 var azureServiceTokenProvider = new AzureServiceTokenProvider();
 var keyVaultClient = new KeyVaultClient((authority, resource, scope) => azureServiceTokenProvider.GetAccessTokenAsync(resource));

var secret= await keyVaultClient.GetSecretAsync($"https://{KeyVaultName}.vault.azure.net/", "SecretName");

当我在本地运行它时,它可以工作,但是当我在 azure 中运行该函数时,我收到一个错误“禁止” 如何从我的 azure 函数中的 keyVault 获取机密?

谢谢!

【问题讨论】:

标签: azure azure-functions access-token azure-keyvault


【解决方案1】:

Forbidden 可能表示 Azure Function 假定的身份对特定 Azure Key Vault 没有访问权限。

从 Azure 门户或通过 CLI/API,进入相关的 Azure Key Vault 资源 -> 访问策略 -> 添加访问策略 -> 分配具有以下权限的 Azure 函数身份:

  • 秘密清单
  • 秘密获取

【讨论】:

    【解决方案2】:

    如果您可以使用 KeyVault 引用的 AppSettings,则可以更简单地在您的 Function 中使用 KeyVault 客户端(如果可以的话,当然取决于您的场景)。 https://docs.microsoft.com/en-us/azure/app-service/app-service-key-vault-references

    然后您可以像任何设置一样简单地使用秘密并将其作为 Env 变量读取。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多