【问题标题】:How do I hide my Storage and SQL connection strings using Azure Cloud Services?如何使用 Azure 云服务隐藏我的存储和 SQL 连接字符串?
【发布时间】:2015-08-10 09:28:09
【问题描述】:

我想将存储和 SQL 连接字符串从存储在我的解决方案的各个项目中的配置文件中移动到只能在 Azure 门户中访问。

在源代码控制中保留连接字符串意味着,如果有人查看我们的代码库,他们将可以无限制地访问我们的 Azure 帐户。

在 Azure 网站中,连接字符串可以在门户中设置,并在下一次部署发生时保留。是否可以对云服务做同样的事情?

【问题讨论】:

    标签: azure connection-string azure-sql-database azure-table-storage azure-cloud-services


    【解决方案1】:

    不,这是不可能的。云服务是一个虚拟机,它不是一个可以使用连接字符串的应用程序。

    如果您有一个持续集成服务器,您可以这样做:在将应用程序部署到云服务之前,运行一个脚本,将连接字符串的值更改为您喜欢的值,然后进行部署。这样,连接字符串仅在您的 CI 服务器中可见,而在您的代码中不可见。

    但是请注意,如果您已经将连接字符串提交到您的代码库,则无法将它们从历史记录中删除。 (除非你使用force push,否则不推荐)。

    【讨论】:

    • 谢谢,我可以重新生成我的密钥并更改密码,这样旧的就不再使用了。顺便说一句,强制推送仅在使用 git 时适用 :)
    • 哦,是的,对不起,我只是假设你使用了 Git,或者某种形式的版本控制。
    • 我正在使用 TFS,这可能是下面的 git,但我会更改密码并按照您的建议进行操作
    • 好的。仅供参考:TFS 不是 git:stackoverflow.com/questions/4415127/…
    • 如果您愿意使用 Azure Key Vault 进行密钥管理,您可能会发现这篇博文很有用(至少对于存储密钥而言):dushyantgill.com/blog/2015/04/26/…
    【解决方案2】:

    这现在应该可以通过 Azure Key Vault 实现。我还没有尝试过 - 但计划 - 但这里有一个关于 getting started with key vaultusing key vault from a web app 的很好的教程。我不确定这对于云服务是否完全一样。

    【讨论】:

    • 是的,您可以这样做,但是如何隐藏到 Key Vault 的连接字符串?实际上,您可以设置 VM 可用于访问 Key Vault 的身份。
    【解决方案3】:

    这确实太晚了,但是如果您已将项目部署为 Web 服务,安全存储连接字符串的最简单方法是转到:

    您的应用服务 -> 配置 -> 连接字符串 -> 新连接字符串

    在这里,添加连接字符串的名称(比如 DBConnectionString)和连接字符串的值。此值应使用您在上面添加的值替换 Web.config 文件中名称为 DBConnectionString 的任何虚拟连接字符串。

    您的 Web.config 文件应包含如下所示的内容。在这里你可以用任何东西替换SOME DUMMY VALUE;部署的服务将从 azure 门户获取连接字符串。本地调试将要求您再次添加连接字符串。

    <connectionStrings>
        <add name="DBConnectionString"
                   connectionString="SOME DUMMY VALUE" />
    </connectionStrings>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-28
      • 2015-06-20
      • 2021-08-24
      • 1970-01-01
      • 1970-01-01
      • 2017-10-09
      • 1970-01-01
      相关资源
      最近更新 更多