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


Общие сведения о сети для Базы данных Azure для PostgreSQL с общедоступным доступом (разрешенные IP-адреса)

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

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

  • Частный доступ (интеграция виртуальной сети)
  • Общедоступный доступ (разрешенные IP-адреса) и частная конечная точка

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

  • Подключения с разрешенных IP-адресов должны проходить проверку подлинности на экземпляре гибкого сервера базы данных Azure для PostgreSQL с действительными учетными данными.
  • Для вашего сетевого трафика применяется шифрование подключения.
  • Для сервера используется полное доменное имя (FQDN). Для свойства hostname в строках подключения вместо IP-адреса рекомендуется использовать полное доменное имя.
  • Оба параметра управляют доступом на уровне сервера, а не на уровне базы данных или таблицы. Свойства роли PostgreSQL используются для управления доступом к базе данных, таблице и другим объектам.

Примечание.

Так как служба Базы данных Azure для PostgreSQL является управляемой службой базы данных, пользователи не предоставляют доступ к узлу или операционной системе для просмотра или изменения файлов конфигурации, таких как pg_hba.conf. Содержимое файла автоматически обновляется в зависимости от параметров сети.

Использование сети общедоступного доступа с базой данных Azure для PostgreSQL

При выборе метода общедоступного доступа к гибкому экземпляру сервера Azure Database для PostgreSQL производится доступ через общедоступную конечную точку в интернете. Общедоступная конечная точка — это общедоступный DNS-адрес. Фраза разрешенные IP-адреса обозначает диапазон IP-адресов, которым вы предоставили разрешения на доступ к серверу. Эти разрешения называются правилами брандмауэра.

Выберите вариант организации сети, если вам нужны перечисленные ниже возможности.

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

Характеристики общедоступного метода доступа указаны ниже.

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

  • Гибкий экземпляр сервера Базы данных Azure для PostgreSQL имеет общедоступное разрешаемое DNS-имя.

  • Гибкий экземпляр сервера Базы данных Azure для PostgreSQL не входит в одну из виртуальных сетей Azure.

  • Сетевой трафик к серверу и с нее не проходит через частную сеть. Трафик использует общие пути Интернета.

Правила брандмауэра

Правила брандмауэра на уровне сервера применяются ко всем базам данных в одном экземпляре гибкого сервера Базы данных Azure для PostgreSQL. Если 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 "adminuser", database "postgresql", SSL

Примечание.

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

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

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

Разрешить все IP-адреса Azure

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

Чтобы включить этот параметр из портал Azure, на панели "Сеть" установите флажок "Разрешить общедоступный доступ" из любой службы Azure в Azure, а затем нажмите кнопку "Сохранить".

Внимание

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

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

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

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

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

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

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

Имя хоста

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

Пример, где в качестве имени узла используется полное доменное имя: hostname = servername.postgres.database.azure.com. По возможности избегайте использования адресов hostname = 10.0.0.4 (частный) и hostname = 40.2.45.67 (общедоступный).

Исходящие IP-адреса для конфигурации брандмауэра

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

Поиск IP-адреса сервера

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

  • Используя разрешение DNS, можно определить полное доменное имя сервера (servername.postgres.database.azure.com) для получения текущего IP-адреса. Используйте инструменты, такие как nslookup или dig.

    nslookup servername.postgres.database.azure.com
    
  • На портале Azure перейдите к гибкому экземпляру сервера Базы данных Azure для PostgreSQL на портале Azure. Общедоступный IP-адрес сервера не отображается напрямую, но его можно найти, разрешив полное доменное имя сервера.

  • С помощью Azure CLI: Вы можете использовать Azure CLI для получения сведений о сервере и разрешения имени узла:

    az postgres flexible-server show --resource-group myResourceGroup --name myServerName
    

Важные рекомендации по исходящим подключениям

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

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

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

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