如何使用Azure云服务隐藏我的存储和SQL连接字符串?

时间:2015-05-28 03:54:58

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

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

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

在Azure网站中,可以在门户中设置连接字符串,并在下次部署时保留连接字符串。是否可以对云服务执行相同的操作?

3 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:2)

现在应该可以使用Azure Key Vault。我没有尝试过 - 但是计划 - 但这是一个关于getting started with key vault然后using key vault from a web app的好教程。对于云服务,这是否完全相同,我不确定。

答案 2 :(得分:0)

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

  

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

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

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

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