【发布时间】:2018-06-01 00:41:03
【问题描述】:
我有一个启用了Managed service identity (MSI) 的函数应用程序。
我正在尝试使用此 Function App 访问我的 Key Vault 中的机密。
我已将代码添加到我的 Function App 中以检索密钥。
AzureServiceTokenProvider azureServiceTokenProvider = new AzureServiceTokenProvider();
var keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
var secret = await keyVaultClient.GetSecretAsync("https://test-prototype-vault.vault.azure.net/secrets/batman/guidhere").ConfigureAwait(false);
我收到以下错误:
Microsoft.Azure.WebJobs.Script: One or more errors occurred. Microsoft.Azure.KeyVault: Access denied.
我认为这是因为我需要(如上面链接中所述)。
您可能需要配置目标资源以允许从 你的申请。例如,如果您向 Key Vault 请求令牌, 您需要确保已添加访问策略,其中包括 您的应用程序的身份。
我不知道该怎么做。我已进入我的 Key Vault 并尝试添加访问策略 - 我找不到选择原则选项的应用程序。
Azure 函数的设置。
当我尝试添加主体时会发生什么。
【问题讨论】:
标签: azure azure-active-directory azure-functions azure-keyvault azure-managed-identity