Azure App restrições de acesso de serviçoAzure App Service Access Restrictions

As restrições de acesso permitem que você defina uma lista de permissão/negação ordenada de prioridade que controla o acesso à rede para seu aplicativo.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 do 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 funcionalidade de restrições de acesso funciona com todas as cargas de trabalho hospedadas do serviço de aplicativo, incluindo; aplicativos Web, aplicativos de API, aplicativos do Linux, aplicativos de contêiner do 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 uma solicitação é feita ao seu aplicativo, o endereço de é avaliado em relação às regras de endereço IP em 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 de 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.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 permissão de acesso com base nas regras na lista, o serviço responderá com um código de status 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.

O recurso de restrições de acesso é implementado nas funções de front-end do serviço de aplicativo, que são upstream dos hosts de trabalho em que seu código é executado.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 ao seu aplicativo Web de uma VNet (rede virtual) do Azure é chamada de pontos de extremidade de serviço.The ability to restrict access to your web app from an Azure Virtual Network (VNet) is called service endpoints. Os pontos de extremidade de serviço permitem restringir o acesso a um serviço multilocatário de sub-redes selecionadas.Service endpoints enable you to restrict access to a multi-tenant service from selected subnets. Ele deve ser habilitado tanto no lado da rede quanto no serviço com o qual está sendo habilitado.It must be enabled on both the networking side as well as the service that it is being enabled with. Ele não funciona para restringir o tráfego para aplicativos hospedados em um Ambiente do Serviço de Aplicativo.It does not work to restrict traffic to apps that are hosted in an App Service Environment. Se você estiver em um Ambiente do Serviço de Aplicativo, poderá controlar o acesso ao seu aplicativo 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

Adicionando e editando 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 ao seu aplicativo, use o menu para abrir restrições de acesso de>de rede 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 rede do serviço de aplicativo

Na interface do usuário de restrições de acesso, você pode examinar a lista de regras de restrição de acesso definidas para seu aplicativo.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 em seu aplicativo.The list will show all of the current restrictions that are on your app. Se você tiver uma restrição de VNet em seu aplicativo, a tabela mostrará se os pontos de extremidade de serviço estão habilitados para 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 nenhuma restrição definida em seu aplicativo, seu aplicativo poderá ser acessado de qualquer lugar.When there are no defined restrictions on your app, your app will be accessible from anywhere.

Adicionando regras de endereço IPAdding IP address rules

Você pode clicar em [+] Adicionar para adicionar uma nova regra de restrição de acesso.You can click on [+] Add to add a new access restriction rule. Depois de adicionar uma regra, ela entrará em vigor imediatamente.Once you add a rule, it will become effective immediately. As regras são impostas em ordem de prioridade a partir do número mais baixo e na saída.Rules are enforced in priority order starting from the lowest number and going up. Há uma negação implícita de tudo que está em vigor quando você adiciona até mesmo uma única regra.There is an implicit deny all that is in effect once you add even a single rule.

Ao criar uma regra, você 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 é necessário fornecer o valor de prioridade e o que você está restringindo o acesso ao.You are also required to provide the priority value and what you are restricting access to. Opcionalmente, você pode adicionar um nome e uma descrição à regra.You can optionally add a name, and description to the rule.

Adicionar uma regra de restrição de acesso a 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 de endereço IP deve ser especificada na notação CIDR para endereços IPv4 e IPv6.IP Address notation must be specified in CIDR notation for both IPv4 and IPv6 addresses. Para especificar um endereço exato, você pode usar algo como 1.2.3.4/32, em que os primeiros quatro octetos representam 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 do IPv4 para todos os endereços é 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, você pode ler Roteamento entre domínios sem classificação.To learn more about CIDR notation, you can read Classless Inter-Domain Routing.

Pontos finais de serviçoService endpoints

Os pontos de extremidade de serviço permitem restringir o acesso às sub-redes selecionadas da rede virtual do Azure.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. Você pode escolher a assinatura, a VNet e a sub-rede que deseja permitir ou negar acesso.You can pick the subscription, VNet, and subnet you wish to allow or deny access with. Se os pontos de extremidade de serviço ainda não estiverem habilitados com o Microsoft. Web para a sub-rede que você selecionou, ele será habilitado automaticamente para você, a menos que você marque a caixa pedindo para não fazer isso.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 você deseja habilitá-la no aplicativo, mas não a sub-rede está amplamente relacionada a se você tiver as permissões para habilitar os pontos de extremidade de 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 você precisar fazer com que outra pessoa habilite os pontos de extremidade de serviço na sub-rede, marque a caixa e faça com que seu aplicativo seja configurado para pontos de extremidade de serviço na previsão de que ele está sendo habilitado posteriormente 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 de extremidade de serviço não podem ser usados para restringir o acesso a aplicativos executados em um Ambiente do Serviço de Aplicativo.Service endpoints cannot be used to restrict access to apps that run in an App Service Environment. Quando seu aplicativo estiver em um Ambiente do Serviço de Aplicativo, você poderá controlar o acesso ao seu aplicativo com as regras de acesso de IP.When your app is in an App Service Environment, you can control access to your app with IP access rules.

Com os pontos de extremidade de serviço, você pode configurar seu aplicativo com gateways de aplicativo ou outros dispositivos WAF.With service endpoints, you can configure your app with Application Gateways or other WAF devices. Você também pode configurar aplicativos de várias camadas com back-ends seguros.You can also configure multi-tier applications with secure backends. Para obter mais detalhes sobre algumas das possibilidades, leia recursos de rede e serviço de aplicativo.For more details on some of the possibilities, read Networking features and App Service.

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

Você 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 entram em vigor imediatamente, incluindo alterações na ordenação de prioridade.Edits are effective immediately including changes in priority ordering.

editar uma regra de restrição de acesso

Quando você edita uma regra, não pode 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 excluir uma regra, clique em ... em sua regra e, em seguida, clique em remover.To delete a rule, click the ... on your rule and then click remove.

excluir regra de restrição de acesso

Bloqueando um único endereço IPBlocking a single IP Address

Ao adicionar sua primeira regra de restrição de IP, o serviço adicionará uma regra negar tudo explícita 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 negar tudo explícita será executada pela última vez e bloqueará o acesso a qualquer endereço IP que não seja explicitamente permitido usando uma regra de permissã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 usuários desejam bloquear explicitamente um único endereço IP ou bloco de endereço IP, mas permitir que todas as outras pessoas acessem, é necessário adicionar uma regra 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

Site do SCMSCM site

Além de poder controlar o acesso ao seu aplicativo, você também pode restringir o acesso ao site do SCM usado pelo seu aplicativo.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 do SCM é o ponto de extremidade de implantação da Web e também o console do kudu.The scm site is the web deploy endpoint and also the Kudu console. Você pode atribuir separadamente restrições de acesso ao site do SCM do aplicativo ou usar o mesmo conjunto para o aplicativo e o site do 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 você marca a caixa para ter as mesmas restrições que seu aplicativo, tudo fica em branco. Se você desmarcar a caixa, quaisquer configurações que você tenha anteriormente no site do SCM serã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 de regras de restrição de acessoProgrammatic manipulation of access restriction rules

Atualmente, não há uma CLI ou o PowerShell para o novo recurso de restrições de acesso, mas os valores podem ser definidos manualmente com uma operação Put da API REST do Azure na configuração do aplicativo no Gerenciador de recursos.There currently is no CLI or PowerShell for the new Access Restrictions capability but the values can be set manually with an Azure REST API PUT operation on the app configuration in Resource Manager. Por exemplo, você pode usar 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.

O local para essas informações no Resource Manager é:The location for this information in Resource Manager is:

management.azure.com/subscriptions/ID da assinatura/resourceGroups/grupos de recursos/Providers/Microsoft.Web/sites/nome doaplicativo Web/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",
        "tag": "Default",
        "priority": 100,
        "name": "IP example rule"
      }
    ]
  }
}

Aplicativo de funções restrições de IPFunction App IP Restrictions

As restrições de IP estão disponíveis para ambos os aplicativos de funções com a mesma funcionalidade que os planos do serviço de aplicativo.IP restrictions are available for both Function Apps with the same functionality as App Service plans. Habilitar restrições de IP desabilitará o editor de código do portal para qualquer IPs não permitido.Enabling IP restrictions will disable the portal code editor for any disallowed IPs.

Saiba mais aquiLearn more here