当前位置: 首页 > 知识库问答 >
问题:

Azure密钥存储库即使在禁用安装程序后也会返回机密

段干飞翔
2023-03-14

我正在为一个业余项目试验Azure密钥库。起初,我在本地开发,但现在我的数据库是在Azure中。所以我希望这个connectionstring在密钥库中是安全的。我设法通过visual Studio中的connected service选项完成了此操作。连接建立了,一切按预期工作。不过,现在我希望在开发中使用AppSettings.json中的配置值访问本地db。我认为,通过在Program.cs中的ConfigureAppConfiguration委托中包装安装程序,如下所示,可以绕过Key Vault,转到本地AppSettings。但是当运行这段代码时,我仍然会得到Key Vault secret值(在调试中,代码被跳过(所以IsDevelopment是真的)

            if (!context.HostingEnvironment.IsDevelopment())
            {
                var builtConfig = config.Build();
                var keyVaultEndpoint = GetKeyVaultEndpoint();
                if (!string.IsNullOrEmpty(keyVaultEndpoint))
                {
                    var azureServiceTokenProvider = new AzureServiceTokenProvider();
                    var keyVaultClient = new KeyVaultClient(
                        new KeyVaultClient.AuthenticationCallback(
                            azureServiceTokenProvider.KeyVaultTokenCallback));
                    config.AddAzureKeyVault(
                        keyVaultEndpoint, keyVaultClient, new DefaultKeyVaultSecretManager());
                }
            }
  1. 还有其他人经历过这种奇怪的行为吗?
  2. 如何正确处理在本地计算机上切换密钥库

共有1个答案

充子航
2023-03-14

为此,我通常使用环境变量,而不是在程序类中访问宿主环境。由于keyvault可能会更改,所以我将keyvault存储为生产中的环境变量。我现在可以将函数定义为:

string GetKeyVaultEndpoint() => Environment.GetEnvironmentVariable("KeyVaultURL");

这里的“KeyVaulturl”是存储URLendpoint的环境变量名。一旦这样定义了函数,就可以简单地检查它是否返回NULL。如果返回null,则可以跳过密钥库设置。这样,即使您将网站移动到您选择使用其他东西而不是密钥库的位置,即使在生产环境中也不会出现问题。

 类似资料:
  • 我在大多数文章中读到,需要在Azure中部署应用程序,这样应用程序才能以编程方式访问存储在Azure密钥库中的秘密。 有没有一种方法可以不在azure中部署应用程序,并且仍然能够通过使用客户端id和客户端机密或证书来访问azure密钥库以获取机密?

  • 我没有找到任何关于在前端端实现逻辑来管理Azure密钥库的可能性的信息。同时,我创建了一个Node JS服务器项目使用ENV来管理Azure Key Vault,它工作成功,但我想在我的Angular应用程序中得到同样的效果。

  • 同一空间/存储库中机密的逻辑分组 HSM的可能性 日志记录/审核 检索/更改机密的一个位置,许多应用程序可能依赖该位置而不触及应用程序。 我不知道如何在我的Spring Boot应用程序中处理存储库访问。当我使用azure-key-vault spring boot Starter时,我必须设置Applications.Properties中的访问权限,如本教程:如何使用spring boot S

  • 我有一个premium storage account,在创建这个帐户后我就启用了加密,我找到了这个链接https://docs.microsoft.com/en-us/azure/storage/storage-service-encryption来检查blob是否加密。 现在,如果我使用Azure key vault加密OS盘和数据盘,它也用于保护静止数据,但加密存储帐户也会做同样的事情。有谁

  • MySQL Server Enterprise edition与Hashicorp集成,在静止状态下加密数据。加密密钥存储在HashiCorp存储库中,如MySQL文档中所述。 基于HashiCorp文档[1][2],我们可以使用Azure密钥库来存储秘密。 是否可以集成mysql-hashicorp-Azure密钥库 MySQL Enterprise Edition使用hashicorp加密 加