我使用的是Azure云服务,而不是网站。
我想知道在Azure服务配置设置中存储敏感数据(密码)是否安全。
我真的不想实现加密Azure Web角色中的web.config所需的4部分博客系列,因此我认为我可以将我的设置保留在Azure配置中然后访问他们通过RoleEnvironment.GetConfigurationSettingValue()
。
这些设置在配置文件中很像web.config,所以我的问题是这个配置文件是仅用于构建云服务然后丢弃,还是在实例的生命周期内保留在磁盘上(从而将敏感数据暴露给攻击)。
我喜欢通过Portal在运行时更新这些设置的能力,我认为Portal是一个安全的端点,所以我可以使用它。但是,如果文件保留在磁盘上,那么它就不会比web.config文件恕我直言。
答案 0 :(得分:4)
我们使用Web角色上安装的域证书加密/解密Azure配置设置和其他内容。我在我的博客上发布了一个完整的示例:Securing Azure ServiceConfiguration values for Enterprise Deployment。
答案 1 :(得分:0)
这与远程桌面插件的功能类似(但更为惯用,imho)。远程桌面添加:
<ConfigurationSettings>
<Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.Enabled" value="true" />
<Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountUsername" value="<name-of-user-account>" />
<Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountEncryptedPassword" value="<base-64-encrypted-password>" />
<Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountExpiration" value="<certificate-expiration>" />
<Setting name="Microsoft.WindowsAzure.Plugins.RemoteForwarder.Enabled" value="true" />
</ConfigurationSettings>
<Certificates>
<Certificate name="Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordEncryption" thumbprint="<certificate-thumbprint>" thumbprintAlgorithm="sha1" />
</Certificates>
RDP插件“已知”Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountEncryptedPassword
值已加密,将使用证书Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordEncryption
对其进行解密。
我的功能请求是将名为thumbprint
的属性添加到<Setting />
节点。调用CloudCloudConfigurationManager.GetSetting()
将使用指示的证书无缝解密该值。
那将是多么美妙......