Restrições de acesso ao Serviço de Aplicações AzureAzure App Service access restrictions

As restrições de acesso permitem-lhe definir uma lista de prioridades ordenada para permitir/negar que controla o acesso à rede à sua aplicação.Access restrictions enable you to define a priority ordered allow/deny list that controls network access to your app. A lista pode incluir endereços IP ou sub-redes de Rede Virtual Azure.The list can include IP addresses or Azure Virtual Network subnets. Quando há uma ou mais entradas, há então um "negar tudo" implícito que existe no final da lista.When there are one or more entries, there is then an implicit "deny all" that exists at the end of the list.

A capacidade de restrições de acesso funciona com todas as cargas de trabalho hospedadas do Serviço de Aplicações, incluindo; aplicativos web, aplicativos API, aplicativos Linux, aplicativos de contentores Linux e Funções.The access restrictions capability works with all App Service hosted work loads including; web apps, API apps, Linux apps, Linux container apps, and Functions.

Quando um pedido é feito para a sua aplicação, o endereço FROM é avaliado contra as regras de endereço IP na sua lista de restrições de acesso.When a request is made to your app, the FROM address is evaluated against the IP address rules in your access restrictions list. Se o endereço FROM estiver numa sub-rede configurada com pontos finais de serviço para o Microsoft.Web, então a sub-rede de origem é comparada com as regras de rede virtual na sua lista de restrições de acesso.If the FROM address is in a subnet that is configured with service endpoints to Microsoft.Web, then the source subnet is compared against the virtual network rules in your access restrictions list. 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.If the address is not allowed access based on the rules in the list, the service replies with an HTTP 403 status code.

A capacidade de restrições de acesso é implementada nas funções frontais do Serviço de Aplicações, que estão a montante dos anfitriões dos trabalhadores onde o seu código funciona.The access restrictions capability is implemented in the App Service front-end roles, which are upstream of the worker hosts where your code runs. Portanto, as restrições de acesso são efetivamente ACLs de rede.Therefore, access restrictions are effectively network ACLs.

A capacidade de restringir o acesso à sua aplicação web a partir de uma Rede Virtual Azure (VNet) chama-se pontos finais de serviço.The ability to restrict access to your web app from an Azure Virtual Network (VNet) is called service endpoints. Os pontos finais de serviço permitem-lhe restringir o acesso a um serviço multi-inquilino a partir de sub-redes selecionadas.Service endpoints enable you to restrict access to a multi-tenant service from selected subnets. Deve ser ativado tanto no lado da rede como no serviço que está a ser ativado.It must be enabled on both the networking side as well as the service that it is being enabled with. Não funciona para restringir o tráfego a aplicações que estão hospedadas num Ambiente de Serviço de Aplicações.It does not work to restrict traffic to apps that are hosted in an App Service Environment. Se estiver num Ambiente de Serviço de Aplicações, pode controlar o acesso à sua aplicação com regras de endereço IP.If you are in an App Service Environment, you can control access to your app with IP address rules.

fluxo de restrições de acesso

Adicionar e editar regras de restrição de acesso no portalAdding and editing access restriction rules in the portal

Para adicionar uma regra de restrição de acesso à sua aplicação, use o menu para abrir restrições de acesso à rede > Access Restrictions e clique em Configurar Restrições de AcessoTo add an access restriction rule to your app, use the menu to open Network>Access Restrictions and click on Configure Access Restrictions

Opções de networking do Serviço de Aplicações

A partir do UI de Restrições de Acesso, pode rever a lista de regras de restrição de acesso definidas para a sua aplicação.From the Access Restrictions UI, you can review the list of access restriction rules defined for your app.

listar restrições de acesso

A lista mostrará todas as restrições atuais que estão na sua aplicação.The list will show all of the current restrictions that are on your app. Se tiver uma restrição VNet na sua aplicação, a tabela mostrará se os pontos finais do serviço estão ativados para o Microsoft.Web.If you have a VNet restriction on your app, the table will show if service endpoints are enabled for Microsoft.Web. Quando não houver restrições definidas na sua aplicação, a sua aplicação estará acessível a partir de qualquer lugar.When there are no defined restrictions on your app, your app will be accessible from anywhere.

Adicionar regras de endereço IPAdding IP address rules

Pode clicar na regra [+] Adicionar regra para adicionar uma nova regra de restrição de acesso.You can click on [+] Add rule to add a new access restriction rule. Uma vez que adicione uma regra, ela irá tornar-se eficaz imediatamente.Once you add a rule, it will become effective immediately. As regras são aplicadas por ordem prioritária a partir do número mais baixo e subindo.Rules are enforced in priority order starting from the lowest number and going up. Há uma negação implícita de tudo o que está em vigor uma vez que se adiciona uma única regra.There is an implicit deny all that is in effect once you add even a single rule.

Ao criar uma regra, deve selecionar permitir/negar e também o tipo de regra.When creating a rule, you must select allow/deny and also the type of rule. Também é obrigado a fornecer o valor prioritário e a que está a restringir o acesso.You are also required to provide the priority value and what you are restricting access to. Pode opcionalmente adicionar um nome e descrição à regra.You can optionally add a name, and description to the rule.

adicionar uma regra de restrição de acesso IP

Para definir uma regra baseada em endereço IP, selecione um tipo de IPv4 ou IPv6.To set an IP address based rule, select a type of IPv4 or IPv6. A notação do endereço IP deve ser especificada na notação CIDR tanto para endereços IPv4 como IPv6.IP Address notation must be specified in CIDR notation for both IPv4 and IPv6 addresses. Para especificar um endereço exato, 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.To specify an exact address, you can use something like 1.2.3.4/32 where the first four octets represent your IP address and /32 is the mask. A notação CIDR IPv4 para todos os endereços é de 0.0.0.0/0.The IPv4 CIDR notation for all addresses is 0.0.0.0/0. Para saber mais sobre a notação CIDR, pode ler o Roteamento Inter-Domain Sem Classe.To learn more about CIDR notation, you can read Classless Inter-Domain Routing.

Pontos finais de serviçoService endpoints

Os pontos finais de serviço permitem restringir o acesso a sub-redes de rede virtuais Azure selecionadas.Service endpoints enables you to restrict access to selected Azure virtual network subnets. Para restringir o acesso a uma sub-rede específica, crie uma regra de restrição com um tipo de Rede Virtual.To restrict access to a specific subnet, create a restriction rule with a type of Virtual Network. Pode escolher a subscrição, VNet e sub-rede com a quais deseja permitir ou negar o acesso.You can pick the subscription, VNet, and subnet you wish to allow or deny access with. Se os pontos finais de serviço ainda não estiverem ativados com o Microsoft.Web para a sub-rede que selecionou, será automaticamente ativado para si, a menos que verifique a caixa pedindo para não o fazer.If service endpoints are not already enabled with Microsoft.Web for the subnet that you selected, it will automatically be enabled for you unless you check the box asking not to do that. A situação em que pretende ative na aplicação, mas não na sub-rede, está em grande parte relacionada se tiver as permissões para ativar os pontos finais do serviço na sub-rede ou não.The situation where you would want to enable it on the app but not the subnet is largely related to if you have the permissions to enable service endpoints on the subnet or not. Se precisar de arranjar outra pessoa para ativar os pontos finais do serviço na sub-rede, pode verificar a caixa e configurar a sua aplicação para os pontos finais de serviço, antecipando que esta seja ativada mais tarde na sub-rede.If you need to get somebody else to enable service endpoints on the subnet, you can check the box and have your app configured for service endpoints in anticipation of it being enabled later on the subnet.

adicionar uma regra de restrição de acesso VNet

Os pontos finais de serviço não podem ser utilizados para restringir o acesso a aplicações que funcionam num Ambiente de Serviço de Aplicações.Service endpoints cannot be used to restrict access to apps that run in an App Service Environment. Quando a sua aplicação está num Ambiente de Serviço de Aplicações, pode controlar o acesso à sua aplicação com regras de acesso IP.When your app is in an App Service Environment, you can control access to your app with IP access rules.

Com os pontos finais de serviço, pode configurar a sua aplicação com gateways de aplicações ou outros dispositivos WAF.With service endpoints, you can configure your app with Application Gateways or other WAF devices. Também pode configurar aplicações de vários níveis com backends seguros.You can also configure multi-tier applications with secure backends. Para mais detalhes sobre algumas das possibilidades, leia funcionalidades de Networking e Integração do Serviço de Aplicações e Gateway de Aplicações com pontos finais de serviço.For more details on some of the possibilities, read Networking features and App Service and Application Gateway integration with service endpoints.

Nota

Os pontos finais de serviço atualmente não são suportados para aplicações web que usam IP virtual IP (VIP) IP.Service endpoints currently are not supported for web apps that use IP SSL virtual IP (VIP).

Gerir regras de restrição de acessoManaging access restriction rules

Pode clicar em qualquer linha para editar uma regra de restrição de acesso existente.You can click on any row to edit an existing access restriction rule. As edições são efetivas imediatamente, incluindo alterações na encomenda prioritária.Edits are effective immediately including changes in priority ordering.

editar uma regra de restrição de acesso

Quando edita uma regra, não é possível alterar o tipo entre uma regra de endereço IP e uma regra de Rede Virtual.When you edit a rule, you cannot change the type between an IP address rule and a Virtual Network rule.

editar uma regra de restrição de acesso

Para eliminar uma regra, clique na sua regra e clique em Remover.To delete a rule, click the ... on your rule and then click Remove.

eliminar regra de restrição de acesso

Bloquear um único endereço IPBlocking a single IP address

Ao adicionar a sua primeira regra de Restrição IP, o serviço adicionará uma regra de Negar explicitamente toda a regra com uma prioridade de 2147483647.When adding your first IP Restriction rule, the service will add an explicit Deny all rule with a priority of 2147483647. Na prática, a regra de Negar explícito será a última regra executada e bloqueará o acesso a qualquer endereço IP que não seja explicitamente permitido usando uma regra Desinclusão.In practice, the explicit Deny all rule will be last rule executed and will block access to any IP address that is not explicitly allowed using an Allow rule.

Para o cenário em que os utilizadores pretendem bloquear explicitamente um único endereço IP ou um bloco de endereços IP, mas permitir o acesso de tudo o resto, é necessário adicionar uma regra de Permitir Tudo explícito.For the scenario where users want to explicitly block a single IP address or IP address block, but allow everything else access, it is necessary to add an explicit Allow All rule.

bloquear endereço ip único

SCM siteSCM site

Além de conseguir controlar o acesso à sua app, também pode restringir o acesso ao site scm utilizado pela sua app.In addition to being able to control access to your app, you can also restrict access to the scm site used by your app. O site scm é o ponto final de implementação web e também a consola Kudu.The scm site is the web deploy endpoint and also the Kudu console. Pode atribuir separadamente restrições de acesso ao site scm a partir da aplicação ou usar o mesmo conjunto tanto para a aplicação como para o site scm.You can separately assign access restrictions to the scm site from the app or use the same set for both the app and the scm site. Quando verifica a caixa para ter as mesmas restrições que a sua aplicação, tudo é apagado. Se desmarca a caixa, as definições que tinha anteriormente no site scm são aplicadas.When you check the box to have the same restrictions as your app, everything is blanked out. If you uncheck the box, whatever settings you had earlier on the scm site are applied.

listar restrições de acesso

Manipulação programática das regras de restrição de acessoProgrammatic manipulation of access restriction rules

A Azure CLI e Azure PowerShell tem suporte para editar restrições de acesso.Azure CLI and Azure PowerShell has support for editing access restrictions. Exemplo de adicionar uma restrição de acesso usando Azure CLI:Example of adding an access restriction using Azure CLI:

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

Exemplo de adicionar uma restrição de acesso utilizando a Azure PowerShell:Example of adding an access restriction using Azure PowerShell:

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

Os valores também podem ser definidos manualmente com uma operação Azure REST API PUT na configuração da aplicação no Gestor de Recursos ou utilizando um modelo de Gestor de Recursos Azure.Values can also be set manually with an Azure REST API PUT operation on the app configuration in Resource Manager or using an Azure Resource Manager template. Como exemplo, pode utilizar resources.azure.com e editar o bloco ipSecurityRestrictions para adicionar o JSON necessário.As an example, you can use resources.azure.com and edit the ipSecurityRestrictions block to add the required JSON.

A localização desta informação no Gestor de Recursos é:The location for this information in Resource Manager is:

management.azure.com/subscriptions/ subscrição ID/resourceGroups/grupos de recursos/fornecedores/Microsoft.Web/sites/ web appname/config/web?api-version=2018-02-01management.azure.com/subscriptions/subscription ID/resourceGroups/resource groups/providers/Microsoft.Web/sites/web app name/config/web?api-version=2018-02-01

A sintaxe JSON para o exemplo anterior é:The JSON syntax for the earlier example is:

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

Restrições de acesso a funções AzureAzure Functions access restrictions

As restrições de acesso também estão disponíveis para aplicações de função com a mesma funcionalidade que os planos do Serviço de Aplicações.Access restrictions are also available for function apps with the same functionality as App Service plans. Permitir restrições de acesso irá desativar o editor de código do portal para quaisquer IPs não permitidos.Enabling access restrictions will disable the portal code editor for any disallowed IPs.

Próximos passosNext steps

Restrições de acesso para Funções AzureAccess restrictions for Azure Functions

Integração de Gateway de Aplicação com pontos finais de serviçoApplication Gateway integration with service endpoints