首页 > 解决方案 > 无法在 Azure 函数中检索机密 - 拒绝访问

问题描述

我有以下 Azure 函数,或者至少是它的相关部分:

    using Microsoft.Azure.Services.AppAuthentication;
    using Microsoft.Azure.KeyVault;
    using Microsoft.Azure.KeyVault.Models;
    using System;
    using System.Configuration;
    using System.Data.SqlClient;
    using System.Threading.Tasks;

    public static async Task Run(TimerInfo myTimer, TraceWriter log)
    {
        AzureServiceTokenProvider tokenProvider = new AzureServiceTokenProvider();

        var keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(tokenProvider.KeyVaultTokenCallback));
        var secret = await keyVaultClient.GetSecretAsync("https://xxxxx.vault.azure.net/secrets/TwiloAccountSid");

        ...
    }

执行此操作时,我在尝试检索机密时收到拒绝访问错误。Azure 函数已注册到托管服务标识。看来我还需要做其他事情。

标签: azure-functionsazure-keyvault

解决方案


看来我还需要做其他事情。

正如 SuWat ch 提到的,如果我们要访问 KeyVault,我们还需要添加允许 azure 功能访问它的权限。有关更详细的步骤,您可以参考本指南

在此处输入图像描述


推荐阅读