Настройка параметров безопасности для службы разделения и объединения

Применимо к:База данных SQL Azure

Для использования службы разделения и объединения необходимо правильно настроить параметры безопасности. Служба является частью функции эластичного масштабирования базы данных SQL Azure. Дополнительные сведения см. в руководстве по эластичному масштабированию службы разбиения и объединения.

Настройка сертификатов

Сертификаты настраиваются двумя способами.

  1. Настройка TLS/SSL-сертификата
  2. Настройка сертификатов клиентов

Получение сертификатов

Сертификаты можно получать от общих центров сертификации (ЦС) или в службе сертификации Windows. Это наиболее предпочтительные способы получения сертификатов.

Если эти варианты недоступны, можно создавать самозаверяющие сертификаты.

Инструменты для создания сертификатов

Запуск инструментов

Настройка TLS/SSL-сертификата

TLS/SSL-сертификат требуется для шифрования при обмене данными и для проверки подлинности сервера. Выберите наиболее подходящий из этих трех сценариев и выполните все шаги.

Создание самозаверяющего сертификата

  1. Создание самозаверяющего сертификата
  2. Создание PFX-файла для самозаверяющего TLS/SSL-сертификата
  3. Передача TLS/SSL-сертификата в облачную службу
  4. Обновление TLS/SSL-сертификата в файле конфигурации службы
  5. Импорт центра сертификации TLS/SSL

Использование существующего сертификата из хранилища сертификатов

  1. Экспорт TLS/SSL-сертификата из хранилища сертификатов
  2. Передача TLS/SSL-сертификата в облачную службу
  3. Обновление TLS/SSL-сертификата в файле конфигурации службы

Использование существующего сертификата в PFX-файле

  1. Передача TLS/SSL-сертификата в облачную службу
  2. Обновление TLS/SSL-сертификата в файле конфигурации службы

Настройка сертификатов клиентов

Для проверки подлинности запросов к службе требуются сертификаты клиентов. Выберите наиболее подходящий из этих трех сценариев и выполните все шаги.

Отключение сертификатов клиента

  1. Отключение аутентификации на основе сертификата клиента

Выдача новых самозаверяющих сертификатов клиента

  1. Создание центра самозаверяющей сертификации
  2. Передача сертификата ЦС в облачную службу
  3. Обновление сертификата ЦС в файле конфигурации службы
  4. Выдача сертификатов клиентов
  5. Создание PFX-файлов для сертификатов клиента
  6. Импорт сертификата клиента
  7. Копирование отпечатков сертификатов клиента
  8. Настройка разрешенных клиентов в файле конфигурации службы

Использование существующих сертификатов клиентов

  1. Find CA Public Key
  2. Передача сертификата ЦС в облачную службу
  3. Обновление сертификата ЦС в файле конфигурации службы
  4. Копирование отпечатков сертификатов клиента
  5. Настройка разрешенных клиентов в файле конфигурации службы
  6. Настройка проверки отзыва сертификата клиента

Разрешенные IP-адреса

Доступ к конечным точкам службы может быть ограничен для определенных диапазонов IP-адресов.

Настройка шифрования для хранилища

Сертификат необходим для шифрования учетных данных, которые хранятся в хранилище метаданных. Выберите наиболее подходящий из этих трех сценариев и выполните все шаги.

Использование нового самозаверяющего сертификата

  1. Создание самозаверяющего сертификата
  2. Создание PFX-файла для самозаверяющего сертификата шифрования
  3. Передача сертификата шифрования в облачную службу
  4. Обновление сертификата шифрования в файле конфигурации службы

Использование существующего сертификата из хранилища сертификатов

  1. Экспорт сертификата шифрования из хранилища сертификатов
  2. Передача сертификата шифрования в облачную службу
  3. Обновление сертификата шифрования в файле конфигурации службы

Использование существующего сертификата в PFX-файле

  1. Передача сертификата шифрования в облачную службу
  2. Обновление сертификата шифрования в файле конфигурации службы

Конфигурация по умолчанию

В конфигурации по умолчанию запрещен любой доступ к конечной точке HTTP. Это рекомендуемый параметр, так как запросы к этим конечным точкам могут содержать конфиденциальную информацию, например учетные данные базы данных. В конфигурации по умолчанию разрешен доступ к конечной точке HTTPS. Этот параметр в дальнейшем может быть ограничен.

Изменение конфигурации

Применяемые группы правил контроля доступа и конечная точка настраиваются в разделе <EndpointAcls>файла конфигурации службы.

<EndpointAcls>
    <EndpointAcl role="SplitMergeWeb" endPoint="HttpIn" accessControl="DenyAll" />
    <EndpointAcl role="SplitMergeWeb" endPoint="HttpsIn" accessControl="AllowAll" />
</EndpointAcls>

Правила в группе управления доступом настраиваются в разделе <AccessControl name=""> файла конфигурации службы.

Описание формата содержится в документации по спискам управления сетевым доступом. Например, правила, позволяющие разрешить получение доступа к конечной точке HTTPS только IP-адресам в диапазоне от 100.100.0.0 до 100.100.255.255, будут выглядеть следующим образом:

<AccessControl name="Retricted">
    <Rule action="permit" description="Some" order="1" remoteSubnet="100.100.0.0/16"/>
    <Rule action="deny" description="None" order="2" remoteSubnet="0.0.0.0/0" />
</AccessControl>
<EndpointAcls>
    <EndpointAcl role="SplitMergeWeb" endPoint="HttpsIn" accessControl="Restricted" />
</EndpointAcls>

Предотвращение отказа в обслуживании

Существует два различных механизма, поддерживаемых для выявления и предотвращения атак в виде отказа в обслуживании.

  • Ограничение количества одновременных запросов на удаленный узел (по умолчанию отключено)
  • Ограничение частоты доступа в расчете на удаленный узел (включено по умолчанию)

Они основаны на функциях, более подробно документированных в Dynamic IP Security в IIS. При изменении этой конфигурации имейте в виду следующие факторы.

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

Ограничение числа одновременных обращений

Ниже перечислены параметры, с помощью которых настраивается их действие.

<Setting name="DynamicIpRestrictionDenyByConcurrentRequests" value="false" />
<Setting name="DynamicIpRestrictionMaxConcurrentRequests" value="20" />

Измените значение DynamicIpRestrictionDenyByConcurrentRequests на true, чтобы включить эту защиту.

Ограничение частоты доступа

Ниже перечислены параметры, с помощью которых настраивается их действие.

<Setting name="DynamicIpRestrictionDenyByRequestRate" value="true" />
<Setting name="DynamicIpRestrictionMaxRequests" value="100" />
<Setting name="DynamicIpRestrictionRequestIntervalInMilliseconds" value="2000" />

Настройка ответа на отклоненный запрос

Следующий параметр позволяет настроить ответ на отклоненный запрос.

<Setting name="DynamicIpRestrictionDenyAction" value="AbortRequest" />

По вопросу иных поддерживаемых значений обратитесь к документации по динамической IP-безопасности в IIS.

Операции настройки службы сертификатов

Этот раздел предназначен только для справки. Выполните этапы настройки, описанные в следующих инструкциях:

  • Настройка TLS/SSL-сертификата
  • Настройка сертификатов клиентов

Создание самозаверяющего сертификата

Выполните:

makecert ^
  -n "CN=myservice.cloudapp.net" ^
  -e MM/DD/YYYY ^
  -r -cy end -sky exchange -eku "1.3.6.1.5.5.7.3.1" ^
  -a sha256 -len 2048 ^
  -sv MySSL.pvk MySSL.cer

Чтобы настроить:

  • -n с URL-адресом службы. Поддерживаются подстановочные знаки ("CN=*.cloudapp.net") и альтернативные имена ("CN=myservice1.cloudapp.net, CN=myservice2.cloudapp.net").
  • -e со сроком действия сертификата Создайте надежный пароль и укажите его при появлении запроса.

Создание PFX-файла для самозаверяющего TLS/SSL-сертификата

Выполните:

pvk2pfx -pvk MySSL.pvk -spc MySSL.cer

Введите пароль, а затем экспортируйте сертификат с этими параметрами.

  • Да, экспортировать закрытый ключ
  • Экспортировать все расширенные свойства

Экспорт TLS/SSL-сертификата из хранилища сертификатов

  • Поиск сертификата
  • Выберите "Действия" –> "Все задачи" –> "Экспортировать…"
  • Экспорт сертификата в объект . PFX-файл с этими параметрами:
    • Да, экспортировать закрытый ключ
    • По возможности включите все сертификаты в путь сертификации *Экспортировать все расширенные свойства.

Передача TLS/SSL-сертификата в облачную службу

Отправьте сертификат с существующим или созданным .PFX-файлом с помощью пары ключей TLS.

  • Введите пароль, защищающий данные закрытого ключа

Обновление TLS/SSL-сертификата в файле конфигурации службы

Обновите значения отпечатка следующего параметра в файле конфигурации службы значением отпечатка сертификата, отправленного в облачную службу.

<Certificate name="SSL" thumbprint="" thumbprintAlgorithm="sha1" />

Импорт центра сертификации TLS/SSL

Выполните эти шаги на всех учетных записях или компьютерах, которые будут взаимодействовать со службой.

  • Дважды нажмите файл .CER в проводнике Windows
  • В диалоговом окне сертификата нажмите "Установить сертификат".
  • Импортируйте сертификат в хранилище доверенных корневых центров сертификации

Отключение аутентификации на основе сертификата клиента

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

Присвойте этим параметрам значение false в файле конфигурации службы, если нужно отключить эту функцию.

<Setting name="SetupWebAppForClientCertificates" value="false" />
<Setting name="SetupWebserverForClientCertificates" value="false" />

Затем скопируйте тот же отпечаток, что и TLS/SSL-сертификат, в параметр сертификата ЦС.

<Certificate name="CA" thumbprint="" thumbprintAlgorithm="sha1" />

Создание центра самозаверяющей сертификации

Выполните следующие шаги для создания самозаверяющего сертификата, выступающего в качестве центра сертификации.

makecert ^
-n "CN=MyCA" ^
-e MM/DD/YYYY ^
 -r -cy authority -h 1 ^
 -a sha256 -len 2048 ^
  -sr localmachine -ss my ^
  MyCA.cer

Как настроить

  • -e с датой окончания срока действия сертификации

Поиск открытого ключа ЦС

Все сертификаты клиента должны быть выданы центром сертификации, уполномоченным данной службой. Найдите открытый ключ в том центре сертификации, который выдал сертификаты клиента, использование которых предусмотрено для проверки подлинности, чтобы передать его в облачную службу.

Если файл с открытым ключом недоступен, экспортируйте его из хранилища сертификатов:

  • Поиск сертификата
    • Поиск сертификата клиента, выданного этим же центром сертификации
  • Дважды щелкните сертификат.
  • Перейдите на вкладку "Путь сертификации" в диалоговом окне "Сертификат".
  • Дважды щелкните запись центра сертификации в пути.
  • Запишите свойства сертификата.
  • Закройте диалоговое окно Сертификат .
  • Поиск сертификата
    • Найдите центр сертификации, записанный ранее.
  • Выберите "Действия" –> "Все задачи" –> "Экспортировать…"
  • Экспорт сертификата в объект . CER с этими параметрами:
    • Нет, не экспортировать закрытый ключ
    • По возможности включить все сертификаты в путь сертификации.
    • Экспортировать все расширенные свойства.

Передача сертификата ЦС в облачную службу

Передайте сертификат с существующим или созданным файлом .CER при помощи открытого ключа центра сертификации.

Обновление сертификата ЦС в файле конфигурации службы

Обновите значения отпечатка следующего параметра в файле конфигурации службы значением отпечатка сертификата, отправленного в облачную службу.

<Certificate name="CA" thumbprint="" thumbprintAlgorithm="sha1" />

Обновите значение следующего параметра значением того же отпечатка.

<Setting name="AdditionalTrustedRootCertificationAuthorities" value="" />

Выдача сертификатов клиентов

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

На том же компьютере, где был создан и хранился самозаверяющий сертификат ЦС, необходимо выполнить следующие шаги.

makecert ^
  -n "CN=My ID" ^
  -e MM/DD/YYYY ^
  -cy end -sky exchange -eku "1.3.6.1.5.5.7.3.2" ^
  -a sha256 -len 2048 ^
  -in "MyCA" -ir localmachine -is my ^
  -sv MyID.pvk MyID.cer

Настройка.

  • -n с идентификатором клиента, который будет проходить проверку подлинности с этим сертификатом
  • -e с датой окончания срока действия сертификата
  • MyID.pvk и MyID.cer с уникальными именами файлов для этого сертификата клиента

Эта команда запросит создать пароль и однократно его использовать. Выбирайте надежные пароли.

Создание PFX-файлов для сертификатов клиента

Для каждого созданного сертификата клиента выполните следующее.

pvk2pfx -pvk MyID.pvk -spc MyID.cer

Настройка.

MyID.pvk and MyID.cer with the filename for the client certificate

Введите пароль, а затем экспортируйте сертификат с этими параметрами.

  • Да, экспортировать закрытый ключ
  • Экспортировать все расширенные свойства
  • Лицо, которому выдается данный сертификат, должно выбрать пароль экспорта

Импорт сертификата клиента

Каждый пользователь, которому был выдан сертификат клиента, должен импортировать пару ключей в те компьютеры, которые он будет использовать для обмена данными со службой:

  • Дважды щелкните .PFX-файл в проводнике Windows
  • Импортируйте сертификат в личное хранилище по крайней мере с помощью этого параметра:
    • Включить все расширенные свойства проверки

Копирование отпечатков сертификатов клиента

Каждый пользователь, которому был выдан сертификат клиента, должен выполнить следующие шаги для получения отпечатка своего сертификата, который будет добавлен в файл конфигурации службы:

  • Запустите certmgr.exe
  • Выберите вкладку Личные
  • Дважды щелкните сертификат клиента, который будет использоваться для проверки подлинности
  • В открывшемся диалоговом окне сертификата перейдите на вкладку "Подробности"
  • Убедитесь, что в разделе "Показать" выбран вариант "Все"
  • Выберите в списке поле с именем "Отпечаток"
  • Скопируйте значение отпечатка
    • Удалите невидимые символы Unicode перед первой цифрой
    • Удалить все пробелы

Настройка разрешенных клиентов в файле конфигурации службы

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

<Setting name="AllowedClientCertificateThumbprints" value="" />

Настройка проверки отзыва сертификата клиента

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

<Setting name="ClientCertificateRevocationCheck" value="NoCheck" />

Создание PFX-файла для самозаверяющих сертификатов шифрования

Для сертификата шифрования выполните следующую команду:

pvk2pfx -pvk MyID.pvk -spc MyID.cer

Настройка.

MyID.pvk and MyID.cer with the filename for the encryption certificate

Введите пароль, а затем экспортируйте сертификат с этими параметрами.

  • Да, экспортировать закрытый ключ
  • Экспортировать все расширенные свойства
  • При отправке сертификата в облачную службу потребуется пароль.

Экспорт сертификата шифрования из хранилища сертификатов

  • Поиск сертификата
  • Выберите "Действия" –> "Все задачи" –> "Экспортировать…"
  • Экспорт сертификата в объект . PFX-файл с этими параметрами:
    • Да, экспортировать закрытый ключ
    • Включить по возможности все сертификаты в путь сертификации
  • Экспортировать все расширенные свойства

Передача сертификата шифрования в облачную службу

Отправьте сертификат с существующим или созданным .PFX-файлом с помощью пары ключей SSL.

  • Введите пароль, защищающий данные закрытого ключа

Обновление сертификата шифрования в файле конфигурации службы

Замените значения отпечатка следующих параметров в файле конфигурации службы значением отпечатка сертификата, отправленного в облачную службу.

<Certificate name="DataEncryptionPrimary" thumbprint="" thumbprintAlgorithm="sha1" />

Стандартные операции сертификата

  • Настройка TLS/SSL-сертификата
  • Настройка сертификатов клиентов

Поиск сертификата

Выполните следующие действия:

  1. Запустите mmc.exe.
  2. Файл —> Добавить/удалить оснастку...
  3. Выберите Сертификаты.
  4. Нажмите кнопку Добавить.
  5. Выберите расположение хранилища сертификатов.
  6. Нажмите кнопку Готово.
  7. Щелкните OK.
  8. Разверните узел Сертификаты.
  9. Разверните хранилище сертификатов.
  10. Разверните дочерний узел сертификата.
  11. Выберите сертификат из списка.

Экспорт сертификата

В мастере экспорта сертификатов:

  1. Нажмите кнопку Далее.
  2. Выберите Да, а затем — Export the private key (Экспортировать закрытый ключ).
  3. Нажмите кнопку Далее.
  4. Выберите нужный формат выходного файла.
  5. Проверьте необходимые параметры.
  6. Проверьте Пароль.
  7. Введите надежный пароль и подтвердите его.
  8. Нажмите кнопку Далее.
  9. Введите или выберите имя файла, в котором будет храниться сертификат (используйте расширение .PFX).
  10. Щелкните Далее.
  11. Нажмите кнопку Готово.
  12. Щелкните OK.

Импорт сертификата

В мастере импорта сертификатов:

  1. Выберите расположение хранилища.

    • Выберите Текущий пользователь , если доступ к службе будет только у тех процессов, которые запущены под учетной записью текущего пользователя.
    • Выберите Локальный компьютер , если доступ к службе будет и у других процессов на этом компьютере.
  2. Нажмите кнопку Далее.

  3. При импорте из файла подтвердите путь к файлу.

  4. При импорте .PFX-файла:

    1. Введите пароль, защищающий закрытый ключ
    2. Выберите параметры импорта
  5. Выберите "Разместить" сертификаты в следующее хранилище.

  6. Нажмите кнопку Обзор.

  7. Выберите нужное хранилище.

  8. Нажмите кнопку Готово.

    • Если хранилище доверенного корневого центра сертификации выбрано, щелкните Да.
  9. Нажмите кнопку ОК во всех диалоговых окнах.

Передача сертификата

На портале Azure:

  1. Выберите Облачные службы.
  2. Выберите облачную службу.
  3. Щелкните Сертификатыв верхнем меню.
  4. На нижней панели щелкните Передать.
  5. Выберите файл сертификата.
  6. Если это PFX-файл, введите пароль для закрытого ключа.
  7. После завершения скопируйте отпечаток сертификата из новой записи в списке.

Прочие вопросы по безопасности

Описанные в этом документе параметры TLS выполняют шифрование обмена данными между службой и ее клиентами при использовании в конечной точке HTTPS. Это важно, поскольку учетные данные для доступа к базе данных и другие конфиденциальные сведения передаются по каналу связи. Однако обратите внимание, что служба сохраняет внутреннее состояние, включая учетные данные, во внутренних таблицах базы данных SQL Azure, которые вы указали для хранения метаданных в подписке Microsoft Azure. База данных была определена как часть следующего параметра в вашем файле конфигурации службы (файл .CSCFG):

<Setting name="ElasticScaleMetadata" value="Server=…" />

Учетные данные, хранящиеся в этой базе данных, будут зашифрованы. Однако рекомендуется убедиться что веб-роли и рабочие роли развертываний службы актуальны и защищены, так как имеют доступ к базе данных метаданных и сертификату, используемому для шифрования и расшифровки сохраненных учетных данных.

Дополнительные ресурсы

Еще не используете средства эластичных баз данных? Ознакомьтесь с нашим руководством по началу работы. Возникшие вопросы вы можете задать нам на странице вопросов Microsoft Q&A по Базе данных SQL. Что касается запросов новых функций, вы можете поделиться новыми идеями или проголосовать за существующие на форуме отзывов по Базе данных SQL.