Правила брандмауэра в гибком сервере Базы данных Azure для PostgreSQL

При запуске гибкого сервера База данных Azure для PostgreSQL у вас есть два основных варианта сети: частный доступ (интеграция с виртуальной сетью) и общедоступный доступ (разрешенные IP-адреса).

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

Создайте правила брандмауэра с помощью портала Azure или с помощью команд Azure CLI. Вы должны быть владельцем подписки или участником подписки.

Правила брандмауэра на уровне сервера применяются ко всем базам данных на одном и том же База данных Azure для PostgreSQL гибком сервере. Правила не влияют на доступ к веб-сайту портала Azure.

На следующей схеме показано, как попытки подключения из Интернета и Azure должны пройти через брандмауэр, прежде чем они смогут получить доступ к базам данных Базы данных Azure для PostgreSQL:

Схема правил брандмауэра в Базе данных Azure для PostgreSQL.

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

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

Например, если приложение подключается к драйверу подключения к базе данных Java (JDBC) для Базы данных Azure для PostgreSQL, может возникнуть эта ошибка, так как брандмауэр блокирует подключение:

  • java.util.concurrent.ExecutionException: java.lang.RuntimeException:
  • org.postgresql.util.PSQLException: FATAL: нет записи pg_hba.conf для узла "123.45.67.890", пользователя "adminuser", базы данных "postgresql", SSL

Замечание

Чтобы получить доступ к гибкому серверу База данных Azure для PostgreSQL с локального компьютера, убедитесь, что брандмауэр на сетевом и локальном компьютере разрешает исходящую связь через TCP-порт 5432.

Подключение из Azure

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

Если фиксированный исходящий IP-адрес недоступен для службы Azure, рассмотрите возможность включения подключений со всех IP-адресов для центров обработки данных Azure:

  1. На портале Azure на панели Сеть установите флажок Разрешить общий доступ к этому серверу для всех служб Azure в Azure.

  2. Нажмите кнопку "Сохранить".

    Снимок экрана: страница сети с брандмауэром.

    Это важно

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

Программное управление правилами брандмауэра

Помимо использования портала Azure, правила брандмауэра можно управлять программными средствами с помощью Azure CLI.

В Azure CLI параметр правила брандмауэра, у которого начальный и конечный адреса равны 0.0.0.0, эквивалентен параметру Разрешить общий доступ из любой службы Azure в Azure к этому серверу в портале. Если правила брандмауэра отклоняют попытку подключения, приложение не достигает База данных Azure для PostgreSQL гибкого сервера.

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

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

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

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

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

  • java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: НЕ удалось выполнить проверку подлинности паролей для пользователя "yourusername"

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

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

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

  • Правила брандмауэра недоступны для формата IPv6: правила брандмауэра должны быть в формате IPv4. При указании правил брандмауэра в формате IPv6 возникает ошибка проверки.