Uso de reglas y puntos de conexión de servicio de red virtual para Azure Database for PostgreSQL con un único servidorUse Virtual Network service endpoints and rules for Azure Database for PostgreSQL - Single Server

Las reglas de red virtual son una característica de firewall que controla si el servidor de Azure Database for PostgreSQL acepta las comunicaciones que se envían desde subredes específicas en redes virtuales.Virtual network rules are one firewall security feature that controls whether your Azure Database for PostgreSQL server accepts communications that are sent from particular subnets in virtual networks. En este artículo se explica por qué la característica de la regla de red virtual a veces es la mejor opción para permitir la comunicación de forma segura con el servidor de Azure Database for PostgreSQL.This article explains why the virtual network rule feature is sometimes your best option for securely allowing communication to your Azure Database for PostgreSQL server.

Para crear una regla de red virtual, primero debe haber una red virtual (VNET) y un punto de conexión de servicio de red virtual para la regla a la que hacer referencia.To create a virtual network rule, there must first be a virtual network (VNet) and a virtual network service endpoint for the rule to reference. En la imagen siguiente se muestra cómo funciona un punto de conexión de servicio de red virtual con Azure Database for PostgreSQL:The following picture illustrates how a Virtual Network service endpoint works with Azure Database for PostgreSQL:

Ejemplo de cómo funciona un punto de conexión de servicio de red virtual

Nota

Esta característica está disponible en todas las regiones de nube pública de Azure donde Azure Database for PostgreSQL se implementa para servidores de uso general y optimizados para memoria.This feature is available in all regions of Azure public cloud where Azure Database for PostgreSQL is deployed for General Purpose and Memory Optimized servers. En el caso de emparejamiento de VNET, si el tráfico fluye a través de una instancia de VNet Gateway común con puntos de conexión de servicio y se supone que lo hace al elemento del mismo nivel, cree una regla de ACL o red virtual para permitir que Microsoft Azure Virtual Machines en la red virtual de puerta de enlace acceda al servidor Azure Database for PostgreSQL.In case of VNet peering, if traffic is flowing through a common VNet Gateway with service endpoints and is supposed to flow to the peer, please create an ACL/VNet rule to allow Azure Virtual Machines in the Gateway VNet to access the Azure Database for PostgreSQL server.

Terminología y descripciónTerminology and description

Red virtual: puede tener redes virtuales asociadas a la suscripción de Azure.Virtual network: You can have virtual networks associated with your Azure subscription.

Subred: una red virtual contiene subredes.Subnet: A virtual network contains subnets. Cualquier máquina virtual (VM) de Azure que tenga se asignará a las subredes.Any Azure virtual machines (VMs) that you have are assigned to subnets. Una subred puede contener varias máquinas virtuales u otros nodos de proceso.One subnet can contain multiple VMs or other compute nodes. Los nodos de proceso que se encuentran fuera de la red virtual no pueden tener acceso a su red virtual a menos que configure la seguridad para que permita el acceso.Compute nodes that are outside of your virtual network cannot access your virtual network unless you configure your security to allow access.

Punto de conexión de servicio de red virtual: un punto de conexión de servicio de red virtual es una subred cuyos valores de propiedad incluyen uno o más nombres formales de tipo de servicio de Azure.Virtual Network service endpoint: A Virtual Network service endpoint is a subnet whose property values include one or more formal Azure service type names. En este artículo nos interesa el nombre de tipo de Microsoft.Sql, que hace referencia al servicio de Azure denominado SQL Database.In this article we are interested in the type name of Microsoft.Sql, which refers to the Azure service named SQL Database. Esta etiqueta de servicio también se aplica a los servicios Azure Database for PostgreSQL y MySQL.This service tag also applies to the Azure Database for PostgreSQL and MySQL services. Es importante tener en cuenta que, al aplicar la etiqueta de servicio de Microsoft.Sql a un punto de conexión de servicio de red virtual, se configurará el tráfico de punto de conexión de servicio de todos los servidores de Azure SQL Database, Azure Database for PostgreSQL y Azure Database for MySQL de la subred.It is important to note when applying the Microsoft.Sql service tag to a VNet service endpoint it will configure service endpoint traffic for all Azure SQL Database, Azure Database for PostgreSQL and Azure Database for MySQL servers on the subnet.

Regla de red virtual: una regla de red virtual para el servidor de Azure Database for PostgreSQL es una subred que se muestra en la lista de control de acceso (ACL) del servidor de Azure Database for PostgreSQL.Virtual network rule: A virtual network rule for your Azure Database for PostgreSQL server is a subnet that is listed in the access control list (ACL) of your Azure Database for PostgreSQL server. Para estar en la ACL de su servidor de Azure Database for PostgreSQL, la subred debe contener el nombre de tipo Microsoft.Sql.To be in the ACL for your Azure Database for PostgreSQL server, the subnet must contain the Microsoft.Sql type name.

Una regla de red virtual indica a su servidor de Azure Database for PostgreSQL que acepte las comunicaciones procedentes de todos los nodos que están en la subred.A virtual network rule tells your Azure Database for PostgreSQL server to accept communications from every node that is on the subnet.

Ventajas de una regla de red virtualBenefits of a virtual network rule

Hasta que no tome medidas, las máquinas virtuales de sus subredes no pueden comunicarse con el servidor de Azure Database for PostgreSQL.Until you take action, the VMs on your subnets cannot communicate with your Azure Database for PostgreSQL server. Una acción que permite establecer la comunicación es la creación de una regla de red virtual.One action that establishes the communication is the creation of a virtual network rule. El motivo de la elección del enfoque de la regla de red virtual requiere un análisis de comparación y contraste relacionado con las opciones de seguridad competentes que ofrece el firewall.The rationale for choosing the VNet rule approach requires a compare-and-contrast discussion involving the competing security options offered by the firewall.

A.A. Permitir el acceso a servicios de AzureAllow access to Azure services

El panel de Seguridad de conexión tiene el botón Activado/Desactivado con la etiqueta Permitir el acceso a servicios de Azure.The Connection security pane has an ON/OFF button that is labeled Allow access to Azure services. La configuración Activado permite las comunicaciones desde todas las direcciones IP de Azure y todas las subredes de Azure.The ON setting allows communications from all Azure IP addresses and all Azure subnets. Es posible que estas IP o subredes de Azure no le pertenezcan.These Azure IPs or subnets might not be owned by you. La configuración Activado es probablemente más abierta de lo que le gustaría que fuera su instancia de Azure Database for PostgreSQL Database.This ON setting is probably more open than you want your Azure Database for PostgreSQL Database to be. La característica de la regla de red virtual ofrece un control mucho más granular.The virtual network rule feature offers much finer granular control.

B.B. Reglas IPIP rules

El firewall de Azure Database for PostgreSQL le permite especificar los intervalos de direcciones IP desde los que se aceptan las comunicaciones en Azure Database for PostgreSQL Database.The Azure Database for PostgreSQL firewall allows you to specify IP address ranges from which communications are accepted into the Azure Database for PostgreSQL Database. Este enfoque es preciso para las direcciones IP estables que están fuera de la red privada de Azure.This approach is fine for stable IP addresses that are outside the Azure private network. Sin embargo, muchos nodos de dentro de la red privada de Azure se configuran con direcciones IP dinámicas.But many nodes inside the Azure private network are configured with dynamic IP addresses. Es posible que las direcciones IP dinámicas cambien, por ejemplo, cuando se reinicia la máquina virtual.Dynamic IP addresses might change, such as when your VM is restarted. Sería una locura especificar una dirección IP dinámica en una regla de firewall, en un entorno de producción.It would be folly to specify a dynamic IP address in a firewall rule, in a production environment.

Para recuperar la opción de IP, puede obtener una dirección IP estática para la máquina virtual.You can salvage the IP option by obtaining a static IP address for your VM. Para más información, consulte Configuración de direcciones IP privadas para una máquina virtual mediante Azure Portal.For details, see Configure private IP addresses for a virtual machine by using the Azure portal.

Sin embargo, el enfoque de IP estática puede resultar difícil de administrar, y es costoso si se realiza a escala.However, the static IP approach can become difficult to manage, and it is costly when done at scale. Las reglas de red virtual son más sencillas de establecer y administrar.Virtual network rules are easier to establish and to manage.

C.C. Todavía no se puede tener Azure Database for PostgreSQL en una subred sin definir ningún punto de conexión de servicioCannot yet have Azure Database for PostgreSQL on a subnet without defining a service endpoint

Si su servidor de Microsoft.Sql fuera un nodo de una subred de la red virtual, todos los nodos de la red virtual podrían comunicarse con su servidor de Azure Database for PostgreSQL.If your Microsoft.Sql server was a node on a subnet in your virtual network, all nodes within the virtual network could communicate with your Azure Database for PostgreSQL server. En este caso, las máquinas virtuales podrían comunicarse con Azure Database for PostgreSQL sin necesitar ninguna regla IP ni regla de red virtual.In this case, your VMs could communicate with Azure Database for PostgreSQL without needing any virtual network rules or IP rules.

No obstante, a partir de agosto de 2018, el servicio de Azure Database for PostgreSQL aún no se encuentra entre los servicios que se pueden asignar directamente a una subred.However as of August 2018, the Azure Database for PostgreSQL service is not yet among the services that can be assigned directly to a subnet.

Detalles sobre las reglas de red virtualDetails about virtual network rules

En esta sección se describen varios detalles acerca de las reglas de red virtual.This section describes several details about virtual network rules.

Solo una región geográficaOnly one geographic region

Cada punto de conexión de servicio de red virtual se aplica solo a una región de Azure.Each Virtual Network service endpoint applies to only one Azure region. El punto de conexión no permite que otras regiones acepten la comunicación de la subred.The endpoint does not enable other regions to accept communication from the subnet.

Cualquier regla de red virtual se limita a la región a la que se aplica su punto de conexión subyacente.Any virtual network rule is limited to the region that its underlying endpoint applies to.

Nivel de servidor y no de base de datosServer-level, not database-level

Cada regla de red virtual se aplica a todo el servidor de Azure Database for PostgreSQL y no solo a una base de datos determinada del servidor.Each virtual network rule applies to your whole Azure Database for PostgreSQL server, not just to one particular database on the server. En otras palabras, la regla de red virtual se aplica en el nivel de servidor y no en el nivel de base de datos.In other words, virtual network rule applies at the server-level, not at the database-level.

Roles de administración de la seguridadSecurity administration roles

Existe una separación de los roles de seguridad en la administración de puntos de conexión de servicio de red virtual.There is a separation of security roles in the administration of Virtual Network service endpoints. Se requiere una acción de cada uno de los roles siguientes:Action is required from each of the following roles:

  • Administrador de red:   se activa el punto de conexión.Network Admin:   Turn on the endpoint.
  • Administrador de base de datos:   se actualiza la lista de control de acceso (ACL) que se va a agregar a la subred proporcionada en el servidor de Azure Database for PostgreSQL.Database Admin:   Update the access control list (ACL) to add the given subnet to the Azure Database for PostgreSQL server.

Alternativa de RBAC:RBAC alternative:

Los roles de administrador de red y de base de datos tienen más funcionalidades de las que se necesitan para administrar las reglas de red virtual.The roles of Network Admin and Database Admin have more capabilities than are needed to manage virtual network rules. Solo se necesita un subconjunto de sus capacidades.Only a subset of their capabilities is needed.

Si quiere, puede optar por usar el control de acceso basado en rol (RBAC) en Azure para crear un rol personalizado único que tenga solo el subconjunto necesario de funcionalidades.You have the option of using role-based access control (RBAC) in Azure to create a single custom role that has only the necessary subset of capabilities. Se podría usar el rol personalizado en lugar del administrador de red o el administrador de la base de datos. El área expuesta de la exposición de seguridad es inferior si agrega un usuario a un rol personalizado, en lugar de agregar el usuario a los otros dos roles de administrador principales.The custom role could be used instead of involving either the Network Admin or the Database Admin. The surface area of your security exposure is lower if you add a user to a custom role, versus adding the user to the other two major administrator roles.

Nota

En algunos casos, Azure Database for PostgreSQL y la subred de red virtual se encuentran en distintas suscripciones.In some cases the Azure Database for PostgreSQL and the VNet-subnet are in different subscriptions. En estos casos debe garantizar las siguientes configuraciones:In these cases you must ensure the following configurations:

  • Ambas suscripciones deben estar en el mismo inquilino de Azure Active Directory.Both subscriptions must be in the same Azure Active Directory tenant.
  • El usuario tiene los permisos necesarios para iniciar operaciones como habilitar los puntos de conexión de servicio y agregar una subred de red virtual al servidor especificado.The user has the required permissions to initiate operations, such as enabling service endpoints and adding a VNet-subnet to the given Server.
  • Asegúrese de que ambas suscripciones tengan el proveedor de recursos Microsoft.Sql registrado.Make sure that both the subscription has the Microsoft.Sql resource provider registered. Para más información, consulte resource-manager-registration.For more information refer resource-manager-registration

LimitacionesLimitations

Para Azure Database for PostgreSQL, la característica de las reglas de red virtual tiene las siguientes limitaciones:For Azure Database for PostgreSQL, the virtual network rules feature has the following limitations:

  • Una aplicación web se puede asignar a una dirección IP privada en una red virtual o subred.A Web App can be mapped to a private IP in a VNet/subnet. Incluso si los puntos de conexión de servicio están ACTIVADOS desde la red virtual o subred proporcionada, las conexiones de la aplicación web con el servidor tendrán un origen IP público de Azure, no un origen de red virtual o subred.Even if service endpoints are turned ON from the given VNet/subnet, connections from the Web App to the server will have an Azure public IP source, not a VNet/subnet source. Para habilitar la conectividad desde una aplicación web con un servidor que tenga reglas de firewall de red virtual, debe permitir que los servicios de Azure accedan al servidor en el servidor.To enable connectivity from a Web App to a server that has VNet firewall rules, you must Allow Azure services to access server on the server.

  • En el firewall de su instancia de Azure Database for PostgreSQL, cada regla de red virtual hace referencia a una subred.In the firewall for your Azure Database for PostgreSQL, each virtual network rule references a subnet. Todas estas subredes a las que se hace referencia deben estar hospedadas en la misma región geográfica que hospeda Azure Database for PostgreSQL.All these referenced subnets must be hosted in the same geographic region that hosts the Azure Database for PostgreSQL.

  • Cada servidor de Azure Database for PostgreSQL puede tener hasta 128 entradas de ACL para cualquier red virtual proporcionada.Each Azure Database for PostgreSQL server can have up to 128 ACL entries for any given virtual network.

  • Las reglas de red virtual solo se aplican a las redes virtuales de Azure Resource Manager, y no a las redes del modelo de implementación clásica.Virtual network rules apply only to Azure Resource Manager virtual networks; and not to classic deployment model networks.

  • Al activar los puntos de conexión de servicio de red virtual en Azure Database for PostgreSQL con la etiqueta de servicio Microsoft.Sql también se habilitan los puntos de conexión de todos los servicios de Azure Database: Azure Database for MySQL, Azure Database for PostgreSQL, Azure SQL Database y Azure SQL Data Warehouse.Turning ON virtual network service endpoints to Azure Database for PostgreSQL using the Microsoft.Sql service tag also enables the endpoints for all Azure Database services: Azure Database for MySQL, Azure Database for PostgreSQL, Azure SQL Database and Azure SQL Data Warehouse.

  • La compatibilidad con puntos de conexión de servicio de red virtual solo existe para servidores de uso general y optimizados para memoria.Support for VNet service endpoints is only for General Purpose and Memory Optimized servers.

  • En el firewall, los intervalos de direcciones IP se aplican a los siguientes elementos de red, pero no las reglas de red virtual:On the firewall, IP address ranges do apply to the following networking items, but virtual network rules do not:

ExpressRouteExpressRoute

Si la red está conectada a la red de Azure mediante el uso de ExpressRoute, cada circuito está configurado con dos direcciones IP públicas en Microsoft Edge.If your network is connected to the Azure network through use of ExpressRoute, each circuit is configured with two public IP addresses at the Microsoft Edge. Las dos direcciones IP se utilizan para conectarse a servicios Microsoft, como a Azure Storage, mediante el uso del emparejamiento público de Azure.The two IP addresses are used to connect to Microsoft Services, such as to Azure Storage, by using Azure Public Peering.

Para permitir la comunicación desde el circuito a Azure Database for PostgreSQL, debe crear reglas de red IP para direcciones IP públicas de los circuitos.To allow communication from your circuit to Azure Database for PostgreSQL, you must create IP network rules for the public IP addresses of your circuits. Para encontrar las direcciones IP públicas del circuito de ExpressRoute, abra un vale de soporte con ExpressRoute mediante Azure Portal.In order to find the public IP addresses of your ExpressRoute circuit, open a support ticket with ExpressRoute by using the Azure portal.

Agregar una regla de firewall de VNET al servidor sin tener que activar los puntos de conexión de servicioAdding a VNET Firewall rule to your server without turning On VNET Service Endpoints

Si solo establece una regla de firewall, no tendrá el servidor protegido en la red virtual.Merely setting a Firewall rule does not help secure the server to the VNet. Por lo tanto, también debe activar los puntos de conexión de servicio de red virtual para que la seguridad surta efecto.You must also turn VNet service endpoints On for the security to take effect. Al activar los puntos de conexión de servicio, la subred de la red virtual experimenta cierto tiempo de inactividad hasta que estos puntos se activan totalmente.When you turn service endpoints On, your VNet-subnet experiences downtime until it completes the transition from Off to On. Esto sucede especialmente en redes virtuales de gran tamaño.This is especially true in the context of large VNets. Puede usar la marca IgnoreMissingServiceEndpoint para reducir o eliminar el tiempo de inactividad durante la activación.You can use the IgnoreMissingServiceEndpoint flag to reduce or eliminate the downtime during transition.

Puede establecer la marca IgnoreMissingServiceEndpoint mediante la CLI de Azure o el portal.You can set the IgnoreMissingServiceEndpoint flag by using the Azure CLI or portal.

Pasos siguientesNext steps

Para ver artículos sobre cómo crear reglas de red virtual, consulte lo siguiente:For articles on creating VNet rules, see: