В последнее время облачные вычисления стали основой ИТ-инфраструктуры. Хотя локальные вычисления, несомненно, сохраняют важную роль, размещаемые решения завоевывают популярность благодаря их масштабируемости, эластичности и экономии средств, которые стали критически важными для динамичных организаций. Это особенно справедливо в отношении управления данными.
SQL Azure — хороший пример подобной платформы облачных вычислений. SQL Azure – это мощная знакомая инфраструктура для хранения, управления и анализа данных. Она также предоставляет преимущества облачных вычислений. Общая размещенная инфраструктура помогает уменьшить как прямые, так и косвенные издержки, модель оплаты текущих доходов позволяет достигнуть большей эффективности, а высокая доступность и отказоустойчивость являются встроенными функциями.
Несмотря на многочисленные преимущества облачных вычислений, перенос данных в облачное решение, такое как SQL Azure, меняет подход к использованию концепций управления ИТ, например безопасностью. Модель безопасности может отличаться, но все равно необходимо учитывать множество факторов для обеспечения максимальной безопасности данных, включая методы управления доступом, проверки подлинности и шифрования.
Начало работы с SQL Azure
Если раньше вы не использовали SQL Azure, начать работу очень просто. Это особенно верно, если вы уже знакомы с традиционными инструментами управления SQL Server, например SQL Server Management Studio (которую, начиная с версии SQL Server 2008 R2, также можно использовать для управления экземплярами SQL Azure).
Первый шаг – настройка учетной записи для платформы Windows Azure на портале для клиентов интерактивных служб Microsoft. Настройка предоставляет доступ к службам Windows Azure, включая Windows Azure, SQL Azure и Windows Azure AppFabric (которая предоставляет разработчикам средства для соединения приложений и служб за рамками границ организации и сети).
После настройки учетной записи можно воспользоваться панелью управления SQL Azure, посетив веб-сайт sql.azure.com. Щелкните «New Database Server» (Новый сервер баз данных), чтобы создать новый экземпляр SQL Azure.
Управление сетевым доступом
Для защиты данных брандмауэр SQL Azure предотвращает доступ к базам данных до предоставления доступа с определенных компьютеров. Доступ через брандмауэр SQL Azure осуществляется на основе исходного IP-адреса. Управление осуществляется через портал управления платформой Windows Azure (см. рис. 1) или непосредственно в главной базе данных с хранимыми процедурами.
Настройте правила брандмауэра SQL Azure, выполнив следующие действия.
- Войдите в систему портала управления платформой Windows Azure.
- На левой панели щелкните «Database» (База данных).
- На левой панели разверните подписку и выберите сервер SQL Azure, для которого необходимо настроить правила брандмауэра.
- Щелкните «Firewall Rules» (Правила брандмауэра), чтобы отобразить список правил.
- Щелкните «Add» (Добавить), чтобы создать новое правило брандмауэра. Чтобы предоставить другим службам Windows доступ к этому серверу SQL Azure, выберите «Allow other Windows Azure services to access this server» (Разрешить другим службам Windows Azure доступ к этому серверу). Будет создано правил с диапазоном IP-адресов «0.0.0.0 – 0.0.0.0». Этот процесс можно использовать для обновления и удаления правил.
Примечание. Все правила брандмауэра должны иметь уникальные имена (которые не учитывают регистр).
Рис. 1. Настройка правила брандмауэра в SQL Azure.
Дополнительные сведения о настройке правил брандмауэра через хранимые процедуры SQL приведены в разделе Изменение правил брандмауэра с использованием T-SQL.
Служба SQL Azure доступна через TCP-соединение, порт 1433. В зависимости от существующих правил брандмауэра также может потребоваться настройка клиентских компьютеров для разрешения исходящий доступ через этот порт. Дополнительные сведения об этом процессе приведены в разделе Настройка брандмауэра на стороне клиента.
Проверка подлинности SQL
Метод проверки подлинности в SQL Azure основан на традиционной проверке подлинности SQL Server. Проверка подлинности Windows не поддерживается (интегрированная безопасность). Учетные данные необходимо указывать при каждом подключении к SQL Azure.
При создании нового сервера базы данных в SQL Azure появится запрос на создание имени входа и пароля участника уровня сервера. Это эквивалентно учетной записи системного администратора SQL Server. Можно создать дополнительные учетные данные с использованием T-SQL через Database Manager for SQL Azure или SQL Server Management Studio 2008 R2.
Можно создавать и удалять учетные записи через главную базу данных, используя команду CREATE LOGIN. Например, подключитесь к главной базе данных, используя Database Manager for SQL Azure или SQL Server Management Studio, и выполните следующий запрос:
--create a login named "testlogin"
CREATE LOGIN testlogin WITH password='Passw0rd!';
Можно запросить существующие учетные записи, используя команду, показанную на рис. 2.
Рис. 2. Запрос учетных данных SQL Server с помощью Database Manager for SQL Azure.
После создания учетных записей можно создать пользователей уровня сервера, связанных с этими учетными записями, и присвоить всем пользователям определенные разрешения уровня базы данных. Чтобы создать пользователя для определенной базы данных, подключитесь к соответствующей базе данных и выполните следующую команду:
CREATE USER testuser FROM LOGIN testlogin;
Затем можно назначить разрешения, используя следующие команды:
EXEC sp_addrolemember 'db_datareader', 'testuser';
Полный список ролей приведен в статье Роли уровня базы данных. Следует учесть, что при использовании инструкций CREATE/ALTER/DROP LOGIN и CREATE/ALTER/DROP USER (с параметром FOR/FROM LOGIN) каждая инструкция должна быть единственной в пакете T-SQL. В противном случае произойдет ошибка.
Шифрование подключения
SQL Azure передает данные с использованием потоков табличных данных (TDS) по соединению SSL. SQL Azure не поддерживает незашифрованные подключения и имеет подписанный сертификат, выпущенный центром сертификации. Эти факторы также помогают обеспечить защиту передачи данных и предотвратить сетевые атаки с посредником (man-in-the-middle attacks).
Подтверждение шифрования происходит в потоке PRELOGIN протокола TDS. Это требуется для всей клиентский связи с SQL Azure, включая SQL Server Management Studio и приложения через ADO.NET.
Для подключения шифрования от SQL Server Management Studio выполните следующие действия.
- Откройте SQL Server Management Studio.
- В обозревателе объектов щелкните «Connect» (Подключиться), затем выберите «Database Engine» (Ядро СУБД).
- В «Connect to Server» (Подключение к серверу) щелкните «Connection Properties» (Свойства подключения).
- Выберите «Encrypt connection» (Шифровать соединение) (см. рис. 3).
Рис. 3. Шифрование соединения к SQL Azure в SQL Server Management Studio.
Для проверки сертификата с помощью кода приложения ADO.NET установите Encrypt=True и TrustServerCertificate=False в строке подключения к базе данных.
Шифрование данных
В настоящий момент SQL Azure не поддерживает стандартные механизмы шифрования данных, поддерживаемые SQL Server. В число механизмов входят прозрачное шифрование данных, асимметричные ключи, симметричные ключи и функции Transact-SQL, такие как ENCRYPTBYPASSPHRASE and DECRYPTBYPASSPHRASE, CREATE/ALTER/DROP DATABASE ENCRYPTION KEY и CREATE/ALTER/DROP MASTER KEY.
При использовании SQL Azure требуется шифрование и расшифровка на уровне приложения. Другими словами, ваше приложение ответственно за шифрование и расшифровку данных при отправке и получении данных от SQL Azure.
При размещении определенных приложений и данных в облаке необходимо быть осведомленным о защите данных. По-прежнему необходимо участие в облачной архитектуре системы безопасности. Всегда необходима защита — при переходе на платформу облачных вычислений меняются только методы. Дополнительные ресурсы по этой теме доступны в статье Безопасность: рекомендации и ограничения (база данных SQL Azure).
Следуя рекомендациям по управлению учетными записями и подключениями, можно обеспечить использование всех преимуществ переноса данных в облако. Не требуется нарушать безопасность и защиту важной бизнес-информации.