Compartilhar via


Conectar-se com segurança a recursos de back-end em um Ambiente do Serviço de Aplicativo

Importante

Este artigo é sobre o Ambiente do Serviço de Aplicativo v1. O Ambiente do Serviço de Aplicativo v1 será desativado em 31 de agosto de 2024. Há uma nova versão do Ambiente de Serviço de Aplicativo que é mais fácil de usar e é executado na infraestrutura mais avançada. Para saber mais sobre a nova versão, comece com Introdução ao Ambiente do Serviço de Aplicativo. Se você estiver usando o Ambiente do Serviço de Aplicativo v1, siga as etapas neste artigo para migrar para a nova versão.

Desde 29 de janeiro de 2024, você não pode mais criar recursos do Ambiente do Serviço de Aplicativo v1 usando um dos métodos disponíveis, incluindo os modelos do ARM/Bicep, o portal do Azure, a CLI do Azure ou a API REST. Você precisará migrar para o Ambiente do Serviço de Aplicativo v3 antes de 31 de agosto de 2024 para evitar a exclusão de recursos e a perda de dados.

Como um Ambiente do Serviço de Aplicativo sempre é criado ou em uma rede virtual do Azure Resource Manager, ou em uma rede virtual do modelo de implantação clássico, as conexões de saída de um Ambiente do Serviço de Aplicativo com outros recursos de back-end podem fluir exclusivamente pela rede virtual. Desde junho de 2016, os ASEs podem ser implantados nas redes virtuais que usam intervalos de endereço públicos ou espaços de endereço RFC1918 (endereços privados).

Por exemplo, pode haver um SQL Server em execução em um cluster de máquinas virtuais com a porta 1433 bloqueada. O ponto de extremidade pode ser ACLd, para permitir apenas acesso de outros recursos na mesma rede virtual.

Como outro exemplo, pontos de extremidade confidenciais podem ser executados localmente e conectados ao Azure via conexões Site a Site ou do Azure ExpressRoute. Como resultado, apenas os recursos nas redes virtuais conectadas a túneis Site a Site ou do ExpressRoute podem acessar os pontos de extremidade locais.

Para todos esses cenários, os aplicativos em execução em um Ambiente do Serviço de Aplicativo podem se conectar com segurança aos diversos servidores e recursos. Se o tráfego de saída de aplicativos é executado em um Ambiente do Serviço de Aplicativo para pontos de extremidade privados na mesma rede virtual ou está conectado à mesma rede virtual, ele passará apenas pela rede virtual. O tráfego de saída para pontos de extremidade privados não vai passar pela Internet pública.

Um problema se aplica ao tráfego de saída de um Ambiente do Serviço de Aplicativo para pontos de extremidade em uma rede virtual. Os Ambientes do Serviço de Aplicativo não podem acessar os pontos de extremidade de máquinas virtuais que estão localizados na mesma sub-rede que o Ambiente do Serviço de Aplicativo. Essa limitação normalmente não é um problema, se os Ambientes do Serviço de Aplicativo estiverem implantados em uma sub-rede reservada para uso exclusivo do Ambiente do Serviço de Aplicativo.

Observação

Embora este artigo esteja relacionado a aplicativos Web, ele também serve para aplicativos de API e aplicativos móveis.

Requisitos de DNS e conectividade de saída

Para um Ambiente de Serviço de Aplicativo funcionar corretamente, ele requer acesso de saída a vários pontos de extremidade. Uma lista completa dos pontos de extremidade externos usado por um ASE está na seção "Conectividade de rede necessária" do artigo Configuração de rede para o ExpressRoute .

Ambientes de Serviço de Aplicativo exigem uma infraestrutura DNS válida configurada para a rede virtual. Se a configuração do DNS for alterada após a criação do Ambiente do Serviço de Aplicativo, os desenvolvedores podem forçar um Ambiente do Serviço de Aplicativo a captar a nova configuração de DNS. Na parte superior da folha gerenciamento do Ambiente do Serviço de Aplicativo no portal, selecione o ícone Reiniciar para disparar uma reinicialização do ambiente sem interrupção, o que vai fazer com que o ambiente capture a nova configuração de DNS.

Também é recomendável que todos os servidores DNS personalizados na VNet sejam configurados antes da criação de um Ambiente do Serviço de Aplicativo. A alteração da configuração do DNS de uma rede virtual durante a criação de um Ambiente do Serviço de Aplicativo vai resultar em uma falha do processo de criação do Ambiente do Serviço de Aplicativo. O processo de criação do Ambiente do Serviço de Aplicativo também vai falhar se houver um servidor DNS inacessível ou indisponível na outra extremidade de um gateway de VPN.

Conectando-se a um SQL Server

Uma configuração comum do SQL Server tem um ponto de extremidade escutando na porta 1433:

SQL Server Endpoint

Há duas abordagens para restringir o tráfego para esse ponto de extremidade:

Restringindo o acesso com uma ACL de rede

A porta 1433 pode ser protegida usando uma lista de controle de acesso de rede. O exemplo abaixo adiciona os endereços de cliente que se originam de dentro de uma rede virtual às permissões de atribuição e bloqueia o acesso aos outros clientes.

Network Access Control List Example

Todos os aplicativos em execução no Ambiente do Serviço de Aplicativo na mesma rede virtual que o SQL Server podem se conectar à instância do SQL Server. Use o endereço IP interno da VNet para a máquina virtual do SQL Server.

A cadeia de conexão de exemplo a seguir faz referência ao SQL Server usando seu endereço IP privado.

Server=tcp:10.0.1.6;Database=MyDatabase;User ID=MyUser;Password=PasswordHere;provider=System.Data.SqlClient

Embora a máquina virtual também tenha um ponto de extremidade público, as tentativas de conexão usando o endereço IP público vão ser rejeitadas devido à ACL de rede.

Restringindo o acesso com um grupo de segurança de rede

Uma abordagem alternativa para proteger o acesso é com um grupo de segurança de rede. Grupos de segurança de rede podem ser aplicados a máquinas virtuais individuais ou a uma sub-rede que contenha as máquinas virtuais.

Primeiro, você precisa criar um grupo de segurança de rede:

New-AzureNetworkSecurityGroup -Name "testNSGexample" -Location "South Central US" -Label "Example network security group for an app service environment"

Restringir o acesso apenas ao tráfego interno da VNet é simples com um grupo de segurança de rede. As regras padrão em um grupo de segurança de rede somente permitem o acesso a partir de outros clientes de rede na mesma rede virtual.

Como resultado, o bloqueio do acesso ao SQL Server é simples. Basta aplicar um grupo de segurança de rede com as regras padrão para as máquinas virtuais que executam o SQL Server ou para a sub-rede que contém as máquinas virtuais.

O exemplo a seguir aplica a um grupo de segurança de rede à sub-rede que o contém:

Get-AzureNetworkSecurityGroup -Name "testNSGExample" | Set-AzureNetworkSecurityGroupToSubnet -VirtualNetworkName 'testVNet' -SubnetName 'Subnet-1'

O resultado é um conjunto de regras de segurança que bloqueiam o acesso externo e permitem o acesso interno da VNet:

Default Network Security Rules

Introdução

Para se familiarizar com os ambientes de serviço de aplicativo, consulte Introdução ao ambiente do serviço de aplicativo

Para obter detalhes sobre como controlar o tráfego de entrada para seu Ambiente do Serviço de Aplicativo, confira Como controlar o tráfego de entrada para um Ambiente do Serviço de Aplicativo

Observação

Se você deseja começar com o Serviço de Aplicativo do Azure antes de se inscrever em uma conta do Azure, acesse Experimentar o Serviço de Aplicativo, em que você pode criar imediatamente um aplicativo Web inicial de curta duração no Serviço de Aplicativo. Nenhum cartão de crédito é exigido, sem compromissos.