Поделиться через


Общедоступный доступ в 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 не ведет себя должным образом, рассмотрите следующие моменты:

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

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

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

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

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

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

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

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

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