首页 > 解决方案 > 托管服务标识在 Azure 函数中未按预期工作

问题描述

我从基本的 PowerShell http 触发器模板开始,从 Azure Key Vault 检索秘密字符串。我完全按照这里的描述设置了函数和密钥库:

https://medium.com/statuscode/getting-key-vault-secrets-in-azure-functions-37620fd20a0b

并在此处设置引用此文档的系统分配身份: https ://docs.microsoft.com/en-us/azure/app-service/overview-managed-identity?tabs=dotnet#add-a-system-assigned-身份

但是,在状态切换下方的“身份”面板中有一个上面未提及的新部分,称为:“权限:Azure 角色分配”:

如果没有在 Azure 角色分配中设置某些内容,该功能似乎无法正常工作。将此部分设置为使用 Key Vault 资源类型中的“读取器”也不足以使其正常检索机密。在资源类型“订阅”下添加“贡献者”有足够的权限,但我不知道正确的权限数量是多少才能仅提供仅获取机密的访问级别。

谁能详细说明此设置并让我知道正确的配置方法是什么?

标签: azureazure-functionsazure-keyvaultazure-managed-identity

解决方案


您需要做的是在 Key Vault 中设置访问策略,列出托管标识的权限 (GET/LIST)。这是一个 gif,展示了如何做到这一点:

在此处输入图像描述


推荐阅读