1

我使用的是 Azure 云服务,而不是网站。

我想知道在 Azure 服务配置设置中存储敏感数据(密码)是否安全。

我真的不想实现在 Azure Web 角色中加密 web.config 所需的 4 部分博客系列,所以我想我可以将我的设置保留在 Azure 配置中,然后通过RoleEnvironment.GetConfigurationSettingValue().

这些设置在一个配置文件中,很像 web.config,所以我的问题是这个配置文件是否只是用于构建云服务然后被丢弃,或者它是否在实例的生命周期中保留在磁盘上(从而暴露敏感数据去攻击)。

我喜欢在运行时通过门户更新这些设置的能力,并且我认为门户是一个安全的端点,所以我可以接受。但是,如果文件保留在磁盘上,那么它并不比 web.config 文件更安全,恕我直言。

4

2 回答 2

4

我们使用安装在 Web 角色上的域证书加密/解密 Azure 配置设置和其他内容。我在我的博客上发布了一个完整的示例:保护企业部署的 Azure ServiceConfiguration 值

于 2014-07-29T16:28:12.517 回答
0

我创建了一个功能请求: http: //feedback.azure.com/forums/34192--general-feedback/suggestions/9025255-certificate-based-settings-encryption

这与远程桌面插件的功能相似(但更惯用,恕我直言)。远程桌面添加:

<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对其进行解密。

我的功能请求是添加名为nodethumbprint的属性。<Setting />调用CloudCloudConfigurationManager.GetSetting()将使用指定的证书无缝解密该值。

那将是多么美妙……

于 2015-07-26T05:12:47.617 回答