Acceso público en Hiperescala (Citus) de Azure Database for PostgreSQL

APLICABLE A: Azure Database for PostgreSQL e Hiperescala (Citus)

Hiperescala (Citus) para Azure Database for PostgreSQL admite tres opciones de red:

  • Sin acceso
    • Es el valor predeterminado de un grupo de servidores creado recientemente si el acceso público o privado no está habilitado. Ningún equipo, ya sea dentro o fuera de Azure, puede conectarse a los nodos de base de datos.
  • Acceso público
    • Se asigna una dirección IP pública al nodo de coordinación.
    • El acceso al nodo de coordinación se protege mediante el firewall.
    • Opcionalmente, se puede habilitar el acceso a todos los nodos de trabajo. En este caso, las direcciones IP públicas se asignan a los nodos de trabajo y se protegen mediante el mismo firewall.
  • Acceso privado
    • Solo las direcciones IP privadas se asignan a los nodos del grupo de servidores.
    • Cada nodo requiere un punto de conexión privado para permitir que los hosts de la red virtual seleccionada accedan a los nodos de Hiperescala (Citus).
    • Las características de seguridad de las redes virtuales de Azure, como los grupos de seguridad de red, se pueden usar para el control de acceso.

Al crear un grupo de servidores de Hiperescala (Citus), puede habilitar el acceso público o privado u optar por el valor predeterminado Sin acceso. Una vez creado el grupo de servidores, puede elegir cambiar entre el acceso público o privado, o activar ambos a la vez.

En esta página se describe la opción de acceso público. Para obtener información sobre el acceso privado, consulte este documento.

Información general de firewalls

El firewall del servidor Azure Database for PostgreSQL impide todo acceso al nodo de coordinación de Hiperescala (Citus) hasta que se especifica qué equipos tienen permiso. 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.

Regas de firewall: Estas reglas permiten a los clientes acceder al nodo de coordinación de Hiperescala (Citus), 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 mediante Azure Portal. Para crear reglas de firewall en el nivel del servidor, debe ser propietario o colaborador de la suscripción.

El firewall bloquea de forma predeterminada el acceso de todas las bases de datos al nodo de coordinación. Para comenzar a usar el servidor desde otro equipo, debe especificar una o varias reglas de firewall a nivel de servidor para habilitar el acceso a su servidor. Use las reglas de firewall para especificar los intervalos de direcciones IP de Internet que se permitirán. 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 alcanzar PostgreSQL Database, tal y como se muestra en el siguiente diagrama:

Diagrama que muestra las reglas de firewall a nivel de servidor entre los sistemas remotos y locales y las conexiones con error.

Conexión desde Internet y desde Azure

Un firewall del grupo de servidores de Hiperescala (Citus) controla quién puede conectarse al nodo de coordinación del grupo. El firewall determina el acceso mediante la consulta de una lista configurable de reglas. Cada regla es una dirección IP o un intervalo de direcciones que se permiten.

Cuando el firewall bloquea las conexiones, puede provocar errores de la aplicación. Cuando se usa el controlador JDBC de PostgreSQL, por ejemplo, se genera un error similar al siguiente:

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

Consulte Creación y administración de reglas de firewall para saber cómo se definen las reglas.

Solución de problemas del firewall del servidor de la base de datos

Si al acceder a Microsoft Azure Database for PostgreSQL: Hiperescala (Citus), el servicio no se comporta según lo esperado, considere estos puntos:

  • Los cambios realizados en la lista de permitidos no han surtido efecto todavía: puede haber un retraso de hasta cinco minutos hasta que los cambios en la configuración del firewall de Hyperscale (Citus) surtan efecto.

  • El usuario no está autorizado o se ha usado una contraseña incorrecta: si un usuario no tiene permisos en el servidor o la contraseña usada es incorrecta, se denegará la conexión al servidor. 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 nodo de coordinación de Hiperescala (Citus) y, luego, 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.

Pasos siguientes

Para leer artículos sobre cómo crear reglas de firewall de nivel de servidor y de base de datos, consulte: