Общий доступ в Azure Cosmos DB для PostgreSQL

ПРИМЕНИМО К: Azure Cosmos DB для PostgreSQL (на базе расширения базы данных Citus для PostgreSQL)

Azure Cosmos DB для PostgreSQL поддерживает три варианта сети:

  • Нет доступа
    • Это значение по умолчанию для вновь созданного кластера, если общедоступный или частный доступ не включен. Компьютеры в Azure и вне периметра не могут подключаться к узлам базы данных.
  • Открытый доступ
    • Общедоступный IP-адрес назначается узлу-координатору.
    • Доступ к узлу-координатору защищен брандмауэром.
    • При необходимости можно включить доступ ко всем рабочим узлам. В этом случае общедоступные IP-адреса назначаются рабочим узлам и защищаются тем же брандмауэром.
  • Закрытый доступ
    • Узлам кластера назначаются только частные IP-адреса.
    • Для каждого узла требуется частная конечная точка, чтобы разрешить узлам в выбранной виртуальной сети доступ к узлам.
    • Для контроля доступа можно использовать функции безопасности виртуальных сетей Azure, таких как группы безопасности сети.

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

На этой странице описывается параметр общего доступа. Сведения о частном доступе см. в статье Частный доступ в Azure Cosmos DB для PostgreSQL.

Общие сведения о брандмауэре

Брандмауэр сервера Azure Cosmos DB для PostgreSQL запрещает любой доступ к узлу координатора, пока вы не укажете, какие компьютеры имеют разрешение. Брандмауэр предоставляет доступ к серверу на основе исходного IP-адреса каждого запроса. Для настройки брандмауэра можно создать правила брандмауэра, которые указывают диапазон допустимых IP-адресов. Правила брандмауэра можно создавать на уровне сервера.

Правила брандмауэра: Эти правила позволяют клиентам получать доступ к узлу-координатору, то есть ко всем базам данных на одном логическом сервере. Правила брандмауэра уровня сервера можно настроить на портале Azure. Для создания правил брандмауэра уровня сервера необходимо быть владельцем или участником подписки.

По умолчанию брандмауэр блокирует любой доступ к узлу координатора. Чтобы использовать сервер с другого компьютера, сначала необходимо указать одно или несколько правил брандмауэра уровня сервера для обеспечения доступа к этому серверу. Используйте правила брандмауэра, чтобы определить разрешенные диапазоны IP-адресов из Интернета. Правила брандмауэра не влияют на доступ к веб-сайту портал Azure. Попытки подключения из Интернета и Azure должны пройти через брандмауэр, прежде чем они смогут получить доступ к базе данных PostgreSQL, как показано на следующей схеме:

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

Подключение из Интернета и Azure

Брандмауэр кластера определяет, кто может подключаться к узлу координатора группы. Этот брандмауэр управляет доступом по настраиваемому списку правил. Каждое правило содержит IP-адрес или диапазон адресов, с которых допускается подключение.

Если брандмауэр блокирует подключения, в приложении могут возникать ошибки. Например, при использовании драйвера JDBC для PostgreSQL возникает ошибка следующего вида:

java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: no pg\_hba.conf entry for host "123.45.67.890", user "citus", database "citus", SSL

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

Устранение неполадок брандмауэра сервера базы данных

Если доступ к службе Microsoft Azure Cosmos DB для PostgreSQL не работает должным образом, учитывайте следующие моменты:

  • Изменения в списке разрешений еще не вступили в силу: Изменения в конфигурации брандмауэра Azure Cosmos DB для PostgreSQL вступают в силу с задержкой в пять минут.

  • Пользователь не авторизован или использован неправильный пароль: Если у пользователя нет разрешений на сервере или используется неправильный пароль, подключение к серверу отклоняется. Создание параметра брандмауэра предоставляет клиентам возможность попытаться подключиться к серверу. Каждый клиент по-прежнему должен предоставлять необходимые учетные данные безопасности.

    Например, при использовании клиента JDBC может возникать следующая ошибка:

    java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: password authentication failed for user "yourusername"

  • Динамический IP-адрес: Если у вас есть подключение к Интернету с динамической IP-адресацией и у вас возникли проблемы с прохождением через брандмауэр, можно попробовать одно из следующих решений:

    • Запросите у поставщика услуг Интернета диапазон IP-адресов, назначенный клиентским компьютерам, которые обращаются к узлу-координатору, а затем добавьте диапазон IP-адресов в качестве правила брандмауэра.

    • Получите статические IP-адреса для клиентских компьютеров, а затем добавьте статические IP-адреса как правила брандмауэра.

Дальнейшие действия

Ниже перечислены статьи о создании правил брандмауэра уровня сервера и уровня базы данных.