Configurar restrições de acesso para o Serviço de Aplicações do Azure

Ao configurar restrições de acesso, pode definir uma lista de autorizações/negação de prioridades que controla o acesso à rede à sua aplicação. A lista pode incluir endereços IP ou sub-redes Azure Rede Virtual. Quando há uma ou mais entradas, uma negação implícita tudo existe no final da lista.

A capacidade de restrição de acesso funciona com todas as cargas de trabalho Serviço de Aplicações do Azure hospedadas. As cargas de trabalho podem incluir aplicações web, aplicações API, aplicações Linux, recipientes e funções personalizadas Linux.

Quando um pedido é feito à sua aplicação, o endereço FROM é avaliado contra as regras da sua lista de restrições de acesso. Se o endereço FROM estiver numa sub-rede configurada com pontos finais de serviço para o Microsoft.Web, a sub-rede de origem é comparada com as regras de rede virtual na sua lista de restrições de acesso. Se o endereço não tiver acesso com base nas regras da lista, o serviço responde com um código de estado HTTP 403 .

A capacidade de restrição de acesso é implementada nos Serviço de Aplicações funções frontais, que são a montante dos anfitriões dos trabalhadores onde o seu código funciona. Por conseguinte, as restrições de acesso são efetivamente listas de controlo de acesso à rede (ACLs).

A capacidade de restringir o acesso à sua aplicação web a partir de uma rede virtual Azure é ativada por pontos finais de serviço. Com pontos finais de serviço, você pode restringir o acesso a um serviço multi-inquilino a partir de sub-redes selecionadas. Não funciona para restringir o tráfego a apps que são hospedadas numa Ambiente do Serviço de Aplicações. Se estiver numa Ambiente do Serviço de Aplicações, pode controlar o acesso à sua aplicação aplicando regras de endereço IP.

Nota

Os pontos finais de serviço devem ser ativados tanto no lado da rede como para o serviço Azure com o qual estão a ser ativados. Para obter uma lista de serviços Azure que suportam pontos finais de serviço, consulte Rede Virtual pontos finais de serviço.

Diagram of the flow of access restrictions.

Gerir regras de restrição de acesso no portal

Para adicionar uma regra de restrição de acesso à sua aplicação, faça o seguinte:

  1. Inicie sessão no portal do Azure.

  2. Selecione a aplicação a que não quer adicionar restrições de acesso.

  3. No painel esquerdo, selecione Networking.

  4. No painel de rede , sob restrições de acesso, selecione Restrições de Acesso Configure.

    Screenshot of the App Service networking options pane in the Azure portal.

  5. Na página 'Restrições de Acesso ', reveja a lista de regras de restrição de acesso que são definidas para a sua aplicação.

    Screenshot of the Access Restrictions page in the Azure portal, showing the list of access restriction rules defined for the selected app.

    A lista apresenta todas as restrições atuais que são aplicadas à aplicação. Se tiver uma restrição de rede virtual na sua aplicação, a tabela mostra se os pontos finais do serviço estão ativados para o Microsoft.Web. Se não forem definidas restrições na sua aplicação, a aplicação está acessível a partir de qualquer lugar.

Permissões

Deve ter pelo menos as seguintes permissões de controlo de acesso baseadas em funções na sub-rede ou a um nível mais elevado para configurar restrições de acesso através de portal do Azure, CLI ou ao definir as propriedades do site configurar diretamente:

Ação Descrição
Microsoft.Web/sites/config/read Obtenha configurações de configuração de aplicativos web
Microsoft.Web/sites/config/write Atualizar as definições de configuração da Web App
Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action* Junta recursos como conta de armazenamento ou SQL base de dados a uma sub-rede

*apenas necessário para adicionar uma regra de rede virtual (ponto final de serviço).

Se estiver a adicionar uma regra baseada em ponto final de serviço e a rede virtual estiver numa subscrição diferente da aplicação, deve certificar-se de que a subscrição com a rede virtual está registada para o fornecedor de recursos Microsoft.Web. Pode registar-se explicitamente o fornecedor seguindo esta documentação, mas também será automaticamente registada ao criar a primeira aplicação web numa subscrição.

Adicionar uma regra de restrição de acesso

Para adicionar uma regra de restrição de acesso à sua aplicação, no painel de restrições de acesso , selecione 'Adicionar regra'. Depois de adicionar uma regra, torna-se eficaz imediatamente.

As regras são aplicadas por ordem prioritária, a partir do número mais baixo da coluna Prioridade . Uma negação implícita tudo está em vigor depois de adicionar uma única regra.

No painel de restrição de acesso de adicionar, quando criar uma regra, faça o seguinte:

  1. Em Ação, selecione Ou permitir ou negar.

    Screenshot of the 'Add Access Restriction' pane.

  2. Opcionalmente, insira um nome e descrição da regra.

  3. Na caixa Prioridade , insira um valor prioritário.

  4. Na lista de drop-down tipo, selecione o tipo de regra.

Os diferentes tipos de regras são descritos nas seguintes secções.

Nota

  • Existe um limite de 512 regras de restrição de acesso. Se necessitar de mais de 512 regras de restrição de acesso, sugerimos que considere instalar um produto de segurança autónomo, como a Porta Frontal Azure, Aplicação Azure AD Gateway ou uma WAF alternativa.

Definir uma regra baseada em endereços IP

Siga o procedimento descrito na secção anterior, mas com a seguinte adição:

  • Para o passo 4, na lista de drop-down tipo, selecione IPv4 ou IPv6.

Especifique o Bloco de Endereços IP em notação de encaminhamento de Inter-Domain sem classe (CIDR) tanto para os endereços IPv4 como IPv6. Para especificar um endereço, pode utilizar algo como 1.2.3.4/32, onde os primeiros quatro octetos representam o seu endereço IP e /32 é a máscara. A notação CIDR IPv4 para todos os endereços é de 0.0.0.0/0. Para saber mais sobre a notação CIDR, consulte o Roteamento de Inter-Domain Sem Classe.

Definir uma regra baseada no ponto final de serviço

  • Para o passo 4, na lista de drop-down tipo, selecione Rede Virtual.

    Screenshot of the 'Add Restriction' pane with the Virtual Network type selected.

Especifique as listas de subscrição, Rede Virtual e sub-rede, correspondendo ao que pretende restringir o acesso.

Ao utilizar pontos finais de serviço, pode restringir o acesso às sub-redes de rede virtuais Azure selecionadas. Se os pontos finais do serviço ainda não estiverem ativados com o Microsoft.Web para a sub-rede que selecionou, serão automaticamente ativados, a menos que selecione a caixa de verificação de pontos finais do serviço Microsoft.Web em falta . O cenário em que poderá querer ativar os pontos finais do serviço na aplicação, mas não a sub-rede, depende principalmente se tem as permissões para os ativar na sub-rede.

Se precisar de outra pessoa para ativar os pontos finais do serviço na sub-rede, selecione a caixa de verificação de pontos finais do serviço Microsoft.Web em falta . A sua aplicação será configurada para os pontos finais de serviço, antecipando-se a sua ativação posterior na sub-rede.

Não é possível utilizar pontos finais de serviço para restringir o acesso a aplicações que funcionam numa Ambiente do Serviço de Aplicações. Quando a sua aplicação está numa Ambiente do Serviço de Aplicações, pode controlar o acesso à mesmo aplicando regras de acesso IP.

Com os pontos finais de serviço, pode configurar a sua aplicação com gateways de aplicações ou outros dispositivos de firewall de aplicações web (WAF). Também pode configurar aplicações de vários níveis com extremidades traseiras seguras. Para obter mais informações, consulte funcionalidades de Networking e Serviço de Aplicações e Gateway de Aplicação integração com os pontos finais do serviço.

Nota

  • Os pontos finais de serviço não são atualmente suportados para aplicações web que usam ligações TLS/SSL baseadas em IP com um IP virtual (VIP).

Definir uma regra baseada em etiquetas de serviço

  • Para o passo 4, na lista de drop-down tipo, selecione Tag de Serviço.

    Screenshot of the 'Add Restriction' pane with the Service Tag type selected.

Todas as etiquetas de serviço disponíveis são suportadas nas regras de restrição de acesso. Cada etiqueta de serviço representa uma lista de gamas IP dos serviços 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 de Resource Manager do Azure ou scripts para configurar regras mais avançadas, como regras regionais de âmbito.

Editar uma regra

  1. Para começar a editar uma regra de restrição de acesso existente, na página 'Restrições de Acesso' , selecione a regra que pretende editar.

  2. No painel de restrição de acesso de edição , faça as alterações e, em seguida, selecione a regra de Atualização. As edições são efetivas imediatamente, incluindo alterações na encomenda prioritária.

    Screenshot of the 'Edit Access Restriction' pane in the Azure portal, showing the fields for an existing access restriction rule.

    Nota

    Quando se edita uma regra, não se pode alternar entre tipos de regras.

Eliminar uma regra

Para eliminar uma regra, na página 'Restrições de Acesso ', selecione a elipse (...) ao lado da regra que pretende eliminar e, em seguida, selecione Remover.

Screenshot of the 'Access Restrictions' page, showing the 'Remove' ellipsis next to the access restriction rule to be deleted.

Restrição de acesso cenários avançados

As secções seguintes descrevem alguns cenários avançados usando restrições de acesso.

Filtrar por cabeçalho http

Como parte de qualquer regra, pode adicionar filtros adicionais de cabeçalho http. São suportados os seguintes nomes de cabeçalhos em http:

  • X-Forwarded-For
  • X-Forwarded-Host
  • X-Azure-FDID
  • X-FD-HealthProbe

Para cada nome de cabeçalho, pode adicionar até oito valores separados por vírgula. Os filtros do cabeçalho http são avaliados após a regra em si e ambas as condições devem ser verdadeiras para a regra aplicar.

Regras multi-fontes

As regras de várias origens permitem combinar até oito intervalos de IP ou oito Etiquetas de Serviço numa única regra. Pode usá-lo se tiver mais de 512 gamas IP ou se pretende criar regras lógicas onde várias gamas de IP são combinadas com um único filtro de cabeçalho http.

As regras multi-fontes são definidas da mesma forma que se definem regras de origem única, mas com cada intervalo separados com vírgula.

Exemplo 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

Bloqueie um único endereço IP

Ao adicionar a sua primeira regra de restrição de acesso, o serviço adiciona uma regra de Negar explicitamente todas as regras com uma prioridade de 2147483647. Na prática, a regra de Negar explícito é a regra final a ser executada, e bloqueia o acesso a qualquer endereço IP que não seja explicitamente permitido por uma regra de Permitir .

Para um cenário em que pretende bloquear explicitamente um único endereço IP ou um bloco de endereços IP, mas permitir o acesso a tudo o resto, adicione uma regra de Permitir Tudo explícito.

Screenshot of the 'Access Restrictions' page in the Azure portal, showing a single blocked IP address.

Restringir o acesso a um site SCM

Além de conseguir controlar o acesso à sua aplicação, pode restringir o acesso ao site SCM que é utilizado pela sua aplicação. O site SCM é tanto o ponto final de implementação web como a consola Kudu. Pode atribuir restrições de acesso ao site SCM separadamente ou utilizar o mesmo conjunto de restrições tanto para a aplicação como para o site SCM. Quando seleciona as mesmas restrições que <a caixa de verificação do nome> da aplicação, tudo é apagado. Se limpar a caixa de verificação, as definições do seu site SCM são reaplicadas.

Screenshot of the 'Access Restrictions' page in the Azure portal, showing that no access restrictions are set for the SCM site or the app.

Restringir o acesso a uma instância específica da Porta frontal Azure

O tráfego da Porta Frontal Azure para a sua aplicação tem origem num conhecido conjunto de gamas IP definidas na etiqueta de serviço AzureFrontDoor.Backend. Utilizando uma regra de restrição de etiqueta de serviço, pode restringir o tráfego apenas a partir da Porta frontal de Azure. Para garantir que o tráfego só tem origem na sua instância específica, terá de filtrar ainda mais os pedidos de entrada com base no único cabeçalho http que a Porta Frontal Azure envia.

Screenshot of the 'Access Restrictions' page in the Azure portal, showing how to add Azure Front Door restriction.

Exemplo 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}

Gerir regras de restrição de acesso programáticamente

Pode adicionar restrições de acesso programáticamente fazendo qualquer uma das seguintes:

  • Utilize o CLI Azure. Por exemplo:

    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
    

    Nota

    Trabalhar com etiquetas de serviço, cabeçalhos http ou regras multi-fontes em Azure CLI requer pelo menos a versão 2.23.0. Pode verificar a versão do módulo instalado com: az version

  • Usa Azure PowerShell. Por exemplo:

    Add-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "AppName"
        -Name "Ip example rule" -Priority 100 -Action Allow -IpAddress 122.133.144.0/24
    

    Nota

    Trabalhar com etiquetas de serviço, cabeçalhos http ou regras multi-fontes em Azure PowerShell requer pelo menos a versão 5.7.0. Pode verificar a versão do módulo instalado com: Get-InstalledModule -Name Az

Também pode definir valores manualmente fazendo qualquer um dos seguintes:

  • Utilize uma operação Azure REST API PUT na configuração da aplicação em Azure Resource Manager. A localização para esta informação em Azure Resource Manager é:

    management.azure.com/subscriptions/ subscrevição ID/resourceGroups/resource Groups/providers/Microsoft.Web/sites/web app name/config/web?api-version=2020-06-01

  • Use um modelo de Resource Manager. Como exemplo, pode utilizar resources.azure.com e editar o bloco ipSecurityRestrictions para adicionar o JSON necessário.

    A sintaxe JSON para o exemplo anterior é:

    {
      "properties": {
        "ipSecurityRestrictions": [
          {
            "ipAddress": "122.133.144.0/24",
            "action": "Allow",
            "priority": 100,
            "name": "IP example rule"
          }
        ]
      }
    }
    

    A sintaxe JSON para um exemplo avançado usando a etiqueta de serviço e a restrição de cabeçalho http é:

    {
      "properties": {
        "ipSecurityRestrictions": [
          {
            "ipAddress": "AzureFrontDoor.Backend",
            "tag": "ServiceTag",
            "action": "Allow",
            "priority": 100,
            "name": "Azure Front Door example",
            "headers": {
              "x-azure-fdid": [
                "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
              ]
            }
          }
        ]
      }
    }
    

Configurar restrições de acesso Funções do Azure

As restrições de acesso também estão disponíveis para aplicações de função com a mesma funcionalidade que Serviço de Aplicações planos. Quando ativa as restrições de acesso, também desativa o portal do Azure editor de código para quaisquer IPs não permitidos.

Passos seguintes

Restrições de acesso para Funções do Azure
Gateway de Aplicação integração com pontos finais de serviço