0

我有一个在 Azure 上运行的 C# ASP.NET Core 应用服务。它需要密钥才能访问 Azure 存储帐户。它从 Azure 密钥保管库获取这些密钥。

我的问题是偶尔我想更改这些键。我希望应用程序尽可能顺利地重新加载密钥,而无需从密钥库中读取任何内容。

目前我们在启动时这样做:

Host.CreateDefaultBuilder(args)
    .ConfigureLogging(logging => logging.AddConsole())
    .ConfigureAppConfiguration((context, config) =>
    {
        var secretClient = new SecretClient(keyVaultUri, credential);
        config.AddAzureKeyVault(secretClient, new KeyVaultSecretManager());
    })

据我了解,这会在应用程序启动时从 Azure 密钥保管库加载机密并永久缓存它们。

一旦应用程序检测到旧机密不再有效,从 Azure 密钥保管库刷新缓存机密的最佳实践方法是什么?有没有一种无需重新启动应用程序的好方法?

当然,我可以创建一个SecretClient新密钥并获取新密钥,但是有什么好方法可以全局缓存新密钥,这样我只在绝对必要时才调用密钥库?有没有一个很好的标准方法,或者我需要实现我自己的自定义全局状态?

(我不需要上面那样使用AddAzureKeyVault。如果更方便的话,我可以用别的东西代替。)

4

0 回答 0