我有一个Java春季启动应用程序(war),该应用程序已容器化并在Microsoft Azure的Kubernetes上运行。
最近,我们将所有密码都移到了Azure Key Vault,以确保所有密码安全,但是现在出现了一个问题,该问题是将Azure密钥保险库本身的密码(服务主体密钥)存储在哪里?
此外,密钥库凭证(服务主体)是特定于DEV,UAT和PROD环境的环境。
我曾考虑过加密密码,但问题是将加密密钥放在哪里?必须至少有一个不那么安全地存储密码的起点。
此外,我也不想使用任何非可靠来源的第三方库,例如贾西普(Jasypt)没问题。
有什么想法吗?
答案 0 :(得分:1)
一种方法是将Keyvault ID,Secret和URI存储在Web应用程序的环境变量中。一种更安全的方法是使用托管服务身份,其中您仅使用keyvault名称,并且如果在Azure上为Web应用程序授予了适当的权限,则您的应用程序将连接到keyvault。这样,您可以轻松,安全地获取密钥库变量。在此处阅读更多信息:https://docs.microsoft.com/en-us/samples/azure-samples/app-service-msi-keyvault-dotnet/keyvault-msi-appservice-sample/