Настройка подключения 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-соединение). Затем нажмите кнопку Сохранить.
Чтобы проверить правильность настройки, на странице Обзор просмотрите индикатор 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.
- Дополнительные сведения о настройке TLS