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 标识分配以下权限:
- 秘密名单
- 秘密获取
我正在使用 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 标识分配以下权限:
- 秘密名单
- 秘密获取