Original

You are currently reviewing an older revision of this page.
Go to current version

SQL Azure Database является "облачным" сервисом баз данных от Microsoft. SQL Azure предоставляет доступную по Интернет функциональность баз данных как сервис. Основанные на "облачных" технологиям решения баз данных, такие как SQL Azure, могут принести множество преимуществ, включая быстрое развертывание, экономичное масштабирование, высокую доступность и сокращение издержек на управление. В данном документе приведены рекомендации по обеспечению безопасности для клиентов, подключающихся к SQL Azure Database и разрабатывающих безопасные приложения с SQL Azure.

Протокол Tabular Data Stream (TDS) используется всеми инструментами и клиентскими библиотеками, осуществляющими взаимодействие с серверами SQL Server и SQL Azure. Сервис SQL Azure доступен только по стандартному порту TCP/1433, используемому протоколом TDS. SQL Azure имеет два типа контроля доступа: SQL Authentification и брандмауэр на сервере. Кроме этого, вы можете настроить брандмауэр на клиенте.

 Note
Если вы хотите принять участие в написании содержания этой страницы, используйте вкладку Edit (необходимо войти в систему). Если же вы хотите предоставить свой отзыв, напишите либо на e-mail azuredocs@microsoft.com либо напишите комментарий.

Брандмауэр на клиенте

Сетевые брандмауэры и другие средства обеспечения безопасности могут ограничить исходящий доступ к SQL Azure из сети клиента. Клиенты должны разрешить в настройке своей среды разрешение на исходящие TCP-соединения по порту TCP/1433 для того, чтобы позволить приложениям и инструментарию подключаться к SQL Azure.

В некоторых сетях разрешен трафик для любого подключения, которое иниицируется изнутри инфраструктуры, но в сетях с бОльшими ограничениями трафик ограничен. Клиенту необходимо внешним образом разрешить трафик с IP SQL Azure в собственных сетях в зависимости от того, на сколько это позволяют сделать политики разрешения доступа. Другими словами, если клиент разрешает исходящий трафик по TCP/1433 для IP SQL Azure, ему также необходимо разрешить входящий трафик с тех же IP по тому же порту.
Более удобным может быть разрешение подключений по TCP/1433 для диапазона публичных адресов Microsoft вместо указания конкретного IP SQL Azure. Это позволяет добиться большой гибкости - это уменьшает затраты по контролю доступа в случае добавления IP SQL Azure.

Например, точка входа TDS для датацентра SQL Azure North Central US - data.ch1-1.database.windows.net, имеет IP 207.46.203.22. С помощью сервиса http://ws.arin.net/whois/?queryinput=207.46.203.22 можно обнаружить диапазон для IP Microsoft для этого IP: 207.46.0.0/16.

Пример настройки ACL для разрешения подключений на целый диапазон IP для Microsoft SQL Azure Service.

Inbound ACL (outgoing traffic): permit tcp any gt 1023 host <SQL Azure IP> 1433 Outbound ACL (return traffic): permit tcp host <SQL Azure IP> 1433 any gt 1023 established 

Использование тега “established” для ACL для исходящего трафика, как показано выше,  возвратит трафик для клиента для подключения, установленного изнутри клиентской инфраструктуры. Другими словами, трафик не будет разрешен до тех пор, пока подключение не будет инициировано изнутри клиентской инфраструктуры.
Обратите внимание: Входящие подключения не нужны и не рекомендуются.

Возможно, необходимо будет настроить прокси-сервера, разрешив исходящий трафик для протокола TDS по TCP/1433. Клиентское прокси-ПО, такое как клиент Microsoft ISA, возможно, придется настроить для разрешения компьютеров-клиентов на использование прокси-серверов для исходящих подключений.
Опционально: Если у вас есть локальные SQL Server, которым необходимо осуществлять обмен информацией с SQL Azure для синхронизации данных или по другим причинам, убедитесь, что компьютеры имеют "белые" IP. 


Брандмауэр на сервере

На Windows Azure Platform Management Portal настройте брандмауэр SQL Azure для разрешения подключений с вашего IP и/или из Windows Azure. Подробнее по конфигурации брандмауэра – How to configure firewall и SQL Azure firewall.

Всегда используйте формат логина loginname@Servername так как разные инструменты реализуют TDS по-разному. Например, если имя вашего сервера mv2abek9r7.database.windows.net и логин администратора testsa, логин должен быть testsa@mv2abek9r7.


SQL Authenication

SQL Azure Database поддерживает только SQL Server Authentication. Windows Authentication (integrated security) не поддерживается. Пользователи должны предоставлять учетные данные (логин и пароль) при каждом подключении к SQL Azure.
Создайте подходящие логины на вашем сервере SQL Azure. После развертывания сервера SQL Azure создайте пользо��ателя администратора, имеющего администраторские права, подключитесь к базе данных master на вашем сервере SQL Azure с помощью SQL Server Management Studio R2 и воспользуйтесь скриптами CREATE LOGIN для создания пользователей и ролей. Подробнее про управление логинами: Managing databases and logins in SQL Azure

Разработчики и пользователи баз данных могут использовать логины, созданные выше для подключения к SQL Azure. 


Дополнительные рекомендации:

  • При подключении к SQL Azure используйте новейшие версии инструментария и библиотек.
  • Настройте брандмауэр на разрешение подключений только с определенных IP-адресов.
  • Предотвращайте инъекции SQL с помощью параметризированных запросов.
  • Сервер SQL Azure является всего лишь логической группой баз данных. Это не физический SQL Server. Создание множества серверов не даст преимущества в производительности. Вы можете создать множество серверов если вы хотите объединить базы данных в логические юниты или если вы хотите иметь раздельные счета за каждую базу данных.

Ссылки

Автор оригинальной статьи Dinakar Nethi.
Revert to this revision