Reglas de firewall de Azure Database for PostgreSQL con un único servidor

Se aplica a: Azure Database for PostgreSQL: servidor único

Importante

El servicio de servidor único de Azure Database for PostgreSQL está en proceso de retirada. Se recomienda encarecidamente actualizar a Azure Database for PostgreSQL: servidor flexible. Para más información sobre la migración al servidor flexible de Azure Database for PostgreSQL, consulte ¿Qué sucede con el servicio de servidor único de Azure Database for PostgreSQL?.

El servidor de Azure Database for PostgreSQL es seguro de forma predeterminada ya que impide todo acceso al servidor de bases de datos hasta que se especifique qué hosts IP tienen permiso para acceder a él. Asimismo, otorgan acceso al servidor según la dirección IP de origen de cada solicitud. Para configurar su firewall, cree reglas de firewall que especifiquen intervalos de direcciones IP aceptables. Puede crear reglas de firewall a nivel de servidor.

Reglas de firewall: estas reglas permiten a los clientes tener acceso a todo el servidor de Azure Database for PostgreSQL; es decir, a todas las bases de datos que se encuentren en el mismo servidor lógico. Las reglas de firewall de nivel de servidor pueden configurarse a través de Azure Portal o los comandos de la CLI de Azure. Para crear reglas de firewall en el nivel del servidor, debe ser propietario o colaborador de la suscripción.

Información general de firewalls

Todos los accesos al servidor de Azure Database for PostgreSQL se bloquean por el firewall de manera predeterminada. Para acceder al servidor desde otro equipo o cliente, debe especificar una o varias reglas de firewall de nivel de servidor para habilitar el acceso a su servidor. Use las reglas de firewall para especificar los intervalos de direcciones IP públicas permitidas. La acción de las reglas de firewall no repercute sobre el acceso al propio sitio web de Azure Portal. Los intentos de conexión desde Internet y Azure deben atravesar primero el firewall antes de poder llegar a la base de datos PostgreSQL, tal y como se muestra en el siguiente diagrama:

Ejemplo de flujo de cómo funciona el firewall

Conexión desde Internet

Las reglas de firewall de nivel de servidor se aplican a todas las bases de datos del mismo servidor de Azure Database for PostgreSQL. Si la dirección IP de origen de la solicitud está comprendida en uno de los intervalos especificados en las reglas de firewall de nivel de servidor, la conexión se concede, si no se rechaza. Por ejemplo, si la aplicación se conecta con un controlador JDBC para PostgreSQL, puede encontrar este error al intentar conectarse cuando el firewall está bloqueando la conexión.

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

Nota

Para acceder a Azure Database for PostgreSQL desde el equipo local, asegúrese de que el firewall de la red y el equipo local permiten la comunicación saliente en el puerto TCP 5432.

Conexión desde Azure

Se recomienda encontrar la dirección IP saliente de cualquier aplicación o servicio, y permitir explícitamente el acceso a las direcciones IP individuales o a los rangos. Por ejemplo, puede encontrar la dirección IP saliente de Azure App Service, o bien usar una IP pública asociada a una máquina virtual u otro recurso (a continuación encontrará información acerca de cómo conectar con la IP privada de una máquina virtual a través de puntos de conexión de servicio).

Si no hay ninguna dirección IP saliente fija disponible para su servicio de Azure, puede habilitar las conexiones de todas las direcciones IP del centro de datos de Azure. Este valor se puede habilitar desde Azure Portal. Para ello, en la opción Permitir el acceso a servicios de Azure, seleccione Activado en el panel Seguridad de conexión y pulse Guardar. En la CLI de Azure, un valor de regla de firewall en que la dirección inicial y final sean 0.0.0.0 surte el mismo efecto. Si las reglas de firewall rechazan el intento de conexión, no llega al servidor de Azure Database for PostgreSQL.

Importante

La opción Permitir el acceso a servicios de Azure configura el firewall para permitir todas las conexiones desde Azure, lo que incluye conexiones desde las suscripciones de otros clientes. Al seleccionar esta opción, asegúrese de que los permisos de usuario y el inicio de sesión limiten el acceso solamente a los usuarios autorizados.

Configurar el permiso de acceso a los servicios de Azure en el portal

Conexión desde una red virtual

Para conectarse de forma segura a Azure Database for PostgreSQL desde una red virtual, considere la posibilidad de usar puntos de conexión de servicio de red virtual.

Administración mediante programación de reglas de firewall

Además de Azure Portal, las reglas de firewall se pueden administrar mediante programación con la CLI de Azure. Vea también la información sobre la creación y la administración de reglas de firewall de Azure Database for PostgreSQL mediante la CLI de Azure.

Solución de problemas de firewall

Tenga en cuenta los siguientes puntos cuando el acceso al servicio del servidor de Microsoft Azure Database for PostgreSQL no se comporte de la manera prevista:

  • Los cambios en la lista de permitidos aún no se han aplicado: puede que se produzca un retraso de hasta cinco minutos hasta que se apliquen los cambios de configuración del firewall del servidor de Azure Database for PostgreSQL.

  • La cuenta de usuario no está autorizada o se ha usado una contraseña incorrecta: si una cuenta de inicio de sesión no tiene los permisos en el servidor de Azure Database for PostgreSQL o la contraseña usada es incorrecta, se denegará la conexión al servidor de Azure Database for PostgreSQL. La creación de una configuración de firewall solo ofrece a los clientes una oportunidad de intentar conectarse al servidor; cada cliente debe continuar ofreciendo las credenciales de seguridad necesarias.

    Por ejemplo, mediante un cliente JDBC, puede aparecer el siguiente error.

    java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: Error grave: error de autenticación de contraseña para el usuario "suNombreDeUsuario"

  • Dirección IP dinámica: Si tiene una conexión a Internet con un direccionamiento IP dinámico y tiene problemas al acceder al firewall, pruebe una de las soluciones siguientes:

    • Pida a su proveedor de acceso a Internet (ISP) el intervalo de direcciones IP asignado a los equipos cliente que acceden al servidor de Azure Database for PostgreSQL y agréguelo como regla de firewall.

    • Obtenga el direccionamiento IP estático en su lugar para los equipos cliente y luego agregue la dirección IP estática como regla de firewall.

  • La dirección IP del servidor parece pública: las conexiones con el servidor de Azure Database for PostgreSQL se redirigen mediante una puerta de enlace de Azure de acceso público. Sin embargo, la dirección IP real del servidor está protegida por el firewall. Para más información, consulte el artículo de arquitectura de conectividad.

  • No se puede conectar desde el recurso de Azure con la dirección IP permitida: Compruebe si el punto de conexión de servicio Microsoft.Sql está habilitado para la subred desde la que se conecta. Si Microsoft.Sql está habilitado, indica que solo desea usar reglas de punto de conexión de servicio de una red virtual en esa subred.

    Por ejemplo, puede que aparezca el siguiente error si se conecta desde una máquina virtual de Azure en una subred con Microsoft.Sql habilitado, pero sin ninguna regla de red virtual correspondiente: FATAL: Client from Azure Virtual Networks is not allowed to access the server

  • La regla de firewall no está disponible en formato IPv6: las reglas de firewall deben estar en formato IPv4. Si especifica reglas de firewall en formato IPv6, aparece el error de validación.

Pasos siguientes