Red perimetral entre Azure y un centro de datos localNetwork DMZ between Azure and an on-premises datacenter

Esta arquitectura de referencia muestra una red híbrida segura que extiende una red local a Azure.This reference architecture shows a secure hybrid network that extends an on-premises network to Azure. La arquitectura implementa una red perimetral, entre la red local y una red virtual.The architecture implements a DMZ, also called a perimeter network, between the on-premises network and an Azure virtual network. Todo el tráfico entrante y saliente pasa a través de Azure Firewall.All inbound and outbound traffic passes through Azure Firewall. Implemente esta solución.Deploy this solution.

Arquitectura de red híbrida segura

Descargue un archivo Visio de esta arquitectura.Download a Visio file of this architecture.

Esta arquitectura requiere una conexión a su centro de datos local, mediante una puerta de enlace VPN o una conexión ExpressRoute.This architecture requires a connection to your on-premises datacenter, using either a VPN gateway or an ExpressRoute connection. Los usos habituales de esta arquitectura incluyen:Typical uses for this architecture include:

  • Aplicaciones híbridas donde una parte de las cargas de trabajo se ejecutan de forma local y otra parte en Azure.Hybrid applications where workloads run partly on-premises and partly in Azure.
  • Infraestructura que requiere un control pormenorizado sobre el tráfico que entra en una red virtual de Azure desde un centro de datos local.Infrastructure that requires granular control over traffic entering an Azure virtual network from an on-premises datacenter.
  • Aplicaciones que deben auditar el tráfico saliente.Applications that must audit outgoing traffic. Esto suele ser un requisito de regulación de muchos sistemas comerciales y puede ayudar a evitar la revelación de información privada.This is often a regulatory requirement of many commercial systems and can help to prevent public disclosure of private information.

ArchitectureArchitecture

La arquitectura consta de los siguientes componentes:The architecture consists of the following components.

  • Red local.On-premises network. Una red de área local privada implementada en una organización.A private local-area network implemented in an organization.

  • Red virtual de Azure.Azure virtual network. La red virtual hospeda la aplicación y otros recursos que se ejecutan en Azure.The virtual network hosts the application and other resources running in Azure.

  • Puerta de enlace.Gateway. La puerta de enlace proporciona conectividad entre los enrutadores de la red local y la red virtual.The gateway provides connectivity between the routers in the on-premises network and the virtual network. La puerta de enlace se coloca en su propia subred.The gateway is placed in its own subnet.

  • Azure Firewall.Azure Firewall. Azure Firewall es un firewall administrado como servicio.Azure Firewall is a managed firewall as a service. La instancia de Firewall se coloca en su propia subred.The Firewall instance is placed in its own subnet.

  • Rutas de red virtual.Virtual network routes. Las rutas de red virtual definen el flujo de tráfico IP dentro de la red virtual de Azure.Virtual network routes define the flow of IP traffic within the Azure virtual network. En el diagrama anterior, hay dos tablas de rutas definidas por el usuario.In the diagram shown above, there are two user-defined route tables.

    • En la subred de puerta de enlace, el tráfico enviado a la subred de nivel web (10.0.1.0/24) se enruta a través de la instancia de Azure Firewall.In the gateway subnet, traffic sent to the web-tier subnet (10.0.1.0/24) is routed through the Azure Firewall instance.
    • En la subred de nivel web, puesto que no hay ninguna ruta para el espacio de direcciones de la propia VNet para que apunte a Azure Firewall, las instancias de nivel web pueden comunicarse directamente entre sí, no a través de Azure Firewall.In the web tier subnet, Since there is no route for address space of the VNet itself to point to Azure firewall, web tier instances are able to communicate directly to each other, not via Azure Firewall.

    Nota

    Según los requisitos de la conexión VPN, puede configurar las rutas del Protocolo de puerta de enlace de borde (BGP) para implementar las reglas de reenvío que dirigen el tráfico a través de la red local.Depending on the requirements of your VPN connection, you can configure Border Gateway Protocol (BGP) routes to implement the forwarding rules that direct traffic back through the on-premises network.

  • Grupos de seguridad de red.Network security groups. Use grupos de seguridad para restringir el tráfico de red dentro de la red virtual.Use security groups to restrict network traffic within the virtual network. Por ejemplo, en la implementación que se proporciona con esta arquitectura de referencia, la subred de nivel web permite el tráfico TCP desde la red local y desde dentro de la red virtual, el nivel de negocio permite el tráfico desde el nivel web y la capa de datos permite el tráfico desde el nivel empresarial.For example, in the deployment provided with this reference architecture, the web tier subnet allows TCP traffic from the on-premises network and from within the virtual network; the business tier allows traffic from the web tier; and the data tier allows traffic from the business tier.

  • Bastion.Bastion. Azure Bastion permite iniciar sesión en las máquinas virtuales de la red virtual a través de SSH o el protocolo de escritorio remoto (RDP) sin exponer las máquinas virtuales directamente a Internet.Azure Bastion allows you to log into VMs in the virtual network through SSH or remote desktop protocol (RDP) without exposing the VMs directly to the internet. Use Bastion para administrar las máquinas virtuales de la red virtual.Use Bastion to manage the VMs in the virtual network.

RecomendacionesRecommendations

Las siguientes recomendaciones sirven para la mayoría de los escenarios.The following recommendations apply for most scenarios. Sígalas a menos que tenga un requisito concreto que las invalide.Follow these recommendations unless you have a specific requirement that overrides them.

Recomendaciones de control de accesoAccess control recommendations

Use el control de acceso basado en rol (RBAC) para administrar los recursos de la aplicación.Use role-based access control (RBAC) to manage the resources in your application. Considere la posibilidad de crear los siguientes roles personalizados:Consider creating the following custom roles:

  • Un rol de DevOps con permisos para administrar la infraestructura de la aplicación, implementar los componentes de las aplicaciones y supervisar y reiniciar las máquinas virtuales.A DevOps role with permissions to administer the infrastructure for the application, deploy the application components, and monitor and restart VMs.

  • Un rol de administrador de TI centralizado para administrar y supervisar los recursos de red.A centralized IT administrator role to manage and monitor network resources.

  • Un rol de administrador de TI de seguridad para administrar los recursos de red seguros, como el firewall.A security IT administrator role to manage secure network resources such as the firewall.

Los roles de administrador de DevOps y de TI no deberían tener acceso a los recursos de firewall.The DevOps and IT administrator roles should not have access to the firewall resources. Debería limitarse al rol de administrador de TI de seguridad.This should be restricted to the security IT administrator role.

Recomendaciones para grupos de recursosResource group recommendations

Los recursos de Azure, como las máquinas virtuales, las redes virtuales y los equilibradores de carga, se pueden administrar fácilmente agrupándolos en grupos de recursos.Azure resources such as VMs, virtual networks, and load balancers can be easily managed by grouping them together into resource groups. Asigne roles RBAC a cada grupo de recursos para restringir el acceso.Assign RBAC roles to each resource group to restrict access.

Se recomienda crear los grupos de recursos siguientes:We recommend creating the following resource groups:

  • Un grupo de recursos que contenga la red virtual (excepto las máquinas virtuales), los grupos de seguridad de red y los recursos de puerta de enlace para conectarse a la red local.A resource group containing the virtual network (excluding the VMs), NSGs, and the gateway resources for connecting to the on-premises network. Asigne el rol de administrador de TI centralizado a este grupo de recursos.Assign the centralized IT administrator role to this resource group.
  • Un grupo de recursos que contenga las máquinas virtuales para la instancia de Azure Firewall y las rutas definidas por el usuario para la subred de puerta de enlace.A resource group containing the VMs for the Azure Firewall instance and the user-defined routes for the gateway subnet. Asigne el rol de administrador de TI de seguridad a este grupo de recursos.Assign the security IT administrator role to this resource group.
  • Separe los grupos de recursos para cada nivel de aplicación que contenga el equilibrador de carga y las máquinas virtuales.Separate resource groups for each application tier that contain the load balancer and VMs. Tenga en cuenta que este grupo de recursos no debe incluir las subredes de cada nivel.Note that this resource group shouldn't include the subnets for each tier. Asigne el rol de DevOps a este grupo de recursos.Assign the DevOps role to this resource group.

Recomendaciones de redesNetworking recommendations

Para aceptar el tráfico entrante desde Internet, agregue una regla de traducción de direcciones de red de destino (DNAT) a Azure Firewall.To accept inbound traffic from the internet, add a Destination Network Address Translation (DNAT) rule to Azure Firewall.

  • Dirección de destino = dirección IP pública de la instancia de firewall.Destination address = Public IP address of the firewall instance.
  • Dirección traducida = dirección IP privada dentro de la red virtual.Translated address = Private IP address within the virtual network.

La implementación de ejemplo enruta el tráfico de Internet para el puerto 80 al equilibrador de carga de nivel web.The example deployment routes internet traffic for port 80 to the web tier load balancer.

Aplique tunelización forzada a todo el tráfico saliente de Internet a través de la red local mediante el túnel VPN de sitio a sitio para enrutar a Internet con la traducción de direcciones de red (NAT).Force-tunnel all outbound internet traffic through your on-premises network using the site-to-site VPN tunnel, and route to the internet using network address translation (NAT). Así se evita la pérdida accidental de la información confidencial almacenada en el nivel de datos y se permite la inspección y auditoría de todo el tráfico saliente.This prevents accidental leakage of any confidential information stored in your data tier and allows inspection and auditing of all outgoing traffic.

No bloquee por completo el tráfico de Internet de las capas de aplicación, ya que esto evitará que estas capas usen los servicios PaaS de Azure que se basan en direcciones IP públicas, como el registro de diagnóstico de máquina virtual, la descarga de extensiones de máquina virtual y otras funciones.Don't completely block internet traffic from the application tiers, as this will prevent these tiers from using Azure PaaS services that rely on public IP addresses, such as VM diagnostics logging, downloading of VM extensions, and other functionality. Los diagnósticos de Azure también requieren que los componentes puedan leer y escribir en una cuenta de Azure Storage.Azure diagnostics also requires that components can read and write to an Azure Storage account.

Compruebe que el tráfico saliente de Internet se realiza correctamente a través de tunelización forzada.Verify that outbound internet traffic is force-tunneled correctly. Si utiliza una conexión VPN con el servicio de acceso remoto y enrutamiento en un servidor local, use una herramienta como WireShark.If you're using a VPN connection with the routing and remote access service on an on-premises server, use a tool such as WireShark.

Considere la posibilidad de usar Application Gateway o Azure Front Door para la terminación SSL.Consider using Application Gateway or Azure Front Door for SSL termination.

Consideraciones sobre escalabilidadScalability considerations

Para información detallada sobre los límites de ancho de banda de VPN Gateway, consulte SKU de puerta de enlace.For details about the bandwidth limits of VPN Gateway, see Gateway SKUs. Para anchos de banda mayores, considere la posibilidad de actualizar a una puerta de enlace de ExpressRoute.For higher bandwidths, consider upgrading to an ExpressRoute gateway. ExpressRoute proporciona hasta 10 GB/s de ancho de banda con una latencia inferior que una conexión VPN.ExpressRoute provides up to 10 Gbps bandwidth with lower latency than a VPN connection.

Para más información acerca de la escalabilidad de las puertas de enlace de Azure, vea la sección sobre la consideración de la escalabilidad en Implementación de una arquitectura de red híbrida con Azure y VPN local e Implementación de una arquitectura de red híbrida con Azure ExpressRoute.For more information about the scalability of Azure gateways, see the scalability consideration section in Implementing a hybrid network architecture with Azure and on-premises VPN and Implementing a hybrid network architecture with Azure ExpressRoute.

Consideraciones sobre disponibilidadAvailability considerations

Si usa Azure ExpressRoute para proporcionar conectividad entre la red local y la red virtual, configure una puerta de enlace VPN para proporcionar conmutación por error si la conexión ExpressRoute no está disponible.If you're using Azure ExpressRoute to provide connectivity between the virtual network and on-premises network, configure a VPN gateway to provide failover if the ExpressRoute connection becomes unavailable.

Para obtener información específica sobre el mantenimiento de la disponibilidad para conexiones VPN y ExpressRoute, consulte las consideraciones de disponibilidad en Implementación de una arquitectura de red híbrida con Azure y VPN local e Implementación de una arquitectura de red híbrida con Azure ExpressRoute.For specific information on maintaining availability for VPN and ExpressRoute connections, see the availability considerations in Implementing a hybrid network architecture with Azure and on-premises VPN and Implementing a hybrid network architecture with Azure ExpressRoute.

Consideraciones sobre la manejabilidadManageability considerations

Si la conectividad de la puerta de enlace desde la red local a Azure está inactiva, puede acceder a las máquinas virtuales de la red virtual de Azure a través de Azure Bastion.If gateway connectivity from your on-premises network to Azure is down, you can still reach the VMs in the Azure virtual network through Azure Bastion.

La subred de cada nivel de la arquitectura de referencia está protegido por las reglas de NSG.Each tier's subnet in the reference architecture is protected by NSG rules. Debe crear una regla para abrir el puerto 3389 para el acceso del Protocolo de escritorio remoto (RDP) en las máquinas virtuales Windows o el puerto 22 para el acceso de shell seguro (SSH) en las máquinas virtuales Linux.You may need to create a rule to open port 3389 for remote desktop protocol (RDP) access on Windows VMs or port 22 for secure shell (SSH) access on Linux VMs. Otras herramientas de supervisión y administración pueden requerir reglas para abrir puertos adicionales.Other management and monitoring tools may require rules to open additional ports.

Si está usando ExpressRoute para proporcionar conectividad entre el centro de datos local y Azure, use Azure Connectivity Toolkit (AzureCT) para supervisar y solucionar problemas de conexión.If you're using ExpressRoute to provide the connectivity between your on-premises datacenter and Azure, use the Azure Connectivity Toolkit (AzureCT) to monitor and troubleshoot connection issues.

Puede encontrar información adicional sobre la supervisión y la administración de conexiones VPN y ExpressRoute en los artículos:You can find additional information about monitoring and managing VPN and ExpressRoute connections in the articles:

Consideraciones sobre la seguridadSecurity considerations

Esta arquitectura de referencia implementa varios niveles de seguridad.This reference architecture implements multiple levels of security.

Enrutamiento de todas las solicitudes de usuario locales a través de Azure FirewallRouting all on-premises user requests through Azure Firewall

La ruta definida por el usuario en la subred de puerta de enlace bloquea todas las solicitudes de usuario distintas de las recibidas desde el entorno local.The user-defined route in the gateway subnet blocks all user requests other than those received from on-premises. La ruta pasa las solicitudes permitidas al firewall, y estas solicitudes se pasan a la aplicación si las reglas de firewall lo permiten.The route passes allowed requests to the firewall, and these requests are passed on to the application if they are allowed by the firewall rules. Puede agregar otras rutas, pero debe asegurarse de que no omiten accidentalmente el firewall ni bloquean el tráfico administrativo destinado a la subred de administración.You can add other routes, but make sure they don't inadvertently bypass the firewall or block administrative traffic intended for the management subnet.

Grupos de seguridad de red para bloquear o permitir el tráfico entre los niveles de aplicaciónUsing NSGs to block/pass traffic between application tiers

El tráfico entre niveles se restringe mediante grupos de seguridad de red (NSG).Traffic between tiers is restricted by using NSGs. El nivel empresarial bloquea todo el tráfico que no se origina en el nivel web y el de datos bloquea todo el tráfico que no se origina en el nivel empresarial.The business tier blocks all traffic that doesn't originate in the web tier, and the data tier blocks all traffic that doesn't originate in the business tier. Si necesita expandir las reglas de NSG a fin de permitir un mayor acceso a estos niveles, sopese estos requisitos con respecto a los riesgos de seguridad.If you have a requirement to expand the NSG rules to allow broader access to these tiers, weigh these requirements against the security risks. Cada nueva ruta de entrada representa una oportunidad para que se produzca la pérdida accidental o intencionada de datos o la aplicación resulte dañada.Each new inbound pathway represents an opportunity for accidental or purposeful data leakage or application damage.

Acceso de DevOpsDevOps access

Use RBAC para restringir las operaciones que DevOps puede realizar en cada nivel.Use RBAC to restrict the operations that DevOps can perform on each tier. Al conceder permisos, use el principio de los privilegios mínimos.When granting permissions, use the principle of least privilege. Registre todas las operaciones administrativas y realice auditorías periódicas para asegurarse de que los cambios de configuración se habían planeado.Log all administrative operations and perform regular audits to ensure any configuration changes were planned.

Consideraciones sobre el costoCost considerations

Puede usar la calculadora de precios de Azure para calcular los costos.Use the Azure pricing calculator to estimate costs. Otras consideraciones se describen en la sección Costo de Marco de buena arquitectura de Microsoft Azure.Other considerations are described in the Cost section in Microsoft Azure Well-Architected Framework.

Estas son las consideraciones de costo de los servicios que se usan en esta arquitectura.Here are cost considerations for the services used in this architecture.

Azure FirewallAzure Firewall

En esta arquitectura, Azure Firewall se implementa en la red virtual para controlar el tráfico entre la subred de la puerta de enlace y la subred en la que se ejecuta la capa de aplicación.In this architecture, Azure Firewall is deployed in the virtual network to control traffic between the gateway's subnet and the subnet in which the application tier runs. De esta manera, Azure Firewall es rentable porque se usa como una solución compartida utilizada por varias cargas de trabajo.In this way Azure Firewall is cost effective because it's used as a shared solution consumed by multiple workloads. Estos son los modelos de precios de Azure Firewall:Here are the Azure Firewall pricing models:

  • Tarifa fija por hora de implementación.Fixed rate per deployment hour.
  • Datos procesados por GB para admitir el escalado automático.Data processed per GB to support auto scaling.

En comparación con las aplicaciones virtuales de red (NVA), con Azure Firewall puede ahorrar hasta un 30 o 50 %.When compared to network virtual appliances (NVAs), with Azure Firewall you can save up to 30-50%. Para más información, consulte Azure Firewall frente a aplicación virtual de red.For more information see Azure Firewall vs NVA.

Azure BastionAzure Bastion

Azure Bastion se conecta de forma segura a la máquina virtual a través de RDP y SSH sin necesidad de configurar una dirección IP pública en la máquina virtual.Azure Bastion securely connects to your virtual machine over RDP and SSH without having the need to configure a public IP on the virtual machine.

La facturación de Bastion es comparable a una máquina virtual básica de bajo nivel configurada como Jumpbox.Bastion billing is comparable to a basic, low-level virtual machine configured as a jumpbox. De la comparación de Bastion con Jumpbox se desprende que Bastion es más rentable debido a sus características de seguridad integradas y que no se producen costos adicionales por el almacenamiento y la administración de un servidor independiente.Comparing Bastion to a jump box, Bastion is more cost effective considering Bastion's built-in security features and no extra costs incurred for storage and managing a separate server.

Azure Virtual NetworkAzure Virtual Network

Azure Virtual Network es gratis.Azure Virtual Network is free. A cada suscripción se le permite crear un máximo de 50 redes virtuales en todas las regiones.Every subscription is allowed to create up to 50 virtual networks across all regions. Todo el tráfico que produce dentro de los límites de una red virtual es gratis.All traffic that occurs within the boundaries of a virtual network is free. Por tanto, si dos máquinas virtuales que se encuentran en la misma red virtual se comunican entre sí, no se producirán cargos.So if two VMs that are in the same VNET are talking each other then no charges will occur.

Equilibrador de carga internoInternal load balancer

El equilibrio de carga básico entre máquinas virtuales que residen en la misma red virtual es gratuito.Basic load balancing between virtual machines that reside in the same virtual network is free.

En esta arquitectura, los equilibradores de carga internos se usan para equilibrar la carga del tráfico dentro de una red virtual.In this architecture, internal load balancers are used to load balance traffic inside a virtual network.

Implementación de la soluciónDeploy the solution

Se puede encontrar una implementación de una arquitectura de referencia que implementa estas recomendaciones en GitHub.A deployment for a reference architecture that implements these recommendations is available on GitHub.

Requisitos previosPrerequisites

  1. Clone, bifurque o descargue el archivo zip del repositorio de GitHub de arquitecturas de referencia.Clone, fork, or download the zip file for the reference architectures GitHub repository.

  2. Instale la CLI de Azure 2.0.Install Azure CLI 2.0.

  3. Instale Node y NPM.Install Node and NPM

  4. Instale el paquete de npm de bloques de creación de Azure.Install the Azure building blocks npm package.

    npm install -g @mspnp/azure-building-blocks
    
  5. Desde un símbolo del sistema, un símbolo del sistema de Bash o un símbolo del sistema de PowerShell, inicie sesión en su cuenta de Azure como se indica a continuación:From a command prompt, bash prompt, or PowerShell prompt, sign into your Azure account as follows:

    az login
    

Implementación de recursosDeploy resources

  1. Vaya a la carpeta /dmz/secure-vnet-hybrid del repositorio de GitHub de las arquitecturas de referencia.Navigate to the /dmz/secure-vnet-hybrid folder of the reference architectures GitHub repository.

  2. Ejecute el siguiente comando:Run the following command:

    azbb -s <subscription_id> -g <resource_group_name> -l <region> -p onprem.json --deploy
    
  3. Ejecute el siguiente comando:Run the following command:

    azbb -s <subscription_id> -g <resource_group_name> -l <region> -p secure-vnet-hybrid.json --deploy
    

Conexión de las puertas de enlace local y de AzureConnect the on-premises and Azure gateways

En este paso, conectará las dos puertas de enlace de red local.In this step, you will connect the two local network gateways.

  1. En Azure Portal, navegue hasta el grupo de recursos que ha creado.In the Azure portal, navigate to the resource group that you created.

  2. Busque el recurso llamado ra-vpn-vgw-pip y copie la dirección IP que se muestra en la hoja Información general.Find the resource named ra-vpn-vgw-pip and copy the IP address shown in the Overview blade.

  3. Busque el recurso llamado onprem-vpn-lgw.Find the resource named onprem-vpn-lgw.

  4. Haga clic en la hoja Configuración.Click the Configuration blade. En Dirección IP, pegue la dirección IP del paso 2.Under IP address, paste in the IP address from step 2.

    Captura de pantalla del campo de dirección IP

  5. Haga clic en Guardar y espere a que finalice la operación.Click Save and wait for the operation to complete. Puede tardar unos 5 minutos.It can take about 5 minutes.

  6. Busque el recurso llamado onprem-vpn-gateway1-pip.Find the resource named onprem-vpn-gateway1-pip. Copie la dirección IP que se muestra en la hoja Información general.Copy the IP address shown in the Overview blade.

  7. Busque el recurso llamado ra-vpn-lgw.Find the resource named ra-vpn-lgw.

  8. Haga clic en la hoja Configuración.Click the Configuration blade. En Dirección IP, pegue la dirección IP del paso 6.Under IP address, paste in the IP address from step 6.

  9. Haga clic en Guardar y espere a que finalice la operación.Click Save and wait for the operation to complete.

  10. Para comprobar la conexión, vaya a la hoja Conexiones de cada puerta de enlace.To verify the connection, go to the Connections blade for each gateway. El estado debe ser Conectado.The status should be Connected.

Compruebe que el tráfico de red llega al nivel webVerify that network traffic reaches the web tier

  1. En Azure Portal, navegue hasta el grupo de recursos que ha creado.In the Azure portal, navigate to the resource group that you created.

  2. Busque el recurso llamado fe-config1-web, que es el equilibrador de carga que hay delante del nivel web.Find the resource named fe-config1-web, which is the load balancer in front of web tier. Copie la dirección IP privada de la hoja Información general.Copy the private IP address from the Overview blade.

  3. Busque la máquina virtual denominada jb-vm1.Find the VM named jb-vm1. Esta máquina virtual representa la red local.This VM represents the on-premises network. Haga clic en Conectar y use el escritorio remoto para conectarse a la máquina virtual.Click Connect and use Remote Desktop to connect to the VM. El nombre de usuario y la contraseña se especifican en el archivo onprem.json.The user name and password are specified in the onprem.json file.

  4. En la sesión del escritorio remoto, abra un explorador web y vaya a la dirección IP del paso 2.From the Remote Desktop Session, open a web browser and navigate to the IP address from step 2. Debería ver la página principal predeterminada del servidor Apache2.You should see the default Apache2 server home page.

Pasos siguientesNext steps