DMZ de rede entre o Azure e um datacenter localNetwork DMZ between Azure and an on-premises datacenter

Essa arquitetura de referência mostra uma rede híbrida segura que estende uma rede local para o Azure.This reference architecture shows a secure hybrid network that extends an on-premises network to Azure. A arquitetura implementa uma DMZ, também chamada de rede de perímetro, entre a rede local e uma rede virtual do Azure.The architecture implements a DMZ, also called a perimeter network, between the on-premises network and an Azure virtual network. Todo o tráfego de entrada e de saída passa pelo firewall do Azure.All inbound and outbound traffic passes through Azure Firewall. Implantar esta solução.Deploy this solution.

Proteger arquitetura de rede híbrida

Baixe um Arquivo Visio dessa arquitetura.Download a Visio file of this architecture.

Essa arquitetura exige uma conexão com o datacenter local, usando um Gateway de VPN ou uma conexão do ExpressRoute.This architecture requires a connection to your on-premises datacenter, using either a VPN gateway or an ExpressRoute connection. Alguns usos típicos dessa arquitetura:Typical uses for this architecture include:

  • Aplicativos híbridos nos quais as cargas de trabalho são executadas parcialmente localmente e parcialmente no Azure.Hybrid applications where workloads run partly on-premises and partly in Azure.
  • Infraestrutura que requer controle granular sobre o tráfego entrando em uma rede virtual do Azure de um datacenter local.Infrastructure that requires granular control over traffic entering an Azure virtual network from an on-premises datacenter.
  • Aplicativos que precisam auditar o tráfego de saída.Applications that must audit outgoing traffic. Isso geralmente é um requisito de regulamentação de muitos sistemas comerciais e pode ajudar a evitar a divulgação de informações privadas.This is often a regulatory requirement of many commercial systems and can help to prevent public disclosure of private information.

ArquiteturaArchitecture

A arquitetura consiste nos componentes a seguir.The architecture consists of the following components.

  • Rede local.On-premises network. Uma rede local privada implementada em uma organização.A private local-area network implemented in an organization.

  • Rede virtual do Azure.Azure virtual network. A rede virtual hospeda o aplicativo e outros recursos em execução no Azure.The virtual network hosts the application and other resources running in Azure.

  • Gateway.Gateway. O Gateway fornece conectividade entre os roteadores na rede local e a rede virtual.The gateway provides connectivity between the routers in the on-premises network and the virtual network. O gateway é colocado em sua própria sub-rede.The gateway is placed in its own subnet.

  • Firewall do Azure.Azure Firewall. O Firewall do Azure é um firewall gerenciado como um serviço.Azure Firewall is a managed firewall as a service. A instância de firewall é colocada em sua própria sub-rede.The Firewall instance is placed in its own subnet.

  • Rotas de rede virtual.Virtual network routes. As rotas de rede virtual definem o fluxo de tráfego IP dentro da rede virtual do Azure.Virtual network routes define the flow of IP traffic within the Azure virtual network. No diagrama mostrado acima, há duas tabelas de rotas definidas pelo usuário.In the diagram shown above, there are two user-defined route tables.

    • Na sub-rede de gateway, o tráfego enviado para a sub-rede da camada da Web (10.0.1.0/24) é roteado por meio da instância do firewall do Azure.In the gateway subnet, traffic sent to the web-tier subnet (10.0.1.0/24) is routed through the Azure Firewall instance.
    • Na sub-rede da camada da Web, como não há rota para o espaço de endereço da VNet em si para apontar para o Firewall do Azure, as instâncias da camada da Web podem se comunicar diretamente entre si, não por meio do firewall do Azure.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.

    Observação

    Dependendo dos requisitos de sua conexão VPN, você pode configurar rotas de Border Gateway Protocol (BGP) para implementar as regras de encaminhamento que direcionam o tráfego de volta por meio da rede 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 segurança de rede.Network security groups. Use grupos de segurança para restringir o tráfego de rede na rede virtual.Use security groups to restrict network traffic within the virtual network. Por exemplo, na implantação fornecida com essa arquitetura de referência, a sub-rede da camada da Web permite o tráfego TCP da rede local e de dentro da rede virtual; a camada de negócios permite o tráfego da camada da Web; e a camada de dados permite o tráfego da camada de negócios.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.

  • Bastiões.Bastion. A bastiões do Azure permite que você faça logon em VMs na rede virtual por meio de SSH ou RDP (Remote Desktop Protocol) sem expor as VMs diretamente à 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 a bastiões para gerenciar as VMs na rede virtual.Use Bastion to manage the VMs in the virtual network.

RecomendaçõesRecommendations

As seguintes recomendações aplicam-se à maioria dos cenários.The following recommendations apply for most scenarios. Siga estas recomendações, a menos que você tenha um requisito específico que as substitua.Follow these recommendations unless you have a specific requirement that overrides them.

Recomendações de controle de acessoAccess control recommendations

Use o RBAC ( controle de acesso baseado em função ) para gerenciar os recursos em seu aplicativo.Use role-based access control (RBAC) to manage the resources in your application. Considere criar as seguintes funções personalizadas:Consider creating the following custom roles:

  • Uma função de DevOps com permissões para administrar a infraestrutura do aplicativo, implantar os componentes do aplicativo e monitorar e reiniciar VMs.A DevOps role with permissions to administer the infrastructure for the application, deploy the application components, and monitor and restart VMs.

  • Uma função de administrador de TI centralizada para gerenciar e monitorar recursos de rede.A centralized IT administrator role to manage and monitor network resources.

  • Uma função de administrador de ti de segurança para gerenciar recursos de rede seguros, como o firewall.A security IT administrator role to manage secure network resources such as the firewall.

As funções DevOps e administrador de ti não devem ter acesso aos recursos do firewall.The DevOps and IT administrator roles should not have access to the firewall resources. Esse acesso deve ser restrito à função de administrador de TI de segurança.This should be restricted to the security IT administrator role.

Recomendações do grupo de recursosResource group recommendations

Recursos do Azure, como VMs, redes virtuais e balanceadores de carga, podem ser facilmente gerenciados agrupando-os em grupos de recursos.Azure resources such as VMs, virtual networks, and load balancers can be easily managed by grouping them together into resource groups. Atribua funções de RBAC a cada grupo de recursos para restringir o acesso.Assign RBAC roles to each resource group to restrict access.

É recomendável criar os grupos de recursos a seguir:We recommend creating the following resource groups:

  • Um grupo de recursos que contém a rede virtual (excluindo as VMs), NSGs e os recursos de gateway para se conectar à rede local.A resource group containing the virtual network (excluding the VMs), NSGs, and the gateway resources for connecting to the on-premises network. Atribua a função de administrador de TI centralizada a esse grupo de recursos.Assign the centralized IT administrator role to this resource group.
  • Um grupo de recursos que contém as VMs para a instância do firewall do Azure e as rotas definidas pelo usuário para a sub-rede de gateway.A resource group containing the VMs for the Azure Firewall instance and the user-defined routes for the gateway subnet. Atribua a função de administrador de TI de segurança a este grupo de recursos.Assign the security IT administrator role to this resource group.
  • Grupos de recursos separados para cada camada de aplicativo que contenha o balanceador de carga e as VMs.Separate resource groups for each application tier that contain the load balancer and VMs. Observe que esse grupo de recursos não deve incluir as sub-redes de cada camada.Note that this resource group shouldn't include the subnets for each tier. Atribua a função de DevOps a este grupo de recursos.Assign the DevOps role to this resource group.

Recomendações de redeNetworking recommendations

Para aceitar o tráfego de entrada da Internet, adicione uma regra de DNAT ( conversão de endereço de rede ) de destino ao firewall do Azure.To accept inbound traffic from the internet, add a Destination Network Address Translation (DNAT) rule to Azure Firewall.

  • Endereço de destino = endereço IP público da instância de firewall.Destination address = Public IP address of the firewall instance.
  • Endereço traduzido = endereço IP privado na rede virtual.Translated address = Private IP address within the virtual network.

O exemplo de implantação roteia o tráfego da Internet para a porta 80 para o balanceador de carga da camada da Web.The example deployment routes internet traffic for port 80 to the web tier load balancer.

Forçar o túnel para todo o tráfego de Internet de saída por meio de sua rede local usando o túnel de VPN site a site e rotear para a Internet usando a NAT (conversão de endereços de rede).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). Isso impede a perda acidental de informações confidenciais armazenadas na camada de dados e permite a inspeção e a auditoria de todo o tráfego de saída.This prevents accidental leakage of any confidential information stored in your data tier and allows inspection and auditing of all outgoing traffic.

Não bloqueie completamente o tráfego de Internet das camadas de aplicativo, pois isso impedirá que essas camadas usem os serviços de PaaS do Azure que dependem de endereços IP públicos, como o log de diagnóstico de VM, o download de extensões de VM e outras funcionalidades.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. O diagnóstico do Azure também requer que componentes possam ler e gravar em uma conta de armazenamento do Azure.Azure diagnostics also requires that components can read and write to an Azure Storage account.

Verifique se o tráfego de saída da Internet é forçado ao túnel corretamente.Verify that outbound internet traffic is force-tunneled correctly. Se você estiver usando uma conexão VPN com o serviço de roteamento e acesso remoto em um servidor local, use uma ferramenta como o 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 usar o gateway de aplicativo ou a porta frontal do Azure para terminação SSL.Consider using Application Gateway or Azure Front Door for SSL termination.

Considerações sobre escalabilidadeScalability considerations

Para obter detalhes sobre os limites de largura de banda do gateway de VPN, consulte SKUs de gateway.For details about the bandwidth limits of VPN Gateway, see Gateway SKUs. Para larguras de banda superiores, considere atualizar para um gateway do ExpressRoute.For higher bandwidths, consider upgrading to an ExpressRoute gateway. O ExpressRoute fornece até 10 Gbps de largura de banda com uma latência menor do que uma conexão de VPN.ExpressRoute provides up to 10 Gbps bandwidth with lower latency than a VPN connection.

Para obter mais informações sobre a escalabilidade dos gateways do Azure, consulte a seção de consideração de escalabilidade em Implementing a hybrid network architecture with Azure and on-premises VPN (Implementando uma arquitetura de rede híbrida com o Azure e VPN local) e Implementing a hybrid network architecture with Azure ExpressRoute (Implementando uma arquitetura de rede híbrida com o 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.

Considerações sobre disponibilidadeAvailability considerations

Se você estiver usando o Azure ExpressRoute para fornecer conectividade entre a rede virtual e a rede local, Configure um gateway de VPN para fornecer failover se a conexão do ExpressRoute ficar indisponível.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 obter informações específicas de como manter a disponibilidade para conexões de VPN e do ExpressRoute, consulte as considerações de disponibilidade Implementing a hybrid network architecture with Azure and on-premises VPN (Implementando uma arquitetura de rede híbrida com o Azure e VPN local) e Implementing a hybrid network architecture with Azure ExpressRoute (Implementando uma arquitetura de rede híbrida com o 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.

Considerações sobre capacidade de gerenciamentoManageability considerations

Se a conectividade de gateway da rede local para o Azure estiver inativa, você ainda poderá acessar as VMs na rede virtual do Azure por meio da bastiões do Azure.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.

A sub-rede de cada camada na arquitetura de referência é protegida por regras de NSG.Each tier's subnet in the reference architecture is protected by NSG rules. Talvez seja necessário criar uma regra para abrir a porta 3389 para acesso do protocolo RDP em VMs do Windows ou a porta 22 para acesso de SSH (Secure Shell) em VMs do 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. Outras ferramentas de gerenciamento e monitoramentos podem exigir regras para abrir portas adicionais.Other management and monitoring tools may require rules to open additional ports.

Se você estiver usando o ExpressRoute para fornecer a conectividade entre o datacenter local e o Azure, use o AzureCT (Kit de ferramentas de conectividade do Azure) para monitorar e solucionar problemas de conexão.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.

Você pode encontrar informações adicionais sobre como monitorar e gerenciar conexões VPN e ExpressRoute nos artigos:You can find additional information about monitoring and managing VPN and ExpressRoute connections in the articles:

Considerações de segurançaSecurity considerations

Essa arquitetura de referência implementa vários níveis de segurança.This reference architecture implements multiple levels of security.

Roteando todas as solicitações de usuário locais por meio do firewall do AzureRouting all on-premises user requests through Azure Firewall

A rota definida pelo usuário na sub-rede de Gateway bloqueia todas as solicitações de usuário diferentes das recebidas do local.The user-defined route in the gateway subnet blocks all user requests other than those received from on-premises. A rota passa solicitações permitidas para o firewall e essas solicitações são passadas para o aplicativo se elas forem permitidas pelas regras de firewall.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. Você pode adicionar outras rotas, mas verifique se elas não ignoram acidentalmente o firewall ou bloqueiam o tráfego administrativo destinado à sub-rede de gerenciamento.You can add other routes, but make sure they don't inadvertently bypass the firewall or block administrative traffic intended for the management subnet.

Usando os NSGs para bloquear/aprovar o tráfego entre as camadas de aplicativoUsing NSGs to block/pass traffic between application tiers

O tráfego entre camadas é restringido usando NSGs.Traffic between tiers is restricted by using NSGs. A camada de negócios bloqueia todo o tráfego que não se origina na camada da Web e a camada de dados bloqueia todo o tráfego que não se origina na camada de negócios.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. Se você tiver o requisito de expandir as regras do NSG para ampliar o acesso a essas camadas, pondere esses requisitos em relação aos riscos de segurança.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 novo caminho de entrada representa uma oportunidade para danos de aplicativo ou perda de dados acidental ou intencional.Each new inbound pathway represents an opportunity for accidental or purposeful data leakage or application damage.

Acesso de DevOpsDevOps access

Use o RBAC para restringir as operações que DevOps pode executar em cada camada.Use RBAC to restrict the operations that DevOps can perform on each tier. Ao conceder permissões, use o princípio de privilégios mínimos.When granting permissions, use the principle of least privilege. Registre em log todas as operações administrativas e execute auditorias regulares para confirmar se todas as alterações de configuração foram planejadas.Log all administrative operations and perform regular audits to ensure any configuration changes were planned.

Considerações de custoCost considerations

Use a Calculadora de Preços do Azure para estimar os custos.Use the Azure pricing calculator to estimate costs. Outras considerações são descritas na seção de custo em Microsoft Azure estrutura bem projetada.Other considerations are described in the Cost section in Microsoft Azure Well-Architected Framework.

Aqui estão as considerações de custo para os serviços usados nesta arquitetura.Here are cost considerations for the services used in this architecture.

Firewall do AzureAzure Firewall

Nessa arquitetura, o Firewall do Azure é implantado na rede virtual para controlar o tráfego entre a sub-rede do gateway e a sub-rede na qual a camada de aplicativo é executada.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. Dessa forma, o Firewall do Azure é econômico porque é usado como uma solução compartilhada consumida por várias cargas de trabalho.In this way Azure Firewall is cost effective because it's used as a shared solution consumed by multiple workloads. Aqui estão os modelos de preços do firewall do Azure:Here are the Azure Firewall pricing models:

  • Taxa fixa por hora de implantação.Fixed rate per deployment hour.
  • Dados processados por GB para dar suporte ao dimensionamento automático.Data processed per GB to support auto scaling.

Em comparação com NVAs (soluções de virtualização de rede), com o Firewall do Azure, você pode economizar até 30-50%.When compared to network virtual appliances (NVAs), with Azure Firewall you can save up to 30-50%. Para obter mais informações, consulte Firewall do Azure versus NVA.For more information see Azure Firewall vs NVA.

Azure BastionAzure Bastion

A bastiões do Azure se conecta com segurança à sua máquina virtual via RDP e SSH sem precisar configurar um IP público na 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.

A cobrança de bastiões é comparável a uma máquina virtual básica de baixo nível configurada como um Jumpbox.Bastion billing is comparable to a basic, low-level virtual machine configured as a jumpbox. Comparando a bastiões a uma caixa de salto, a bastiões é mais econômica considerando os recursos de segurança internos da bastiões e não há custos adicionais incorridos para o armazenamento e gerenciamento de um servidor separado.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.

Rede Virtual do AzureAzure Virtual Network

A Rede Virtual do Microsoft Azure é gratuita.Azure Virtual Network is free. Cada assinatura tem permissão para criar até 50 redes virtuais em todas as regiões.Every subscription is allowed to create up to 50 virtual networks across all regions. Todo o tráfego que ocorre dentro dos limites de uma rede virtual é gratuito.All traffic that occurs within the boundaries of a virtual network is free. Portanto, se duas VMs que estão na mesma VNET estiverem se comunicando, não haverá encargos.So if two VMs that are in the same VNET are talking each other then no charges will occur.

Balanceador de carga internoInternal load balancer

O balanceamento de carga básico entre as máquinas virtuais que residem na mesma rede virtual é gratuito.Basic load balancing between virtual machines that reside in the same virtual network is free.

Nessa arquitetura, os balanceadores de carga internos são usados para balancear a carga do tráfego dentro de uma rede virtual.In this architecture, internal load balancers are used to load balance traffic inside a virtual network.

Implantar a soluçãoDeploy the solution

Uma implantação para uma arquitetura de referência que implementa essas recomendações está disponível no GitHub.A deployment for a reference architecture that implements these recommendations is available on GitHub.

Pré-requisitosPrerequisites

  1. Clone, crie um fork ou baixe o arquivo zip das arquiteturas de referência no repositório GitHub.Clone, fork, or download the zip file for the reference architectures GitHub repository.

  2. Instale a CLI 2.0 do Azure.Install Azure CLI 2.0.

  3. Instalar o Node e o NPMInstall Node and NPM

  4. Instale o pacote npm dos Blocos de construção do Azure.Install the Azure building blocks npm package.

    npm install -g @mspnp/azure-building-blocks
    
  5. Em um prompt de comando, prompt do bash ou prompt do PowerShell, entre na sua conta do Azure da seguinte maneira:From a command prompt, bash prompt, or PowerShell prompt, sign into your Azure account as follows:

    az login
    

Implantação de recursosDeploy resources

  1. Navegue para a pasta /dmz/secure-vnet-hybrid do repositório GitHub de arquiteturas de referência.Navigate to the /dmz/secure-vnet-hybrid folder of the reference architectures GitHub repository.

  2. Execute o comando a seguir:Run the following command:

    azbb -s <subscription_id> -g <resource_group_name> -l <region> -p onprem.json --deploy
    
  3. Execute o comando a seguir:Run the following command:

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

Conectar os gateways do Azure e locaisConnect the on-premises and Azure gateways

Nesta etapa, você conectará os dois gateways de rede locais.In this step, you will connect the two local network gateways.

  1. No portal do Azure, navegue até o grupo de recursos que você criou.In the Azure portal, navigate to the resource group that you created.

  2. Localize o recurso denominado ra-vpn-vgw-pip e copie o endereço IP mostrado na folha Visão geral.Find the resource named ra-vpn-vgw-pip and copy the IP address shown in the Overview blade.

  3. Encontre o recurso denominado onprem-vpn-lgw.Find the resource named onprem-vpn-lgw.

  4. Clique na folha Configuração.Click the Configuration blade. No Endereço IP, cole o endereço IP da etapa 2.Under IP address, paste in the IP address from step 2.

    Captura de tela do campo Endereço IP

  5. Clique em Salvar e aguarde a conclusão da operação.Click Save and wait for the operation to complete. Isso pode levar cerca de 5 minutos.It can take about 5 minutes.

  6. Encontre o recurso denominado onprem-vpn-gateway1-pip.Find the resource named onprem-vpn-gateway1-pip. Copie o endereço IP mostrado na folha Visão geral.Copy the IP address shown in the Overview blade.

  7. Encontre o recurso denominado ra-vpn-lgw.Find the resource named ra-vpn-lgw.

  8. Clique na folha Configuração.Click the Configuration blade. No Endereço IP, cole o endereço IP da etapa 6.Under IP address, paste in the IP address from step 6.

  9. Clique em Salvar e aguarde a conclusão da operação.Click Save and wait for the operation to complete.

  10. Para verificar a conexão, vá até a folha Conexões de cada gateway.To verify the connection, go to the Connections blade for each gateway. O status deve ser Conectado.The status should be Connected.

Verificar se o tráfego de rede atinge a camada da WebVerify that network traffic reaches the web tier

  1. No portal do Azure, navegue até o grupo de recursos que você criou.In the Azure portal, navigate to the resource group that you created.

  2. Localize o recurso chamado fe-config1-web , que é o balanceador de carga na frente da camada da Web.Find the resource named fe-config1-web, which is the load balancer in front of web tier. Copie o endereço IP privado da folha Visão geral.Copy the private IP address from the Overview blade.

  3. Encontre a VM denominada jb-vm1.Find the VM named jb-vm1. Essa VM representa a rede local.This VM represents the on-premises network. Clique em Conectar e use a Área de Trabalho Remota para se conectar à VM.Click Connect and use Remote Desktop to connect to the VM. O nome de usuário e a senha são especificadas no arquivo onprem.json.The user name and password are specified in the onprem.json file.

  4. Na sessão de Área de Trabalho Remota, abra um navegador da Web e navegue até o endereço IP da etapa 2.From the Remote Desktop Session, open a web browser and navigate to the IP address from step 2. Você deve ver a home page padrão do servidor Apache2.You should see the default Apache2 server home page.

Próximas etapasNext steps