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

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

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

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

Примечание

На основе отзывов клиентов мы продлили прекращение поддержки корневого сертификата для существующего корневого ЦС Балтимора до 30 ноября 2022 г. (30.11.2022 г.).

Важно!

Срок действия корневого сертификата SSL истекает с декабря 2022 г. (12/2022). Обновите приложение, чтобы использовать новый сертификат. Дополнительные сведения см. в разделе Запланированные обновления сертификатов

Применение 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-подключений

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

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 для государственных организаций, Azure для Китая и 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.