gpt4 book ai didi

azure - 在公共(public)存储库中共享我的只读 Azure 应用程序配置连接字符串

转载 作者:行者123 更新时间:2023-12-02 23:56:55 24 4
gpt4 key购买 nike

我正在开发一个应用程序,我希望它是开源的。

在生产中,应用程序仅使用 Azure Key Vault 服务来存储数据库连接字符串。连接字符串存储在生产服务器的环境变量中。在本地,我使用 EntityFramework 的内存数据库。无法访问敏感数据。

在生产中,应用程序也使用 Azure 应用程序配置服务。在能够更新已运行应用程序的配置的同时,它还允许我集中应用程序的配置数据。在本地,我也在使用 Azure 应用程序配置服务。只读连接字符串存储在我的用户 secret 中。

这就是我正在努力解决的问题。在 Github 或其他公开的地方共享只读应用程序配置连接字符串是否被认为是一种不好的做法?即使我不存储任何敏感数据?Key Vault 服务专门用于安全存储敏感数据,因此理论上应用配置服务没有任何可用的敏感数据。

但我找不到有关该主题的任何相关文档,而且我能找到的每个教程都将连接字符串存储在用户 secret 中这一事实正在警告我。如何以安全的方式共享我的配置以使我的项目开源?

最佳答案

从安全角度来看,您违反了 principle of least privilege ,向公众授予他们不需要的读取权限。

这可能会带来一些风险:

  • 您或维护应用配置的其他人可能会“忘记”公共(public)读取访问权限并将易受攻击的数据放在那里
  • 攻击者可能会利用应用配置本身的安全漏洞,将只读权限升级为读写权限,如果他们一开始就没有只读访问权限,则不会发生这种情况

您可能认为发生这种情况的可能性很小(可能确实如此),但它确实存在,并且在安全方面我们始终保持安全 - 这就是为什么我们提到了原则,而且它确实通常被认为是不好的练习违反它。

最后,我们总是需要在可用性和安全性之间进行选择,因此最终您可能会自愿同意稍微降低安全性,如果这能让您的生活更轻松,并且风险带来的潜在麻烦不会吓到您。

如果您不想公开连接字符串,您可以考虑:

  • 以与 secret 类似的方式提取配置,以便生产应用程序将使用应用程序配置,而对于本地开发,您可以使用 InMemory 数据库
  • 用 Terraform 脚本替换连接字符串,以便您或任何其他开发人员可以启动并填充专用的应用配置实例以用于本地开发目的

关于azure - 在公共(public)存储库中共享我的只读 Azure 应用程序配置连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70796170/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com