托管服务标识在 Azure Function 中未按预期工作

Managed Service Identity not working as expected in Azure Function

我已经开始使用基本的 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-identity

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

如果没有在 Azure 角色分配中设置某些内容,该功能似乎不起作用。将此部分设置为使用 Key Vault 资源类型中的“Reader”也不足以让它检索机密。在资源类型“Subscription”下添加“Contributor”有足够的权限,但我不知道正确的权限数量是多少才能只提供只获取秘密的访问级别。

任何人都可以详细说明此设置并让我知道正确的配置方法是什么吗?

您需要做的是在 Key Vault 中设置访问策略,列出托管身份的权限 (GET/LIST)。这是一张展示如何操作的 gif: