Tutorial: Estabelecer o acesso a sites particulares do Azure Functions

Este tutorial mostra como habilitar o acesso a sites particulares com o Azure Functions. Usando o acesso a sites particulares, você pode exigir que o código de função seja disparado apenas de uma rede virtual específica.

O acesso a sites particulares é útil em cenários quando o acesso ao aplicativo de funções precisa ser limitado a uma rede virtual específica. Por exemplo, o aplicativo de funções pode ser aplicável somente aos funcionários de uma organização específica ou aos serviços que estão dentro da rede virtual especificada (como outra Função do Azure, Máquina Virtual do Azure ou um cluster do AKS).

Se um aplicativo de funções precisar acessar recursos do Azure na rede virtual ou ser conectado por meio de pontos de extremidade de serviço, a integração de rede virtual será necessária.

Neste tutorial, você aprenderá a configurar o acesso a sites particulares para o seu aplicativo de funções:

  • Criar uma máquina virtual
  • Criar um serviço do Azure Bastion
  • Criar um aplicativo do Azure Functions
  • Configurar um ponto de extremidade de serviço de rede virtual
  • Criar e implantar uma Função do Azure
  • Invocar a função dentro e fora da rede virtual

Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.

Topologia

O seguinte diagrama mostra a arquitetura da solução a ser criada:

High-level architecture diagram for private site access solution

Pré-requisitos

Para este tutorial, é importante que você tenha noções básicas do endereçamento IP e das sub-redes. Você pode começar com este artigo que aborda os conceitos básicos de endereçamento e sub-redes. Muitos outros artigos e vídeos estão disponíveis online.

Entre no portal do Azure

Entre no portal do Azure.

Criar uma máquina virtual

A primeira etapa deste tutorial é criar uma máquina virtual dentro de uma rede virtual. A máquina virtual será usada para acessar a função depois que você restringir seu acesso para que ele fique disponível apenas dentro da rede virtual.

  1. Selecione o botão Criar um recurso.

  2. No campo de pesquisa, digite Windows Server e selecione Windows Server nos resultados da pesquisa.

  3. Selecione Windows Server 2019 Datacenter na lista de opções do Windows Server e selecione o botão Criar.

  4. Na guia Informações Básicas, use as configurações da VM, conforme especificado na tabela abaixo da imagem:

    Basics tab for a new Windows VM

    Configuração Valor sugerido Descrição
    Assinatura Sua assinatura A assinatura na qual os recursos são criados.
    Grupo de recursos myResourceGroup Escolha o grupo de recursos que conterá os recursos deste tutorial. O uso do mesmo grupo de recursos facilitará a limpeza de recursos quando você concluir este tutorial.
    Nome da máquina virtual myVM O nome da VM precisa ser exclusivo no grupo de recursos
    Região (EUA) Centro-Norte dos EUA Escolha uma região perto de você ou perto das funções a serem acessadas.
    Portas de entrada públicas Nenhum Selecione Nenhum para garantir que não haja conectividade de entrada com a VM pela Internet. O acesso remoto à VM será configurado por meio do serviço do Azure Bastion.
  5. Escolha a guia Rede e selecione Criar para configurar uma nova rede virtual.

    Screenshot that shows the

  6. Em Criar rede virtual, use as configurações na tabela abaixo da imagem:

    Create a new virtual network for the new VM

    Configuração Valor sugerido Description
    Nome myResourceGroup-vnet Use o nome padrão gerado para a rede virtual.
    Intervalo de endereços 10.10.0.0/16 Use um só intervalo de endereços para a rede virtual.
    Nome da sub-rede Tutorial Nome da sub-rede.
    Intervalo de endereços (sub-rede) 10.10.1.0/24 O tamanho da sub-rede define o número de interfaces que podem ser adicionadas à sub-rede. Essa sub-rede é usada pela VM. Uma sub-rede /24 fornece 254 endereços de host.
  7. Selecione OK para criar a rede virtual.

  8. De volta à guia Rede, verifique se Nenhum está selecionado em IP Público.

  9. Escolha a guia Gerenciamento e, em Conta de armazenamento de diagnóstico, escolha Criar para criar uma conta de armazenamento.

  10. Mantenha os valores padrão nas seções Identidade, Desligamento automático e Backup.

  11. Selecione Examinar + criar. Depois de concluir a validação, selecione Criar. O processo de criação da VM leva alguns minutos.

Configurar o Azure Bastion

O Azure Bastion é um serviço do Azure totalmente gerenciado que fornece acesso seguro RDP e SSH a máquinas virtuais diretamente no portal do Azure. O uso do serviço do Azure Bastion elimina a necessidade de definir as configurações de rede relacionadas ao acesso RDP.

  1. No portal, escolha Adicionar na parte superior da exibição do grupo de recursos.

  2. No campo de pesquisa, digite Bastion.

  3. Selecione Bastion nos resultados da pesquisa.

  4. Selecione Criar para iniciar o processo de criação de um recurso do Azure Bastion. Você observará uma mensagem de erro na seção Rede virtual, pois ainda não há uma sub-rede AzureBastionSubnet. A sub-rede será criada nas etapas a seguir. Use as configurações da tabela abaixo da imagem:

    Start of creating Azure Bastion

    Configuração Valor sugerido Description
    Nome myBastion O nome do novo recurso do Bastion
    Região Centro-Norte dos EUA Escolha uma região perto de você ou perto de outros serviços que suas funções acessam.
    Rede virtual myResourceGroup-vnet A rede virtual na qual o recurso do Bastion será criado
    Sub-rede AzureBastionSubnet A sub-rede da rede virtual na qual o novo recurso de host do Bastion será implantado. É necessário criar uma sub-rede usando o valor de nome AzureBastionSubnet. Esse valor permite que o Azure saiba em qual sub-rede os recursos do Bastion serão implantados. É necessário usar uma sub-rede de pelo menos /27 ou maior (/27,/26 e assim por diante).

    Observação

    Para obter um guia passo a passo detalhado sobre como criar um recurso do Azure Bastion, consulte o tutorial Criar um host do Azure Bastion.

  5. Crie uma sub-rede na qual o Azure possa provisionar o host do Azure Bastion. A escolha de Gerenciar a configuração de sub-rede abre um novo painel em que é possível definir uma nova sub-rede. Escolha + Sub-rede para criar uma sub-rede.

  6. A sub-rede precisa ter o nome AzureBastionSubnet e o prefixo de sub-rede precisa ser, pelo menos, /27. Selecione OK para criar a sub-rede.

    Create subnet for Azure Bastion host

  7. Na página Criar um Bastion, selecione o AzureBastionSubnet recém-criado na lista de sub-redes disponíveis.

    Create an Azure Bastion host with specific subnet

  8. Selecione Examinar e Criar. Após a conclusão da validação, selecione Criar. Serão necessários alguns minutos para que o recurso do Azure Bastion seja criado.

Criar um aplicativo do Azure Functions

A próxima etapa é criar um aplicativo de funções no Azure usando o Plano de consumo. Você implantará o código de função nesse recurso mais adiante no tutorial.

  1. No portal, escolha Adicionar na parte superior da exibição do grupo de recursos.

  2. Selecione Computação > Aplicativo de Funções

  3. Na seção Informações Básicas, use as configurações do aplicativo de funções especificadas na tabela abaixo.

    Configuração Valor sugerido Descrição
    Grupo de recursos myResourceGroup Escolha o grupo de recursos que conterá os recursos deste tutorial. O uso do mesmo grupo de recursos para o aplicativo de funções e a VM facilitará a limpeza de recursos quando você concluir este tutorial.
    Nome do aplicativo de funções Nome globalmente exclusivo Nome que identifica seu novo aplicativo de funções. Os caracteres válidos são a-z (não diferencia maiúsculas de minúsculas), 0-9 e -.
    Publicar Código Opção para publicar arquivos de código ou um contêiner do Docker.
    Pilha de runtime Linguagem preferencial Escolha um runtime compatível com sua linguagem de programação de funções favorita.
    Região Centro-Norte dos EUA Escolha uma região perto de você ou perto de outros serviços que suas funções acessam.

    Selecione Próximo: Botão hospedagem >.

  4. Na seção Hospedagem, selecione a Conta de armazenamento, o Sistema operacional e o Plano adequados, conforme descrito na tabela a seguir.

    Configuração Valor sugerido Descrição
    Conta de armazenamento Nome globalmente exclusivo Crie uma conta de armazenamento usada pelo seu aplicativo de funções. Os nomes da conta de armazenamento devem ter entre 3 e 24 caracteres e podem conter apenas números e letras minúsculas. Use também uma conta existente, que precisará atender aos requisitos da conta de armazenamento.
    Sistema operacional Sistema operacional preferencial Um sistema operacional é pré-selecionado para você com base na seleção da pilha de runtime, mas você pode alterar a configuração, se necessário.
    Plano Consumo O plano de hospedagem determina como o aplicativo de funções é escalado e os recursos disponíveis para cada instância.
  5. Selecione Examinar + Criar para examinar as seleções de configuração de aplicativo.

  6. Selecione Criar para provisionar e implantar o aplicativo de funções.

Configurar restrições de acesso

A próxima etapa é configurar restrições de acesso para garantir que apenas os recursos na rede virtual possam invocar a função.

O acesso a sites particulares é habilitado pela criação de um ponto de extremidade de serviço da Rede Virtual do Azure entre o aplicativo de funções e a rede virtual especificada. As restrições de acesso são implementadas por meio de pontos de extremidade de serviço. Os pontos de extremidade de serviço garantem que apenas o tráfego proveniente da rede virtual especificada possa acessar o recurso designado. Nesse caso, o recurso designado é a Função do Azure.

  1. No aplicativo de funções, selecione o link Rede no cabeçalho da seção Configurações.

  2. A página Rede é o ponto de partida para configurar o Azure Front Door, a CDN do Azure e também as Restrições de Acesso.

  3. Selecione Configurar Restrições de Acesso para configurar o acesso a sites particulares.

  4. Na página Restrições de Acesso, apenas a restrição padrão em vigor é exibida. O padrão não coloca nenhuma restrição no acesso ao aplicativo de funções. Selecione Adicionar regra para criar uma configuração de restrição de acesso a sites particulares.

  5. No painel Adicionar Restrição de Acesso, forneça um Nome, uma Prioridade e Descrição para a nova regra.

  6. Selecione Rede Virtual na caixa suspensa Tipo e a rede virtual criada anteriormente. Depois, selecione a sub-rede Tutorial.

    Observação

    Podem ser necessários vários minutos para que o ponto de extremidade de serviço seja habilitado.

  7. A página Restrições de Acesso agora mostra que há uma nova restrição. Podem ser necessários alguns segundos para que o Status do ponto de extremidade seja alterado de Desabilitado por meio do Provisionamento para Habilitado.

    Importante

    Cada aplicativo de funções tem um site de Ferramenta Avançada (Kudu) que é usado para gerenciar implantações de aplicativo de funções. Esse site é acessado em uma URL como: <FUNCTION_APP_NAME>.scm.azurewebsites.net. Habilitar restrições de acesso no site Kudu impede a implantação do código do projeto de uma estação de trabalho de desenvolvedor local e, consequentemente, um agente é necessário na rede virtual para executar a implantação.

Acessar o aplicativo de funções

  1. Volte ao aplicativo de funções criado anteriormente. Na seção Visão Geral, copie a URL.

    Get the Function app URL

    Se você tentar acessar o aplicativo de funções agora no computador fora da rede virtual, receberá uma página HTTP 403 indicando que o acesso está proibido.

  2. Volte para o grupo de recursos e selecione a máquina virtual criada anteriormente. Para acessar o site por meio da VM, é necessário se conectar à VM por meio do serviço do Azure Bastion.

  3. Selecione Conectar e escolha Bastion.

  4. Forneça o nome de usuário e a senha necessários para fazer logon na máquina virtual.

  5. Selecione Conectar. Uma nova janela do navegador será exibida para permitir que você interaja com a máquina virtual. É possível acessar o site no navegador da Web na VM porque a VM está acessando o site por meio da rede virtual. Embora o site só possa ser acessado na rede virtual designada, uma entrada DNS pública permanece.

Criar uma função

A próxima etapa deste tutorial será criar uma Função do Azure disparada por HTTP. A invocação da função por meio de um HTTP GET ou POST deverá resultar em uma resposta "Olá, {nome}".

  1. Siga um dos inícios rápidos a seguir para criar e implantar seu aplicativo do Azure Functions.

  2. Ao publicar seu projeto do Azure Functions, escolha o recurso de aplicativo de funções criado anteriormente neste tutorial.

  3. Verifique se a função foi implantada.

    Deployed function in list of functions

Invocar a função diretamente

  1. Para testar o acesso à função, você precisa copiar a URL da função. Selecione a função implantada e escolha Obter URL da função. Em seguida, clique no botão Copiar para copiar a URL para a área de transferência.

    Copy the function URL

  2. Cole a URL em um navegador da Web. Quando você tentar acessar o aplicativo de funções agora em um computador fora da rede virtual, receberá uma resposta HTTP 403 indicando que o acesso ao aplicativo está proibido.

Invocar a função na rede virtual

O acesso à função por meio de um navegador da Web (usando o serviço do Azure Bastion) na VM configurada na rede virtual resulta em êxito.

Access the Azure Function via Azure Bastion

Limpar os recursos

Nas etapas anteriores, você criou os recursos do Azure em um grupo de recursos. Se você não espera precisar desses recursos no futuro, poderá excluí-los ao excluir o grupo de recursos.

No menu do portal do Azure ou na Página inicial, selecione Grupos de recursos. Em seguida, na página Grupos de recursos, selecione myResourceGroup.

Na página myResourceGroup, certifique-se de que os recursos listados são aqueles que deseja excluir.

Selecione Excluir grupo de recursos, digite myResourceGroup na caixa de texto para confirmar e selecione Excluir.

Próximas etapas