Java Azure密钥库在本地工作,但在Azure云中获得403禁止错误

Java Azure密钥库在本地工作,但在Azure云中获得403禁止错误,java,azure,azure-keyvault,Java,Azure,Azure Keyvault,我是Azure的新手。我想使用AzureKeyVault来存储密码之类的秘密。我已成功创建了Microsoft网站中提到的所有步骤。还可以使用Springbootapplication.properties在本地环境中获取机密(来自KeyVault的密码) 但是当我在Azure Cloud中尝试相同操作时,获取403访问被拒绝错误。它不是在本地tomcat服务器中生成的。请建议我解决这个问题 预期密码,但获取403您可能需要 在PowerShell中,运行这些命令以验证密钥vault是否具

我是Azure的新手。我想使用Azure
KeyVault
来存储密码之类的秘密。我已成功创建了Microsoft网站中提到的所有步骤。还可以使用
Springboot
application.properties在本地环境中获取机密(来自
KeyVault
的密码)

但是当我在Azure Cloud中尝试相同操作时,获取
403访问被拒绝
错误。它不是在本地tomcat服务器中生成的。请建议我解决这个问题

预期密码,但获取
403

您可能需要


  • 在PowerShell中,运行这些命令以验证密钥vault是否具有正确的访问权限

    • 获取AzureRmKeyVault-Vault名称检查您看到的对象
    • 获取AzureRmADServicePrincipal-ObjectId检查您的服务的服务原则(来自AAD)是否列在那里

    你也可以看看这个,我想这可能会对你有所帮助

    application.properties->azure.keyvault.client id=XXX azure.keyvault.client key=XXX azure.keyvault.uri=您的虚拟机/资源是否有权访问keyvault?如果不是,您必须查看“托管服务标识”,我没有“托管服务标识”,但没有它,我的spring boot应用程序在本地运行良好。以及在本地环境中获取机密。这可能是因为您可能已在本地登录到Azure帐户,并且您的IDE允许您携带数据,因为您已经通过身份验证。我在本地tomcat单机服务器上尝试了相同的方法,但未使用IDE,它正在处理该问题,但不在Azure云上工作。那么,KeyVault必须使用托管标识吗?