Reglas de firewall de Azure Database for PostgreSQL con un único servidorFirewall rules in Azure Database for PostgreSQL - Single Server

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.Azure Database for PostgreSQL server is secure by default preventing all access to your database server until you specify which IP hosts are allowed to access it. Asimismo, otorgan acceso al servidor según la dirección IP de origen de cada solicitud.The firewall grants access to the server based on the originating IP address of each request. Para configurar su firewall, cree reglas de firewall que especifiquen intervalos de direcciones IP aceptables.To configure your firewall, you create firewall rules that specify ranges of acceptable IP addresses. Puede crear reglas de firewall a nivel de servidor.You can create firewall rules at the server level.

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.Firewall rules: These rules enable clients to access your entire Azure Database for PostgreSQL Server, that is, all the databases within the same logical server. Las reglas de firewall de nivel de servidor pueden configurarse a través de Azure Portal o los comandos de la CLI de Azure.Server-level firewall rules can be configured by using the Azure portal or using Azure CLI commands. Para crear reglas de firewall en el nivel del servidor, debe ser propietario o colaborador de la suscripción.To create server-level firewall rules, you must be the subscription owner or a subscription contributor.

Información general de firewallsFirewall overview

Todos los accesos al servidor de Azure Database for PostgreSQL se bloquean por el firewall de manera predeterminada.All access to your Azure Database for PostgreSQL server is blocked by the firewall by default. 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.To access your server from another computer/client or application, you need to specify one or more server-level firewall rules to enable access to your server. Use las reglas de firewall para especificar los intervalos de direcciones IP públicas permitidas.Use the firewall rules to specify allowed public IP address ranges. La acción de las reglas de firewall no repercute sobre el acceso al propio sitio web de Azure Portal.Access to the Azure portal website itself is not impacted by the firewall rules. 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:Connection attempts from the internet and Azure must first pass through the firewall before they can reach your PostgreSQL Database, as shown in the following diagram:

Ejemplo de flujo de cómo funciona el firewall

Conexión desde InternetConnecting from the 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.Server-level firewall rules apply to all databases on the same Azure Database for PostgreSQL server. 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.If the source IP address of the request is within one of the ranges specified in the server-level firewall rules, the connection is granted otherwise it is rejected. 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.For example, if your application connects with JDBC driver for PostgreSQL, you may encounter this error attempting to connect when the firewall is blocking the connection.

java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: Error grave: no hay entrada pg_hba.conf para el host "123.45.67.890", usuario "adminuser", base de datos "postgresql", SSLjava.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

Conexión desde AzureConnecting from 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.It is recommended that you find the outgoing IP address of any application or service and explicitly allow access to those individual IP addresses or ranges. 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).For example, you can find the outgoing IP address of an Azure App Service or use a public IP tied to a virtual machine or other resource (see below for info on connecting with a virtual machine's private IP over service endpoints).

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.If a fixed outgoing IP address isn't available for your Azure service, you can consider enabling connections from all Azure datacenter IP addresses. 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.This setting can be enabled from the Azure portal by setting the Allow access to Azure services option to ON from the Connection security pane and hitting Save. 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.From the Azure CLI, a firewall rule setting with starting and ending address equal to 0.0.0.0 does the equivalent. Si las reglas de firewall rechazan el intento de conexión, no llega al servidor de Azure Database for PostgreSQL.If the connection attempt is rejected by firewall rules, it does not reach the Azure Database for PostgreSQL server.

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.The Allow access to Azure services option configures the firewall to allow all connections from Azure including connections from the subscriptions of other customers. 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.When selecting this option, make sure your login and user permissions limit access to only authorized users.

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

Conexión desde una red virtualConnecting from a VNet

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.To connect securely to your Azure Database for PostgreSQL server from a VNet, consider using VNet service endpoints.

Administración mediante programación de reglas de firewallProgrammatically managing firewall rules

Además de Azure Portal, las reglas de firewall se pueden administrar mediante programación con la CLI de Azure.In addition to the Azure portal, firewall rules can be managed programmatically using Azure CLI. 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.See also Create and manage Azure Database for PostgreSQL firewall rules using Azure CLI

Solución de problemas de firewallTroubleshooting firewall issues

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:Consider the following points when access to the Microsoft Azure Database for PostgreSQL Server service does not behave as you expect:

  • 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.Changes to the allow list have not taken effect yet: There may be as much as a five-minute delay for changes to the Azure Database for PostgreSQL Server firewall configuration to take effect.

  • 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.The login is not authorized or an incorrect password was used: If a login does not have permissions on the Azure Database for PostgreSQL server or the password used is incorrect, the connection to the Azure Database for PostgreSQL server is denied. 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.Creating a firewall setting only provides clients with an opportunity to attempt connecting to your server; each client must still provide the necessary security credentials.

    Por ejemplo, mediante un cliente JDBC, puede aparecer el siguiente error.For example, using a JDBC client, the following error may appear.

    java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: Error grave: error de autenticación de contraseña para el usuario "suNombreDeUsuario"java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: password authentication failed for user "yourusername"

  • 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:Dynamic IP address: If you have an Internet connection with dynamic IP addressing and you are having trouble getting through the firewall, you could try one of the following solutions:

    • 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.Ask your Internet Service Provider (ISP) for the IP address range assigned to your client computers that access the Azure Database for PostgreSQL Server, and then add the IP address range as a firewall rule.

    • 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.Get static IP addressing instead for your client computers, and then add the static IP address as a firewall rule.

  • 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.Server's IP appears to be public: Connections to the Azure Database for PostgreSQL server are routed through a publicly accessible Azure gateway. Sin embargo, la dirección IP real del servidor está protegida por el firewall.However, the actual server IP is protected by the firewall. Para más información, consulte el artículo de arquitectura de conectividad.For more information, visit the connectivity architecture article.

  • 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.Cannot connect from Azure resource with allowed IP: Check whether the Microsoft.Sql service endpoint is enabled for the subnet you are connecting from. 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.If Microsoft.Sql is enabled, it indicates that you only want to use VNet service endpoint rules on that subnet.

    Por ejemplo, puede ver 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 serverFor example, you may see the following error if you are connecting from an Azure VM in a subnet that has Microsoft.Sql enabled but has no corresponding VNet rule: 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.Firewall rule is not available for IPv6 format: The firewall rules must be in IPv4 format. Si especifica reglas de firewall en formato IPv6, aparece el error de validación.If you specify firewall rules in IPv6 format, it will show the validation error.

Pasos siguientesNext steps