Безопасность SQL Databases

OSzone.net » Microsoft » ИТ-инфраструктура » Облако » Безопасность SQL Databases
Автор: Александр Белоцерковский
Иcточник: MSDN
Опубликована: 10.09.2014

Microsoft Azure SQL Databases, то есть SQL Server как сервис (PaaS), имеет набор отличий от локального SQL Server, и самые существенные из них касаются вопросов безопасности.

Учитывая особенности реализации любого программного продукта, который предоставляется как сервис (то есть, по факту, предоставляет серьезный уровень абстракции от большого количества инфраструктурных задач), необходимо четко понимать, как работает SQL Azure, чтобы иметь представление о том, почему та или иная функциональность может быть пока не поддерживаемой.

*
Увеличить

На скриншоте видно, что клиент, обращаясь по IP к серверу SQL Databases (который, если быть точным, не является сервером, но является еще одной абстракцией над инфраструктурой – каналом с TDS), попадает на сервисный слой, в котором происходит балансировка нагрузки на один из экземпляров выполняющегося SQL Azure – напомню, что, создавая один сервер SQL Azure, вы создаете целых три. Сервисный слой служит для различных высокоуровневых задач – маршрутизации запросов, развертывания и пр.

После сервисного слоя идет платформенный слой – это последний уровень абстракции над “железом”, и важно понимать, что здесь также происходит большое количество сервисной работы – именно здесь располагаются низкоуровневые сервисы, обслуживающие запросы клиентов и являющиеся, по своей сути, прослойкой до “железа”.

Легко заметить разительное отличие от стандартной архитектуры локального SQL Server, где нет сервисного слоя либо он объединен с платформенным. Отсюда вытекает большинство отличий, в том числе касающихся безопасности.

Как уже было написано, SQL Azure Databases использует стандартный протокол SQL Server Tabular Data Stream (TDS), но разрешены исключительно шифрованные коммуникации. В SQL Server 2008 было введено новое средство: прозрачное шифрование данных (transparent data encryption, TDE), позволяющее полностью шифровать данные с минимальными усилиями. Однако на данный момент SQL Azure Databases не поддерживает шифрование на уровне базы данных. Следует заметить, что в настоящее время SQL Azure Databases доступен только через TCP-соединения и только через порт 1433. Поэтому необходимо учитывать возможности шифрования ADO.NET и сертификаты. А, например, свойства соединения Encrypt = True и TrustServerCertificate = False обеспечат защиту передаваемых данных и помогут предотвратить атаки «человек посередине» (man-in-the-middle). Второе средство защиты SQL Database Azure, и, в общем-то, основное - брандмауэр SQL Azure Databases, которым изначально блокируется весь доступ к серверу SQL Azure Databases. Попытки подключения до соответствующей настройки будут безуспешны. Для начала работы с сервером SQL Azure Databases нужно зайти на портал SQL Azure и определить настройки брандмауэра для доступа к вашему серверу. Брандмауэром SQL Azure можно управлять через портал SQL Azure или напрямую в главной базе данных с помощью хранимых процедур, таких как sp_set_firewall_rule и sp_delete_firewall_rule.

Как и в любой реализации SQL Server, управление пользовательскими учетными записями — еще один аспект, который нужно жестко контролировать. Благодаря этим средствам SQL Azure является высокозащищенной управляемой платформой для приложений в облаке.

Между SQL Server и SQL Azure Databases в контексте безопасности существует список различий:

*

Резюме

SQL Azure Databases – SQL Server в режиме PaaS. Со своими ограничениями, со своими функциями, которых нет в SQL Server (в основном касающимися отказоустойчивости и автоматизации таких задач, как балансировка нагрузки), SQLAD может быть средством, которое будет использоваться вместо локального развертывания в целях абстрагирования от задач инфраструктурных, однако важно и нужно понимать, что имеющиеся ограничения должны серьезнейшим образом повлиять на процессы обсуждения и планирования разрабатываемого проекта.


Ссылка: http://www.oszone.net/24629/