MSINotEnabled - 无法在 Azure 函数中使用 KeyVault 参考

MSINotEnabled - Can't use KeyVault Reference in Azure Function

我正在尝试使用用户分配托管标识在 Azure Functions 的 KeyVault 引用中检索访问权限。

我正在关注此文档 https://docs.microsoft.com/en-us/azure/app-service/app-service-key-vault-references?tabs=azure-cli#:~:text=you%20haven%27t%20already.-,Configure,-the%20app%20to 以在应用程序配置中引用密钥库。

我遵循了这些步骤:

  1. 已创建用户分配托管标识。

  2. 在 Keyvault 中创建了一个策略,并授予用户分配托管标识的 GET 和 LIST 权限。

  3. 在 Azure 函数标识中设置用户分配托管标识

  4. 像这样设置属性应用程序设置:

对此有什么想法吗?

希望您已经完成了所有步骤。但是您可能会错过一件事,即

  • 您必须为您的应用程序启用 system-assigned 身份

此错误 MSINotEnabled 主要出现在您的应用程序缺少托管身份时,它清楚地表明,即系统分配的托管身份。

请参阅此 medium article,我们将在其中找到已给出的故障排除步骤以及所有这些类型的错误及其解决方案。

刚发现当使用我们的 IaC(应用程序设置)门户在函数中创建 keyVaultReferenceIdentity 属性 时,它不会将用户分配的身份识别为在 KeyVault 中进行身份验证的身份,但是如果您 运行 以下 link 中描述的 PATCH 使用 PowerShell,它有效。

https://docs.microsoft.com/en-us/azure/app-service/app-service-key-vault-references?tabs=azure-powershell#access-vaults-with-a-user-assigned-identity

引用KeyVault作品应该就够了