如何解决如何在Ubuntu上的ASP.NET Core生产环境中保护数据库连接字符串?
我有一个.NET Core应用程序,该应用程序已部署在Ubuntu(使用Nginx之后的Kestrel)上。
该应用程序具有数据库连接字符串。根据{{3}},它在appsettings.json中定义为空,并在Kestrel Ubuntu服务文件中将其设置为服务环境变量:
# somevalue was escaped with systemd-escape "value"
Environment=ConnectionStrings__MyDatabaseConnection=somevalue
但是,我的客户不接受将原始字符串存储在服务器上的文件中(它们是正确的)。
我可以加密它,但是随后我不得不将加密密钥存储在服务器上的某个地方,这也是不可接受的-它只是将同一问题推到了更深处。
因此,我进行了一些搜索,以期找到一些事实上的标准或直接的“嵌入式”解决方案,但令人惊讶的是,找不到任何解决方案。
这就是我看过的东西:
- 秘密管理器-不可选项;只需将相同的原始文本“按原样”推送到用户的个人资料即可。只是为了发展。
- Azure Vault-不是一种选择,我们不使用Azure。也有类似的功能强大的系统,例如Hashicorp Vault,但对于单个连接字符串使用类似的功能(具有非平凡配置的全面Web服务和可能的隐藏警告)似乎是过大的选择。
此连接字符串保护问题是最终的看似简单的障碍,可阻止项目被客户接受。
应该有一个简单的解决方案,可以添加到我的项目中,并为客户的管理员提供一种工具,以加密Kestrel服务文件中的连接字符串。
.net核心开发人员还使用什么来保护生产GNU / Linux服务器上的连接字符串?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。