Restrições de acesso ao Serviço de Aplicativo do Azure

As restrições de acesso ao Serviço de Aplicativo são equivalentes a um firewall que permite bloquear e filtrar o tráfego. As restrições de acesso se aplicam somente ao acesso de entrada. A maioria dos tipos de preço do Serviço de Aplicativo também tem a capacidade de adicionar pontos de extremidade privados ao aplicativo, o que é outro ponto de entrada para o aplicativo. As restrições de acesso não se aplicam ao tráfego que entra por meio de um ponto de extremidade privado. Para todos os aplicativos hospedados no Serviço de Aplicativo, o ponto de entrada padrão está disponível publicamente. A única exceção se refere aos aplicativos hospedados no Ambiente do Serviço de Aplicativo do ILB, em que o ponto de entrada padrão é interno para a rede virtual.

Como ele funciona

Quando o tráfego chega ao Serviço de Aplicativo, primeiro, ele avalia se o tráfego é proveniente de um ponto de extremidade privado ou se está vindo por meio do ponto de extremidade padrão. Se o tráfego for enviado por meio de um ponto de extremidade privado, ele será enviado diretamente ao site sem restrições. As restrições para os pontos de extremidade privados são configuradas usando grupos de segurança de rede.

Se você enviar o tráfego pelo ponto de extremidade padrão (geralmente um ponto de extremidade público), o tráfego será avaliado primeiro no nível de acesso do site. Aqui você pode habilitar ou desabilitar o acesso. Se o acesso ao site estiver habilitado, o tráfego será avaliado no nível de acesso do aplicativo. Para qualquer aplicativo, você terá o site principal e o site de ferramentas avançadas (também conhecido como site do SCM ou do Kudu).

Você tem a opção de configurar um conjunto de regras de restrição de acesso para cada site. As regras de restrição de acesso são avaliadas na ordem de prioridade. Se algumas regras tiverem a mesma prioridade, elas serão avaliadas na ordem em que forem listadas quando retornadas da API do Resource Manager do Azure e no portal do Azure antes da classificação. Você também pode especificar o comportamento, se nenhuma regra for correspondente. As seções a seguir mostrarão os detalhes.

Diagram of access restrictions high-level flow.

Acesso ao aplicativo

O acesso ao aplicativo permite que você configure se o acesso está disponível por meio do ponto de extremidade padrão (público). Você configura esse comportamento como sendo Disabled ou Enabled. Quando o acesso estiver habilitado, você poderá adicionar regras de restrição de Acesso ao site para controlar o acesso em redes virtuais e endereços IP selecionados. Se a configuração não estiver definida, o comportamento padrão será habilitar o acesso, a menos que exista um ponto de extremidade privado que altere o comportamento para desabilitar o acesso.

Screenshot of app access option in Azure portal.

Na API do Azure Resource Manager, o acesso ao aplicativo é chamado de publicNetworkAccess. Para o Ambiente do Serviço de Aplicativo ILB, o ponto de entrada padrão para aplicativos é sempre interno na rede virtual. Habilitar o acesso ao aplicativo (publicNetworkAccess) não permite o acesso público direto aos aplicativos. Em vez disso, ele permite o acesso do ponto de entrada padrão, que corresponde ao endereço IP interno do Ambiente do Serviço de Aplicativo. Se o acesso ao aplicativo for desabilitado em um Ambiente do Serviço de Aplicativo ILB, você só poderá acessar os aplicativos por meio de pontos de extremidade privados adicionados aos aplicativos individuais.

Acesso ao site

As restrições de acesso ao site permitem filtrar as solicitações de entrada. As restrições de acesso ao site permitem criar uma lista de regras de permissão e negação, que são avaliadas em ordem de prioridade. Ele é semelhante ao recurso NSG (Grupo de Segurança de Rede) na rede do Azure.

Screenshot of site access options in Azure portal.

A restrição de acesso ao site tem vários tipos de regras que você pode aplicar:

Regra sem correspondência

Você pode configurar o comportamento, quando nenhuma regra for correspondida (a ação padrão). É uma regra especial que sempre aparece como a última regra da coleção de regras. Se a configuração não estiver definida, o comportamento da regra sem correspondência dependerá das regras configuradas. Se não houver regras, o comportamento de regra sem correspondência será permitir todo o acesso, mas se houver uma ou mais regras, ele será alterado implicitamente para negar todo o acesso. Você pode configurar explicitamente esse comportamento para permitir ou negar acesso, independentemente das regras definidas.

Regras de restrição de acesso baseado em IP

O recurso de restrições de acesso baseado em IP ajuda a restringir os endereços IP que podem ser usados para acessar o aplicativo. Há suporte para IPv4 e IPv6. Alguns casos de uso para esse recurso:

  • Restrinja o acesso ao aplicativo de um conjunto de endereços bem definidos.
  • Restrinja o acesso ao tráfego proveniente de um serviço de balanceamento de carga externo ou de outros dispositivos de rede com endereços IP de saída conhecidos.

Para saber como habilitar esse recurso, confira Configurações de restrições de acesso.

Observação

As regras de restrição de acesso baseado em IP tratam apenas dos intervalos de endereços da rede virtual quando o aplicativo está em um Ambiente do Serviço de Aplicativo. Se o aplicativo estiver no serviço multilocatário, será necessário usar pontos de extremidade de serviço para restringir o tráfego a sub-redes selecionadas na rede virtual.

Regras de restrição de acesso baseadas nos pontos de extremidade de serviço

Os pontos de extremidade de serviço permitem bloquear o acesso de entrada ao aplicativo para que o endereço de origem venha de um conjunto de sub-redes selecionadas. Esse recurso funciona em conjunto com as restrições de acesso de IP. Os pontos de extremidade de serviço não são compatíveis com a depuração remota. Se você quiser usar a depuração remota com o aplicativo, o cliente não poderá estar em uma sub-rede com pontos de extremidade de serviço habilitados. O processo de configuração dos pontos de extremidade de serviço é semelhante ao processo de configuração das restrições de acesso de IP. Você pode criar uma lista de permissão/negação de regras de acesso que inclua endereços públicos e sub-redes das suas redes virtuais.

Observação

Não há suporte para regras de restrição de acesso com base em pontos de extremidade de serviço nos aplicativos que têm um ponto de extremidade privado configurado ou que usam o SSL baseado em IP (endereço atribuído pelo aplicativo).

Para saber mais sobre como configurar pontos de extremidade de serviço com o aplicativo, confira Restrições de acesso do Serviço de Aplicativo do Azure.

Qualquer origem do ponto de extremidade de serviço

Para fins de teste ou em cenários específicos, você pode permitir o tráfego em qualquer sub-rede habilitada para o ponto de extremidade de serviço. Você pode fazer isso definindo uma regra baseada em IP, com o texto "AnyVnets", em vez de um intervalo de IP. Você não pode criar essas regras no portal, mas pode modificar uma regra baseada em IP existente e substituir o endereço IP pela cadeia de caracteres "AnyVnets".

Regras de restrição de acesso baseadas em marcas de serviço

As marcas de serviço do Azure são conjuntos bem definidos de endereços IP para os serviços do Azure. As marcas de serviço agrupam os intervalos de IP usados em vários serviços do Azure e, muitas vezes, também tem escopo adicional para regiões específicas. Esse tipo de regra permite filtrar o tráfego de entrada dos serviços específicos do Azure.

Para obter uma lista completa de marcas e mais informações, visite o link de marca de serviço acima.

Para saber como habilitar esse recurso, confira Configurações de restrições de acesso.

Regras de várias origens

As regras de várias origens permitem combinar até oito intervalos de IP ou oito marcas de serviço em uma regra. Você poderá usar regras de várias origens se tiver mais de 512 intervalos de IP. Você poderá usá-las se quiser criar regras lógicas em que vários intervalos de IP são combinados com um único filtro de cabeçalho HTTP.

As regras de várias origens são definidas da mesma maneira que você define regras de origem única, mas com cada intervalo separado por vírgula.

Você não pode criar essas regras no portal, mas pode modificar uma marca de serviço existente ou uma regra baseada em IP e adicionar mais fontes à regra.

Filtragem de cabeçalho HTTP para regras de restrição de acesso ao site

Para qualquer regra, independentemente do tipo, você pode adicionar a filtragem de cabeçalho HTTP. Os filtros de cabeçalho HTTP permitem inspecionar ainda mais a solicitação de entrada e o filtro com base em valores de cabeçalho HTTP específicos. Cada cabeçalho pode ter até oito valores por regra. Veja a seguir a lista de cabeçalhos HTTP com suporte:

  • X-Forwarded-For. Cabeçalho padrão para identificar o endereço IP de origem de um cliente que se conecta por meio de um servidor proxy. Aceita valores CIDR válidos.
  • X-Forwarded-Host. Cabeçalho padrão para identificar o host original solicitado pelo cliente. Aceita qualquer cadeia de caracteres de até 64 caracteres de comprimento.
  • X-Azure-FDID. Cabeçalho personalizado para identificar a instância de proxy reverso. O Azure Front Door envia um GUID identificando a instância, mas também pode ser usado por proxies que não são da Microsoft para identificar a instância específica. Aceita qualquer cadeia de caracteres de até 64 caracteres de comprimento.
  • X-FD-HealthProbe. Cabeçalho personalizado para identificar a investigação de integridade do proxy reverso. O Azure Front Door enviará "1" para identificar exclusivamente uma solicitação de investigação de integridade. O cabeçalho também pode ser usado por proxies que não são da Microsoft para identificar as investigações de integridade. Aceita qualquer cadeia de caracteres de até 64 caracteres de comprimento.

Alguns casos de uso para filtragem de cabeçalho HTTP são:

  • Restringir o acesso ao tráfego de servidores proxy que encaminham o nome do host
  • Restringir o acesso a uma instância específica do Azure Front Door com uma regra de marca de serviço e uma restrição ao cabeçalho X-Azure-FDID

Registro de diagnóstico

O Serviço de Aplicativo pode enviar várias categorias de log ao Azure Monitor. Uma dessas categorias é chamada IPSecurity Audit logs e representa as atividades nas restrições de acesso. Todas as solicitações que correspondem a uma regra (exceto a regra sem correspondência) permitem e negam, são registradas em log e podem ser usadas para validar a configuração das restrições de acesso. A funcionalidade de log também é uma ferramenta avançada durante a solução de problemas de configuração de regras.

Casos de uso avançados

A combinação dos recursos acima permite que você resolva alguns casos de uso específicos descritos nas seções a seguir.

Bloquear um endereço IP

Se você quiser negar/bloquear um ou mais endereços IP específicos, pode adicionar os endereços IP como regras de negação e configurar a regra sem correspondência para permitir todo o tráfego sem correspondência.

Restringir o acesso ao site de ferramentas avançadas

O site de ferramentas avançadas, que também é conhecido como SCM ou Kudu, tem uma coleção de regras individuais que você pode configurar. Você também pode configurar a regra sem correspondência para este site. Uma configuração permite que você use as regras configuradas para o site principal. Você não pode permitir seletivamente o acesso a determinados recursos do site de ferramentas avançadas. Por exemplo, você não pode permitir seletivamente o acesso somente ao console de gerenciamento do WebJobs no site de ferramentas avançadas.

Implantar por meio de pontos de extremidade privados

Você pode ter um site acessível publicamente, mas o sistema de implantação está em uma rede virtual. Você pode manter o tráfego de implantação privado adicionando um ponto de extremidade privado. Você precisa garantir que o acesso ao aplicativo público esteja habilitado. Por fim, você precisa definir a regra sem correspondência para o site de ferramentas avançadas negar, o que bloqueia todo o tráfego público para esse ponto de extremidade.

Permitir acesso de parceiro externo ao site protegido por ponto de extremidade privado

Nesse cenário, você está acessando o site por meio de um ponto de extremidade privado e está implantando por meio de um ponto de extremidade privado. Você pode convidar temporariamente um parceiro externo para testar o site. Você pode fazer isso habilitando o acesso público ao aplicativo. Adicione uma regra (baseada em IP) para identificar o cliente do parceiro. Configure a ação de regras sem correspondência para negar o site de ferramentas principais e avançadas.

Restringir o acesso a uma instância específica do Azure Front Door

O tráfego do Azure Front Door para o seu aplicativo é proveniente de um conjunto conhecido de intervalos de IP definido na marca de serviço AzureFrontDoor.Backend. Usando uma regra de restrição de marca de serviço, você pode restringir o tráfego para que ele seja originado apenas do Azure Front Door. Para garantir que o tráfego só seja originado da sua instância específica, você precisa filtrar ainda mais as solicitações de entrada com base no cabeçalho HTTP exclusivo enviado pelo Azure Front Door chamado X-Azure-FDID. Você pode encontrar a ID do Front Door no portal.

Próximas etapas

Observação

As regras de restrição de acesso que bloqueiam o acesso público ao seu site também podem bloquear serviços como streaming de log. Se você precisar deles, precisará permitir o endereço IP do Serviço de Aplicativo em suas restrições.