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

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

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

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

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

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

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

Diagram that shows an overview of how the firewall works.

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

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

Например, если приложение подключается к драйверу базы данных Java Подключение ivity (JDBC) для База данных Azure для 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 "adminuser", database "postgresql", SSL

Примечание.

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

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

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

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

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

Важно!

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

Screenshot that shows selections for allowing access to Azure services in the portal.

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

Помимо использования портала 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: FATAL: password authentication failed for user "yourusername"

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

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

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

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

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