无法通过用户分配的 MSI 使用 @Microsoft.KeyVault 参考从 Azure 功能配置访问机密

问题描述 投票:0回答:1

我有很多不同的功能应用程序。

他们都需要从一个密钥库访问一个秘密。

因此,我创建了一个专用的托管服务身份,并授予 MSI 读取密钥保管库的能力。

然后,我将该 MSI 添加为所有功能应用程序的“用户分配的身份”。

然后,在功能应用程序的配置内部,我将以下内容设置为配置的值:

@Microsoft.KeyVault(SecretUri=https://key-vault-name.vault.azure.net/secrets/nameOfSecrets)

但是,尽管我从 Key Vault 主页确认我的用户分配的 MSI 确实具有对 Key Vault 的读取访问权限,但我似乎无权访问此 Key Vault。

这就是配置源的样子:

当我单击它时,它似乎仍在使用系统分配的身份:

非常感谢任何帮助。

我已阅读https://learn.microsoft.com/en-us/azure/app-service/app-service-key-vault-references?tabs=azure-cli,它说我需要:

通过将 keyVaultReferenceIdentity 属性设置为用户分配的标识的资源 ID,将应用程序配置为使用此标识进行 Key Vault 引用操作。

但我不知道如何在功能应用程序页面的配置中完成此操作。

我不想切换到系统分配的身份。我确实有一个来自系统分配身份的秘密,但这个秘密在不同的功能应用程序中是不同的。这个在所有功能应用程序中都是一样的,而且我拥有的功能应用程序的数量不是一个常数,将它们一一添加到密钥库中简直难以管理。

azure azure-functions azure-keyvault
1个回答
0
投票

函数应用只能使用一种身份从 Key Vault 获取机密。根据微软文档:

此设置适用于应用程序的所有 Key Vault 引用。

您可以阅读更多这里

© www.soinside.com 2019 - 2024. All rights reserved.