Configurar restrições de acesso para o Serviço de Aplicações do Azure
Nota
A partir de 1º de junho de 2024, todos os aplicativos do Serviço de Aplicativo recém-criados terão a opção de gerar um nome de host padrão exclusivo usando a convenção <app-name>-<random-hash>.<region>.azurewebsites.net
de nomenclatura. Os nomes de aplicativos existentes permanecerão inalterados.
Exemplo: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Para obter mais detalhes, consulte Nome de host padrão exclusivo para recurso do Serviço de Aplicativo.
Ao configurar restrições de acesso, pode definir uma lista de permissões/negações ordenada por prioridade que controla o acesso da rede à aplicação. A lista pode incluir endereços IP ou sub-redes da Rede Virtual do Azure. Quando há uma ou mais entradas, uma negação implícita de tudo existe no final da lista. Para saber mais sobre restrições de acesso, vá para a visão geral de restrições de acesso.
A capacidade de restrição de acesso funciona com todas as cargas de trabalho alojadas no Serviço de Aplicações do Azure. As cargas de trabalho podem incluir aplicações Web, aplicações API, aplicações Linux, contentores personalizados do Linux e Funções.
Quando é feito um pedido à aplicação, o endereço DE é avaliado tendo em conta as regras na lista de restrições de acesso. Se o endereço FROM estiver em uma sub-rede configurada com pontos de extremidade de serviço para Microsoft.Web
, a sub-rede de origem será comparada com as regras de rede virtual em sua lista de restrições de acesso. Se o endereço não tiver acesso permitido com base nas regras da lista, o serviço responderá com um código de status HTTP 403 .
O recurso de restrição de acesso é implementado nas funções front-end do Serviço de Aplicativo, que estão a montante dos hosts de trabalho onde seu código é executado. Portanto, as restrições de acesso são efetivamente listas de controle de acesso à rede (ACLs).
A capacidade de restringir o acesso ao seu aplicativo Web a partir de uma rede virtual do Azure usa pontos de extremidade de serviço. Com os endpoints de serviço, pode restringir o acesso a um serviço multi-tenant a partir de sub-redes selecionadas. Esta abordagem não funciona para restringir o tráfego para aplicações alojadas num Ambiente do Serviço de Aplicações. Se estiver num Ambiente do Serviço de Aplicações, pode controlar o acesso à aplicação ao aplicar regras de endereços IP.
Nota
Os pontos de extremidade de serviço devem ser habilitados no lado da rede e para o serviço do Azure com o qual estão sendo habilitados. Para obter uma lista de serviços do Azure que dão suporte a pontos de extremidade de serviço, consulte Pontos de extremidade de serviço de Rede Virtual.
Gerenciar regras de restrição de acesso no portal
Para adicionar uma regra de restrição de acesso ao seu aplicativo, siga estas etapas:
Inicie sessão no portal do Azure.
Selecione a aplicação à qual pretende adicionar restrições de acesso.
No menu à esquerda, selecione Rede.
Na página Rede, em Configuração de tráfego de entrada, selecione a configuração Acesso à rede pública.
Na página Restrições de Acesso, revise a lista de regras de restrição de acesso definidas para seu aplicativo.
A lista exibe todas as restrições atuais aplicadas ao aplicativo. Se você tiver uma restrição de rede virtual em seu aplicativo, a tabela mostrará se os pontos de extremidade de serviço estão habilitados para Microsoft.Web. Se nenhuma restrição for definida em seu aplicativo e sua regra incomparável não estiver definida como Negar, o aplicativo poderá ser acessado de qualquer lugar.
Permissões
As seguintes permissões de controle de acesso baseadas em função na sub-rede ou em um nível superior são necessárias para configurar restrições de acesso por meio do portal do Azure, CLI ou ao definir as propriedades de configuração do site diretamente:
Ação | Descrição |
---|---|
Microsoft.Web/sites/config/read | Obter definições de configuração do Aplicativo Web |
Microsoft.Web/sites/config/write | Atualizar definições de configuração do Web App |
Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action* | Associa recursos como conta de armazenamento ou banco de dados SQL a uma sub-rede |
Microsoft.Web/sites/gravação** | Atualizar configurações do Web App |
*apenas necessário ao adicionar uma regra de rede virtual (ponto de extremidade de serviço).
**apenas necessário se estiver a atualizar restrições de acesso através do portal do Azure.
Se você estiver adicionando uma regra baseada em ponto de extremidade de serviço e a rede virtual estiver em uma assinatura diferente do aplicativo, você deverá garantir que a assinatura com a rede virtual esteja registrada para o Microsoft.Web
provedor de recursos. Você pode registrar explicitamente o provedor seguindo esta documentação, mas também se registrar automaticamente ao criar o primeiro aplicativo Web em uma assinatura.
Adicionar uma regra de restrição de acesso
Para adicionar uma regra de restrição de acesso ao seu aplicativo, na página Restrições de Acesso, selecione Adicionar. A regra só entra em vigor depois de poupar.
As regras são aplicadas em ordem de prioridade, começando pelo número mais baixo na coluna Prioridade . Se você não configurar uma regra incomparável, uma negação implícita de tudo estará em vigor depois que você adicionar até mesmo uma única regra.
No painel Adicionar Restrição de Acesso, ao criar uma regra, faça o seguinte:
Em Ação, selecione Permitir ou Negar.
Opcionalmente, insira um nome e uma descrição da regra.
Na caixa Prioridade, insira um valor de prioridade.
Na lista suspensa Tipo, selecione o tipo de regra. Os diferentes tipos de regras são descritos nas seções a seguir.
Selecione Adicionar regra depois de digitar a entrada específica da regra para adicionar a regra à lista.
Por fim, selecione Salvar novamente na página Restrições de acesso .
Nota
- Há um limite de 512 regras de restrição de acesso. Se você precisar de mais de 512 regras de restrição de acesso, sugerimos que considere instalar um produto de segurança autônomo, como o Azure Front Door, o Azure App Gateway ou um WAF alternativo.
Definir uma regra baseada em endereço IP
Siga o procedimento descrito na secção anterior, mas com o seguinte aditamento:
- Para a etapa 4, na lista suspensa Tipo , selecione IPv4 ou IPv6.
Especifique o Bloco de Endereço IP na notação CIDR (Roteamento entre Domínios sem Classe) para os endereços IPv4 e IPv6. Para especificar um endereço, você pode usar algo como 1.2.3.4/32, onde os quatro primeiros octetos representam seu endereço IP e /32 é a máscara. A notação CIDR IPv4 para todos os endereços é 0.0.0.0/0. Para saber mais sobre a notação CIDR, consulte Roteamento entre domínios sem classe.
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.
Definir uma regra baseada em ponto de extremidade de serviço
Para a etapa 4, na lista suspensa Tipo , selecione Rede Virtual.
Especifique as listas suspensas Assinatura, Rede Virtual e Sub-rede , correspondentes ao que você deseja restringir o acesso.
Usando pontos de extremidade de serviço, você pode restringir o acesso a sub-redes de rede virtual do Azure selecionadas. Se os pontos de extremidade de serviço ainda não estiverem habilitados para Microsoft.Web
a sub-rede selecionada, eles serão habilitados automaticamente, a menos que você marque a caixa de seleção Ignorar pontos de extremidade de serviço ausentesMicrosoft.Web
. O cenário em que você pode querer habilitar pontos de extremidade de serviço no aplicativo, mas não na sub-rede, depende principalmente se você tem as permissões para habilitá-los na sub-rede.
Se você precisar de outra pessoa para habilitar pontos de extremidade de serviço na sub-rede, marque a caixa de seleção Ignorar pontos de extremidade de serviço Microsoft.Web ausentes . Seu aplicativo é configurado para pontos de extremidade de serviço em antecipação a habilitá-los posteriormente na sub-rede.
Não é possível usar pontos de extremidade de serviço para restringir o acesso a aplicativos executados em um Ambiente do Serviço de Aplicativo. Quando seu aplicativo está em um Ambiente do Serviço de Aplicativo, você pode controlar o acesso a ele aplicando regras de acesso IP.
Com pontos de extremidade de serviço, você pode configurar seu aplicativo com gateways de aplicativos ou outros dispositivos WAF (firewall de aplicativos Web). Você também pode configurar aplicativos de várias camadas com back-ends seguros. Para obter mais informações, consulte Recursos de rede e Integração do Serviço de Aplicativo e do Application Gateway com pontos de extremidade de serviço.
Nota
- Os pontos de extremidade de serviço não são suportados para aplicativos Web que usam ligações TLS/SSL baseadas em IP com um IP virtual (VIP).
Definir uma regra baseada em etiqueta de serviço
Para a etapa 4, na lista suspensa Tipo , selecione Etiqueta de serviço.
Todas as tags de serviço disponíveis publicamente são suportadas nas regras de restrição de acesso. Cada marca de serviço representa uma lista de intervalos de IP dos serviços do Azure. Está disponível na documentação da etiqueta de serviço uma lista destes serviços e de ligações para os intervalos específicos. Use modelos ou scripts do Azure Resource Manager para configurar regras mais avançadas, como regras de escopo regional.
Nota
Ao criar regras baseadas em tags de serviço por meio do portal do Azure ou da CLI do Azure, você precisará de acesso de leitura no nível da assinatura para obter a lista completa de tags de serviço para seleção/validação. Além disso, o Microsoft.Network
provedor de recursos precisa estar registrado na assinatura.
Editar uma regra
Para começar a editar uma regra de restrição de acesso existente, na página Restrições de Acesso , selecione a regra que deseja editar.
No painel Editar Restrição de Acesso , faça as alterações e selecione Atualizar regra.
Selecione Guardar para guardar as alterações.
Nota
Quando você edita uma regra, não pode alternar entre tipos de regra.
Eliminar uma regra
Para eliminar uma regra, na página Restrições de Acesso , verifique a regra ou regras que pretende eliminar e, em seguida, selecione Eliminar.
Selecione Guardar para guardar as alterações.
Cenários avançados de restrição de acesso
As seções a seguir descrevem alguns cenários avançados usando restrições de acesso.
Filtrar por cabeçalho http
Como parte de qualquer regra, você pode adicionar filtros de cabeçalho http. Os seguintes nomes de cabeçalho http são suportados:
- X-Encaminhado para
- X-Forwarded-Host
- X-Azure-FDID
- X-FD-HealthProbe
Para cada nome de cabeçalho, você pode adicionar até oito valores separados por vírgula. Os filtros de cabeçalho http são avaliados após a própria regra e ambas as condições devem ser verdadeiras para que a regra seja aplicada.
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ê usa regras de várias fontes se tiver mais de 512 intervalos de IP ou quiser criar regras lógicas. As regras lógicas podem ser quando 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.
Exemplo do PowerShell:
Add-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "AppName" `
-Name "Multi-source rule" -IpAddress "192.168.1.0/24,192.168.10.0/24,192.168.100.0/24" `
-Priority 100 -Action Allow
Bloquear um único endereço IP
Para um cenário em que você deseja bloquear explicitamente um único endereço IP ou um bloco de endereços IP, mas permitir acesso a todo o resto, adicione uma regra Negar para o endereço IP específico e configure a ação de regra incomparável como Permitir.
Restringir o acesso a um site do SCM
Além de poder controlar o acesso ao seu aplicativo, você pode restringir o acesso ao site SCM (ferramenta avançada) usado pelo seu aplicativo. O site do SCM é o ponto de extremidade de implantação da Web e o console do Kudu. Você pode atribuir restrições de acesso ao site do SCM a partir do aplicativo separadamente ou usar o mesmo conjunto de restrições para o aplicativo e o site do SCM. Quando você marca a caixa de seleção Usar regras do site principal, a lista de regras fica oculta e usa as regras do site principal. Se você desmarcar a caixa de seleção, as configurações do site do SCM serão exibidas novamente.
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 da 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.
Exemplo do PowerShell:
$afd = Get-AzFrontDoor -Name "MyFrontDoorInstanceName"
Add-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "AppName" `
-Name "Front Door example rule" -Priority 100 -Action Allow -ServiceTag AzureFrontDoor.Backend `
-HttpHeader @{'x-azure-fdid' = $afd.FrontDoorId}
Gerenciar a restrição de acesso programaticamente
Você pode gerenciar a restrição de acesso programaticamente, abaixo você pode encontrar exemplos de como adicionar regras a restrições de acesso e como alterar a ação de regra incomparável para o site principal e o site de ferramentas avançadas.
Adicionar regras de restrições de acesso para o site principal
Você pode adicionar regras de restrições de acesso para o site principal programaticamente escolhendo uma das seguintes opções:
Você pode executar o seguinte comando no Cloud Shell. Para obter mais informações sobre az webapp config access-restriction
comando, visite esta página.
az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
--rule-name 'IP example rule' --action Allow --ip-address 122.133.144.0/24 --priority 100
az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
--rule-name "Azure Front Door example" --action Allow --priority 200 --service-tag AzureFrontDoor.Backend \
--http-header x-azure-fdid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Adicionar regras de restrições de acesso para site de ferramentas avançadas
Você pode adicionar regras de restrições de acesso para o site de ferramentas avançadas programaticamente escolhendo uma das seguintes opções:
Você pode executar o seguinte comando no Cloud Shell. Para obter mais informações sobre az webapp config access-restriction
comando, visite esta página.
az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
--rule-name 'IP example rule' --action Allow --ip-address 122.133.144.0/24 --priority 100 --scm-site true
Alterar ação de regra incomparável para o site principal
Você pode alterar a ação de regra incomparável para o site principal programaticamente escolhendo uma das seguintes opções:
Você pode executar o seguinte comando no Cloud Shell. Para obter mais informações sobre az resource
comando, visite esta página. Os valores aceitos para ipSecurityRestrictionsDefaultAction
são Allow
ou Deny
.
az resource update --resource-group ResourceGroup --name AppName --resource-type "Microsoft.Web/sites" \
--set properties.siteConfig.ipSecurityRestrictionsDefaultAction=Allow
Alterar ação de regra incomparável para site de ferramentas avançadas
Você pode alterar a ação de regra incomparável para o site de ferramentas avançadas programaticamente escolhendo uma das seguintes opções:
Você pode executar o seguinte comando no Cloud Shell. Para obter mais informações sobre az resource
comando, visite esta página. Os valores aceitos para scmIpSecurityRestrictionsDefaultAction
são Allow
ou Deny
.
az resource update --resource-group ResourceGroup --name AppName --resource-type "Microsoft.Web/sites" \
--set properties.siteConfig.scmIpSecurityRestrictionsDefaultAction=Allow
Configurar restrições de acesso do Azure Functions
As restrições de acesso também estão disponíveis para aplicativos funcionais com a mesma funcionalidade dos planos do Serviço de Aplicativo. Ao habilitar restrições de acesso, você também desabilita o editor de código do portal do Azure para quaisquer IPs não permitidos.
Próximos passos
Restrições de acesso para o Azure Functions
Integração do Application Gateway com pontos de extremidade de serviço
Cenários avançados de restrição de acesso no Serviço de Aplicativo do Azure - postagem no blog