Настройка подключения TLS в базе данных Azure для PostgreSQL. Отдельный сервер

Область применения: отдельный сервер Базы данных Azure для PostgreSQL

Внимание

База данных Azure для PostgreSQL — одиночный сервер находится на пути выхода на пенсию. Настоятельно рекомендуется выполнить обновление до База данных Azure для PostgreSQL — гибкий сервер. Дополнительные сведения о миграции на База данных Azure для PostgreSQL — гибкий сервер см. в статье "Что происходит с одним сервером База данных Azure для PostgreSQL?".

Для базы данных Azure для PostgreSQL предпочтительно подключать клиентское приложение к службе PostgreSQL с помощью протокола TLS, ранее известного как SSL. Принудительное использование TLS-подключений между сервером базы данных и клиентскими приложениями помогает обеспечить защиту от атак типа "злоумышленник в середине" за счет шифрования потока данных между сервером и приложением.

По умолчанию в службе базы данных PostgreSQL настроено обязательное использование соединения TLS. Вы можете отключить обязательное использование TLS в том случае, если клиентское приложение не поддерживает подключения типа TLS.

Внимание

Промежуточные сертификаты SSL будут обновлены начиная с 31 января 2024 г. (01.31.2024). Промежуточный сертификат — это подчиненный сертификат, выданный доверенным корнем, специально для выдачи сертификатов конечных сущностей. Результатом является цепочка сертификатов, которая начинается с доверенного корневого ЦС через промежуточный ЦС (или ЦС) и заканчивается SSL-сертификатом, выданным вам. Закрепление сертификатов — это метод безопасности, в котором принимаются только авторизованные или закрепленные сертификаты при установке безопасного сеанса. Любая попытка установить безопасный сеанс с использованием другого сертификата отклоняется. В отличие от доверенного корневого ЦС, который мы уже обновили полностью в течение текущего года, и где сертификат можно закрепить с помощью директивы проверки илипроверки полной строка подключения клиента, нет стандартного, хорошо установленного способа закрепить промежуточный ЦС. Однако существует теоретические возможности создания пользовательского стека подключения, который закрепляет промежуточные сертификаты к клиенту на различных языках программирования. Как описано выше, в маловероятном сценарии , когда вы закрепляете промежуточные сертификаты с пользовательским кодом, это изменение может повлиять на это изменение. Чтобы определить, закрепляете ли центры сертификации, см. сведения о закреплении сертификатов и службах Azure.

Применение TLS-подключений

Для всех серверов базы данных Azure для PostgreSQL, подготовленных с помощью портала Azure и интерфейса командной строки, применение TLS-соединений включается по умолчанию.

Аналогичным образом предопределенные строки подключения в разделе "Строки подключения" в настройках сервера на портале Azure содержат необходимые параметры для распространенных языков, что позволяет подключиться к серверу базы данных с помощью TLS. Значение параметра TLS зависит от соединителя. Например, может использоваться "ssl=true", "sslmode=require", "sslmode=required" или другой вариант.

Настройка применения TLS

При необходимости применение TLS-соединений можно отключить. Для повышения безопасности Microsoft Azure рекомендует всегда включать параметр Enforce SSL connection (Применять SSL-соединение).

Использование портала Azure

Войдите в сервер Базы данных Azure для PostgreSQL и выберите Безопасность подключения. Воспользуйтесь переключателем для включения или отключения параметра Enforce SSL connection (Применять SSL-соединение). Затем нажмите кнопку Сохранить.

Безопасность подключения: отключить применение TLS/SSL

Чтобы проверить правильность настройки, на странице Обзор просмотрите индикатор SSL enforce status (Состояние применения SSL).

Использование Azure CLI

Вы также можете включить или отключить параметр ssl-enforcement с помощью Azure CLI, используя значения Enabled и Disabled соответственно.

az postgres server update --resource-group myresourcegroup --name mydemoserver --ssl-enforcement Enabled

Определение состояния SSL-подключений

Вы также можете собирать все сведения об использовании SSL одного экземпляра сервера База данных Azure для PostgreSQL по процессам, клиенту и приложению с помощью следующего запроса:

SELECT datname as "Database name", usename as "User name", ssl, client_addr, application_name, backend_type
   FROM pg_stat_ssl
   JOIN pg_stat_activity
   ON pg_stat_ssl.pid = pg_stat_activity.pid
   ORDER BY ssl;

Проверка поддержки TLS-подключений приложением или платформой

Некоторые платформы приложений, использующие PostgreSQL для служб базы данных, по умолчанию не включают TLS при установке. Если на сервере PostgreSQL применяются TLS-соединения, но приложение не настроено для использования TLS, то при подключении приложения к серверу базы данных может произойти сбой. Сведения о включении TLS-подключений можно найти в документации приложения.

Приложения, требующие проверки сертификата для TLS-подключений

В некоторых случаях для безопасного подключения приложениям требуется локальный файл сертификата, созданный из файла сертификата доверенного центра сертификации. Сертификат для подключения к Базе данных Azure для сервера PostgreSQL расположен по адресу https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem. Скачайте файл сертификата и сохраните его в предпочтительном расположении.

Ознакомьтесь со следующими ссылками для сертификатов для серверов в национальных облаках: Azure для государственных организаций, Microsoft Azure, управляемых 21Vianet и Azure Для Германии.

Подключение с помощью psql

В следующем примере показано, как подключиться к серверу PostgreSQL с помощью служебной программы командной строки psql. Для принудительной проверки сертификата TLS/SSL используйте параметр sslmode=verify-full. Передайте путь к локальному файлу сертификата параметру sslrootcert.

Следующая команда является примером строки подключения psql.

psql "sslmode=verify-full sslrootcert=BaltimoreCyberTrustRoot.crt host=mydemoserver.postgres.database.azure.com dbname=postgres user=myusern@mydemoserver"

Совет

Убедитесь, что значение в параметре sslrootcert соответствует пути к сохраненному файлу сертификата.

Применение TLS в Базе данных Azure для PostgreSQL. Отдельный сервер

База данных Azure для MySQL (отдельный сервер) поддерживает шифрование для клиентов, подключающихся к серверу базы данных с помощью протокола TLS. TLS — это стандартный отраслевой протокол, который обеспечивает безопасные сетевые соединения между сервером базы данных и клиентскими приложениями, позволяя вам соблюдать нормативные требования.

Параметры протокола TLS

База данных Azure для PostgreSQL (отдельный сервер) обеспечивает возможность принудительного применения версии TLS для клиентских подключений. Чтобы принудительно применить версию TLS, используйте параметр Минимальная версия TLS. Для этого параметра можно использовать следующие значения:

Минимальная версия TLS Поддерживаемая клиентом версия TLS
TLSEnforcementDisabled (по умолчанию) TLS не требуется
TLS1_0 TLS 1.0, TLS 1.1, TLS 1.2 и более поздние версии
TLS1_1 TLS 1.1, TLS 1.2 и более поздние версии
TLS1_2 TLS 1.2 и более поздние версии

Например, если установить в качестве параметра минимальной версии TLS значение 1.0, сервер разрешит подключения клиентов, использующих TLS 1.0, 1.1, 1.2 и выше. Если же этот параметр будет иметь значение 1.2, то подключаться смогут только клиенты, использующие протокол TLS 1.2 и выше, а подключения с версиям TLS 1.0 и TLS 1.1 будут отклонены.

Примечание.

По умолчанию для базы данных Azure для PostgreSQL принудительно не задана минимальная версия TLS (параметр TLSEnforcementDisabled).

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

Сведения о настройке параметра TLS для базы данных Azure для PostgreSQL (отдельный сервер) см. в разделе Настройка параметра TLS.

Поддержка шифра одним сервером базы данных Azure для PostgreSQL

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

Поддерживаемые наборы шифров

  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

Следующие шаги

Сведения о вариантах подключения приложений см. в статье Библиотеки подключений для базы данных Azure для PostgreSQL.