keyVaultClient - 获取秘密

keyVaultClient - get a secret

我正在使用 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 函数中的 keyVault 中获取秘密?

谢谢!

如果您可以使用 KeyVault 引用的 AppSettings,而不是在您的 Function 中使用 KeyVault 客户端,则可以使它变得更加简单(如果可以的话,当然在一定程度上取决于您的场景)。 https://docs.microsoft.com/en-us/azure/app-service/app-service-key-vault-references

然后你可以像任何设置一样简单地使用这个秘密,并将它作为一个环境变量来读取。

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

从 Azure 门户或通过 CLI/API,进入相关的 Azure Key Vault 资源 -> 访问策略 -> 添加访问策略 -> 为 Azure Function 标识分配以下权限:

  • 秘密名单
  • 秘密获取