Конфигурационните настройки на Azure По-сигурни от Web.Config?

Използвам облачни услуги на Azure, а не уеб сайтове.

Бих искал да знам дали съхраняването на чувствителни данни (пароли) в настройките за конфигурация на услугата Azure е безопасно.

Наистина не искам да прилагам поредицата от блогове от 4 части, необходима за шифроване на web.config в Azure Web Roles, така че мисля, че мога просто да запазя настройките си в Azure config и след това да получа достъп до тях чрез RoleEnvironment.GetConfigurationSettingValue().

Тези настройки са в конфигурационен файл, много подобен на web.config, така че въпросът ми е дали този конфигурационен файл просто се използва за изграждане на облачната услуга и след това се изхвърля, или остава на диска по време на живота на екземпляра (като по този начин излага чувствителни данни да атакуваш).

Харесва ми възможността да актуализирам тези настройки по време на изпълнение през портала и считам портала за сигурна крайна точка, така че съм съгласен с него. Въпреки това, ако файлът остане на диска, той не е по-сигурен от файла web.config IMHO.


person ramseyjacob    schedule 29.07.2014    source източник


Отговори (2)


Ние шифроваме/дешифрираме конфигурационните настройки на Azure и друго съдържание, като използваме сертификата на домейна, инсталиран на уеб ролите. Публикувах пълен пример в моя блог тук: Securing Azure ServiceConfiguration стойности за Enterprise Deployment.

person viperguynaz    schedule 29.07.2014
comment
благодаря за публикацията, попаднах на публикацията ви в блога по време на моето търсене в Google, но исках да избегна това, ако е възможно. Дано помогне на някой друг! - person ramseyjacob; 30.07.2014

Създадох заявка за функция: http://feedback.azure.com/forums/34192--general-feedback/suggestions/9025255-certificate-based-settings-encryption

Това е подобно (но по-идиоматично, 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() безпроблемно биха дешифрирали стойността с помощта на посочения сертификат.

Колко прекрасно би било...

person Igor Gatis    schedule 26.07.2015