Kubernetes 中的警告 "Storing keys in a directory '{path}' that may not be persisted outside of the container. "

Warnings in Kubernetes "Storing keys in a directory '{path}' that may not be persisted outside of the container. "

我们在 Kubernetes 中 运行 的 .Net Core Web API 服务的生产日志中收到警告。

Storing keys in a directory '{path}' that may not be persisted outside of the container. Protected data will be unavailable when container is destroyed.","@l":"Warning","path":"/root/.aspnet/DataProtection-Keys",SourceContext:"Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository"

我们没有在 StartUp 中明确调用 services.AddDataProtection(),但似乎我们收到了针对使用 .Net Core 3.1 和 .Net 5 的服务的警告(不适用于 .Net Core 2.1 ) ,在 StartUp

中也有
services.AddAuthentication Or 
services.AddMvc()

(可能还有其他我遗漏的条件)。

我无法准确识别它的调用位置,但在本地我可以看到在从 XmlKeyManager 访问 DataProtection-Keys 之前加载的相关 DLL

 Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App.1.19\Microsoft.Win32.Registry.dll'. 
 Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App.1.19\System.Xml.XDocument.dll'. 
 Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App.1.19\System.Private.Xml.Linq.dll'. 
 Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App.1.19\System.Private.Xml.dll'. 
 Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App.1.19\System.Resources.ResourceManager.dll'.
Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager:
Using 'C:\Users\..\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest.

考虑到我们没有明确使用 DataProtection,没有长时间使用身份验证加密并且在测试期间我们没有发现任何问题,忽略此类警告是否安全?

或者错误意味着如果同一个客户端涉及不同的pods,认证可能会失败,最好做一些?[=15=中建议的事情]

在分析我们的应用程序如何使用受保护数据(身份验证 cookie、CSRF 令牌等)后,我们的团队 决定,“当容器被销毁时,受保护的数据将不可用。”只是一个警告,不会对客户产生影响,因此我们忽略它。

但是YMMV.