Restrições de acesso do Serviço de Aplicativo do Azure
As restrições de acesso no Serviço de Aplicativo são equivalentes a um firewall que permite bloquear e filtrar o tráfego. As restrições de acesso aplicam-se apenas ao acesso de entrada . A maioria dos níveis de preços do Serviço de Aplicativo também tem a capacidade de adicionar pontos de extremidade privados ao aplicativo, que é outro ponto de entrada para o aplicativo. As restrições de acesso não se aplicam ao tráfego que entra através de um ponto final 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 são os aplicativos hospedados no Ambiente do Serviço de Aplicativo ILB, onde o ponto de entrada padrão é interno à rede virtual.
Como funciona
Quando o tráfego chega ao Serviço de Aplicativo, ele primeiro avalia se o tráfego se origina de um ponto de extremidade privado ou está vindo através do ponto de extremidade padrão. Se o tráfego for enviado através de um ponto de extremidade privado, ele será enviado diretamente para o site sem quaisquer restrições. As restrições a pontos de extremidade privados são configuradas usando grupos de segurança de rede.
Se você enviar tráfego através do ponto de extremidade padrão (geralmente um ponto de extremidade público), o tráfego será avaliado primeiro no nível de acesso ao aplicativo. Aqui você pode ativar ou desativar o acesso. Se você habilitar o acesso ao aplicativo, o tráfego será avaliado no nível de acesso ao site. Para qualquer aplicativo, você tem o site principal e o site de ferramentas avançadas (também conhecido como site scm ou 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 em ordem de prioridade. Se algumas regras tiverem a mesma prioridade, elas serão avaliadas na ordem em que são listadas quando retornadas da API do Azure Resource Manager e no portal do Azure antes da classificação. Você também pode especificar o comportamento se nenhuma regra for correspondida. As seções a seguir entram em detalhes.
Acesso da aplicação
O acesso ao aplicativo permite configurar se o acesso está disponível por meio do ponto de extremidade padrão (público). Você configura esse comportamento para ser Disabled
ou Enabled
. Quando o acesso está habilitado, você pode adicionar regras de restrição de acesso ao site para controlar o acesso de redes virtuais e endereços IP selecionados.
Se a configuração não estiver definida (a propriedade é null
), o comportamento padrão é habilitar o acesso, a menos que exista um ponto de extremidade privado que altere o comportamento para desabilitar o acesso. No portal do Azure, quando a propriedade não está definida, o botão de opção também não está definido e você está usando o comportamento padrão.
Na API do Azure Resource Manager, a propriedade que controla o acesso ao aplicativo é chamada publicNetworkAccess
de . Para o Ambiente do Serviço de Aplicativo do ILB (balanceador de carga interno), o ponto de entrada padrão para aplicativos é sempre interno à rede virtual. Habilitar o acesso ao aplicativo (publicNetworkAccess
) não concede acesso público direto aos aplicativos, em vez disso, permite o acesso a partir do ponto de entrada padrão, que corresponde ao endereço IP interno do Ambiente do Serviço de Aplicativo. Se você desabilitar o acesso ao aplicativo em um Ambiente do Serviço de Aplicativo ILB, só poderá acessar os aplicativos por meio de pontos de extremidade privados adicionados aos aplicativos individuais.
Nota
Para sites Linux, as alterações na propriedade acionam a reinicialização do publicNetworkAccess
aplicativo.
Acesso ao site
As restrições de acesso ao site permitem filtrar as solicitações recebidas. As restrições de acesso ao site permitem que você crie uma lista de regras de permissão e negação que são avaliadas em ordem de prioridade. É semelhante ao recurso NSG (grupo de segurança de rede) na rede do Azure.
A restrição de acesso ao site tem vários tipos de regras que você pode aplicar:
Regra incomparável
Você pode configurar o comportamento quando nenhuma regra é 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 configurada, o comportamento da regra incomparável dependerá das regras configuradas. Se não houver regras, o comportamento da regra incomparável é permitir todo o acesso, mas se uma ou mais regras existirem, ele implicitamente muda 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 baseadas em IP
O recurso de restrições de acesso baseadas em IP ajuda quando você deseja restringir os endereços IP que podem ser usados para acessar seu aplicativo. O IPv4 e o IPv6 são suportados. Alguns casos de uso para esse recurso:
- Restrinja o acesso ao seu aplicativo a partir 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, consulte Configurando restrições de acesso.
Nota
As regras de restrição de acesso baseadas em IP só lidam com intervalos de endereços de rede virtual quando seu aplicativo está em um Ambiente do Serviço de Aplicativo. Se seu aplicativo estiver no serviço multilocatário, você precisará usar pontos de extremidade de serviço para restringir o tráfego para selecionar sub-redes em sua rede virtual.
Regras de restrição de acesso com base em pontos de extremidade de serviço
Os pontos de extremidade de serviço permitem que você bloqueie o acesso de entrada ao seu aplicativo para que o endereço de origem venha de um conjunto de sub-redes selecionado. Este recurso funciona em conjunto com restrições de acesso IP. Os pontos finais de serviço não são compatíveis com a depuração remota. Se você quiser usar a depuração remota com seu aplicativo, seu cliente não poderá estar em uma sub-rede que tenha pontos de extremidade de serviço habilitados. O processo para definir pontos de extremidade de serviço é semelhante ao processo para definir restrições de acesso IP. Você pode criar uma lista de permissão/negação de regras de acesso que inclua endereços públicos e sub-redes em suas redes virtuais.
Nota
As regras de restrição de acesso baseadas em pontos de extremidade de serviço não são suportadas em aplicativos que têm ponto de extremidade privado configurado ou aplicativos que usam SSL baseado em IP (endereço atribuído ao aplicativo).
Para saber mais sobre como configurar pontos de extremidade de serviço com seu aplicativo, consulte Restrições de acesso ao Serviço de Aplicativo do Azure.
Qualquer origem de ponto de extremidade de serviço
Para testes ou em cenários específicos, você pode permitir o tráfego de qualquer sub-rede habilitada para 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 com base em tags de serviço
As tags de serviço do Azure são conjuntos bem definidos de endereços IP para serviços do Azure. As tags de serviço agrupam os intervalos de IP usados em vários serviços do Azure e, muitas vezes, também têm escopo adicional para regiões específicas. Esse tipo de regra permite filtrar o tráfego de entrada de serviços específicos do Azure.
Para obter uma lista completa de tags e mais informações, visite o link da tag de serviço.
Para saber como habilitar esse recurso, consulte Configurando restrições de acesso.
Regras de várias fontes
As regras de várias origens permitem combinar até oito intervalos de IP ou oito Etiquetas de Serviço numa única regra. Você pode usar regras de várias fontes se tiver mais de 512 intervalos de IP. Você também pode usar regras de várias fontes 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 fontes são definidas da mesma forma que você define regras de fonte única, mas com cada intervalo separado por vírgula.
Não é possível criar essas regras no portal, mas é possível 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 filtragem de cabeçalho http. Os filtros de cabeçalho http permitem que você inspecione ainda mais a solicitação de entrada e filtre com base em valores específicos de cabeçalho http. Cada cabeçalho pode ter até oito valores por regra. A lista a seguir lista os cabeçalhos http suportados:
- X-Encaminhado para. Cabeçalho padrão para identificar o endereço IP de origem de um cliente que se conecta através de um servidor proxy. Aceita endereços IP 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.
- 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 para proxies que não sejam da Microsoft para identificar a instância específica. Aceita qualquer cadeia de caracteres de até 64 caracteres.
- X-FD-HealthProbe. Cabeçalho personalizado para identificar a investigação de integridade do proxy reverso. O Azure Front Door envia "1" para identificar exclusivamente uma solicitação de investigação de integridade. O cabeçalho também pode ser usado para proxies que não sejam da Microsoft para identificar testes de integridade. Aceita qualquer cadeia de caracteres de até 64 caracteres.
Alguns casos de uso para filtragem de cabeçalho http são:
- Restringir o acesso ao tráfego de servidores proxy encaminhando 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 restrição de cabeçalho X-Azure-FDID
Registo de diagnósticos
O Serviço de Aplicativo pode enviar várias categorias de log para o Azure Monitor. Uma dessas categorias é chamada IPSecurity Audit logs
e representa as atividades em restrições de acesso. Todos os pedidos que correspondam a uma regra (exceto a regra não correspondida), tanto de permissão como de negação, são registados e podem ser utilizados para validar a configuração das restrições de acesso. A capacidade de registo é também uma ferramenta poderosa para a resoluçã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 único endereço IP
Se quiser negar/bloquear um ou mais endereços IP específicos, você pode adicionar os endereços IP como regras de negação e configurar a regra incomparável para permitir todo o tráfego incomparável.
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 incomparável para este site. Uma configuração permite que você use as regras configuradas para o site principal. Não é possível permitir seletivamente o acesso a determinados recursos avançados do site de ferramentas. Por exemplo, você não pode permitir seletivamente o acesso apenas ao console de gerenciamento WebJobs no site de ferramentas avançadas.
Implantar por meio de um ponto de extremidade privado
Você pode ter um site acessível publicamente, mas seu 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. Em seguida, você precisa garantir que o acesso público ao aplicativo esteja habilitado. Finalmente, você precisa definir a regra incomparável para o site de ferramentas avançadas para negar, que bloqueia todo o tráfego público para esse ponto de extremidade.
Permitir o acesso de parceiros externos a um site privado protegido por pontos finais
Nesse cenário, você está acessando seu site por meio de um ponto de extremidade privado e está implantando por meio de um ponto de extremidade privado. Pode convidar temporariamente um parceiro externo para testar o sítio. Você pode fazer isso habilitando o acesso público ao aplicativo. Adicione uma regra (baseada em IP) para identificar o cliente do parceiro. Configure uma ação de regras incomparável para negar para 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 seu aplicativo é originado de um conjunto bem conhecido de intervalos de IP definidos na AzureFrontDoor.Backend
tag de serviço. Usando uma regra de restrição de marca de serviço, você pode restringir o tráfego para originar apenas da Porta da Frente do Azure. Para garantir que o tráfego se origine apenas de sua instância específica, você precisa filtrar ainda mais as solicitações de entrada com base no cabeçalho http exclusivo que o Azure Front Door envia chamado X-Azure-FDID. Você pode encontrar o ID da porta da frente no portal.
Próximos passos
Nota
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 logs. Se você precisar deles, precisará permitir o endereço IP do Serviço de Aplicativo em suas restrições.