Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Quando aloja as suas aplicações ou microserviços no Azure Container Apps, pode não querer publicá-los diretamente na internet. Em vez disso, você pode querer expô-los por meio de um proxy reverso.
Um reverse proxy é um serviço que se coloca à frente de um ou mais serviços. Interceta e direciona o tráfego recebido para o destino certo.
Com proxies reversos, pode colocar serviços à frente das suas aplicações que suportem funcionalidades transversais, incluindo:
- Encaminhamento
- Colocação em cache
- Limitação de velocidade
- Balanceamento de carga
- Camadas de segurança
- Filtragem de pedidos
Este artigo mostra como proteger as suas aplicações container utilizando um Firewall de Aplicações Web (WAF) no Azure Application Gateway com um ambiente interno de Aplicações Container.
Para obter mais informações sobre conceitos de rede em Aplicativos de Contêiner, consulte Ambiente de Rede em Aplicativos de Contêiner do Azure.
Pré-requisitos
Ambiente interno com rede virtual: Ter uma aplicação de contentores que esteja num ambiente interno e integrada com uma rede virtual. Para obter mais informações sobre como criar um aplicativo integrado de rede virtual, consulte Fornecer uma rede virtual para um ambiente interno de Aplicativos de Contêiner do Azure.
Certificados de segurança: Se precisar de usar encriptação TLS/SSL para o gateway da aplicação, precisa de um certificado público válido para se associar ao seu gateway de aplicação.
Recuperar o domínio do aplicativo de contêiner
Use as etapas a seguir para recuperar os valores do domínio padrão e do IP estático para configurar sua Zona DNS Privada.
Na janela Visão geral do grupo de recursos no portal, selecione o seu aplicativo de contêiner.
Na janela de Visão Geral do seu recurso de aplicação container, selecione o link para o ambiente Container Apps.
Na janela Visão geral do recurso de ambiente do aplicativo contêiner, selecione Exibição JSON no canto superior direito da página para exibir a representação JSON do ambiente de aplicativos contêiner.
Na vista JSON, localize a
propertiessecção e encontre os seguintes valores:Domínio padrão: Procurar
properties.defaultDomainouproperties.environmentFqdnIP estático: Pesquise por
properties.staticIp
Copie esses valores e cole-os num editor de texto. Usas o valor de domínio predefinido quando crias uma zona DNS privada na secção seguinte.
Criar e configurar uma zona DNS Privada do Azure
Para criar e configurar uma zona DNS privada Azure, complete os seguintes passos:
Vá para o portal do Azure.
Na barra de pesquisa, introduza Zona DNS Privada.
Selecione Zona DNS Privada nos resultados da pesquisa.
Selecione Criar.
Introduza os seguintes valores:
Cenário Ação Subscrição Selecione a subscrição do Azure. Grupo de recursos Selecione o grupo de recursos do seu aplicativo de contêiner. Nome Introduza a propriedade de domínio predefinida do Ambiente de Aplicações de Contentor da secção anterior (ou defaultDomainouenvironmentFqdn).Localização do grupo de recursos Deixe como padrão. Não precisas de um valor porque as Zonas DNS Privadas são globais. Selecione Rever + criar. Após a conclusão da validação, selecione Criar.
Depois que a zona DNS privada for criada, selecione Ir para recurso.
Na janela de Visão Geral, selecione +Conjunto de Registo para adicionar um novo conjunto de registos.
Na janela Adicionar conjunto de registros, insira os seguintes valores:
Cenário Ação Nome Insira *. Tipo Selecione Registro de endereço A. TTL Mantenha os valores padrão. Unidade de TTL Mantenha os valores padrão. endereço IP Insira a propriedade IP estática do Ambiente de Aplicações de Contentores da secção anterior ( staticIp).Selecione OK para criar o conjunto de registros.
Selecione novamente +Conjunto de registos para adicionar um segundo conjunto de registos.
Na janela Adicionar conjunto de registros, insira os seguintes valores:
Cenário Ação Nome Insira @. Tipo Selecione Registro de endereço A. TTL Mantenha os valores padrão. Unidade de TTL Mantenha os valores padrão. endereço IP Insira a propriedade IP estática do Ambiente de Aplicações de Contentores da secção anterior ( staticIp).Selecione OK para criar o conjunto de registros.
Selecione a janela ligações de rede virtual no menu do lado esquerdo da página.
Selecione +Adicionar para criar um novo link com os seguintes valores:
Cenário Ação Nome da ligação Digite my-vnet-pdns-link. Sei o ID de recurso da rede virtual Deixe-o desmarcado. Rede virtual Selecione a rede virtual à qual seu aplicativo de contêiner está integrado. Ativar registo automático Deixe-o desmarcado. Selecione OK para criar o link de rede virtual.
Criar e configurar o Gateway de Aplicação do Azure
Para criar e configurar um Azure Application Gateway, complete os seguintes passos:
Vá para o portal do Azure.
Na barra de pesquisa, digite Application Gateway.
Selecione Application Gateway nos resultados da pesquisa.
Agora, insira os detalhes necessários na guia Noções básicas , Guia Front-ends , Guia Back-ends e Guia Configuração .
Separador Informações Básicas
Execute as seguintes etapas:
Insira os seguintes valores na seção Detalhes do projeto.
Cenário Ação Subscrição Selecione a subscrição do Azure. Grupo de recursos Selecione o grupo de recursos para seu aplicativo de contêiner. Nome do gateway do aplicativo Digite my-container-apps-agw. Região Selecione o local onde provisionou a sua aplicação Container. Escalão de serviço Selecione WAF V2. Você pode usar o Standard V2 se não precisar de WAF. Ativar o dimensionamento automático Deixe como predefinido. Para ambientes de produção, recomenda-se o dimensionamento automático. Consulte Autoscaling Azure Application Gateway. Zona de Disponibilidade Selecione Nenhuma. Para ambientes de produção, as zonas de disponibilidade são recomendadas para maior disponibilidade. HTTP2 mantenha o valor predefinido. Política WAF Selecione Criar novo e insira my-waf-policy para a Política WAF. Selecione OK. Se você escolheu Standard V2 para a camada, ignore esta etapa. Rede virtual Selecione a rede virtual à qual seu aplicativo de contêiner está integrado. Sub-rede Selecione Gerir configuração de sub-rede. Se já tens uma sub-rede que queres usar, seleciona essa sub-rede e salta para a secção de Frontends. Na janela Sub-redes de my-vnet, selecione +Sub-rede e insira os seguintes valores:
Cenário Ação Nome Insira appgateway-subnet. Intervalo de endereços da sub-rede Mantenha os valores padrão. Para o restante das configurações, mantenha os valores padrão.
Selecione Salvar para criar a nova sub-rede.
Feche a janela Sub-redes para retornar à janela Criar gateway de aplicativo.
Selecione os seguintes valores:
Cenário Ação Sub-rede Selecione a sub-rede appgateway que você criou. Selecionar Próximo: Frontends para avançar.
Aba de frontends
Execute as seguintes etapas:
Na guia Frontends, insira os seguintes valores:
Cenário Ação Tipo de endereço IP da interface de frontend Selecione Público. Endereço IP público Selecione Adicionar novo. Digite my-frontend para o nome do seu frontend e selecione OK Nota
Para o SKU Application Gateway v2, precisas de um IP de frontend público. Para obter mais informações, consulte Suporte a endereços IP públicos e privados e Gerenciar um endereço IP público com um Gateway de Aplicativo do Azure.
Selecione Next: Backends.
Guia Back-ends
O pool backend encaminha pedidos para os servidores backend apropriados. Pode compor pools de backend a partir de qualquer combinação dos seguintes recursos:
- Placas de Interface de Rede (NICs)
- Endereços IP públicos
- Endereços IP internos
- Conjuntos de Dimensionamento de Máquinas Virtuais
- Nomes de domínio totalmente qualificados (FQDN)
- Backends multilocatários como Azure App Service e Container Apps
Neste exemplo, você cria um pool de back-end direcionado ao seu aplicativo de contêiner.
Para criar um pool backend, complete os seguintes passos:
Selecione Adicionar um pool de back-end.
Abra um novo separador e vá para a sua aplicação de contentores.
Na janela Visão geral do aplicativo de contêiner, localize a URL do aplicativo e copie-a.
Volte à guia Backends e insira os seguintes valores na janela Adicionar um pool de back-end:
Cenário Ação Nome Digite my-agw-backend-pool. Adicionar um pool de back-end sem alvos Selecione Não. Tipo de destino Selecione Endereço IP ou FQDN. Objetivo Insira a URL do aplicativo de contêiner que você copiou e remova o prefixo https://. Esse local é o FQDN do seu aplicativo de contêiner. Selecione Adicionar.
Na guia Back-ends, selecione Next: Configuration.
Aba de Configuração
Na aba Configuração, liga o frontend e o pool de backend que criou usando uma regra de roteamento.
Para conectar o pool de front-end e back-end, execute as seguintes etapas:
Selecione Adicionar uma regra de roteamento. Introduza os seguintes valores:
Cenário Ação Nome Insira my-agw-routing-rule. Prioridade Digite 1. Na guia Ouvinte, insira os seguintes valores:
Cenário Ação Nome do ouvinte Digite my-agw-listener. IP de Front-end Selecione Público. Protocolo Selecione HTTPS. Se você não tiver um certificado que deseja usar, selecione HTTP Porta Digite 443. Se você escolheu HTTP para seu protocolo, digite 80 e pule para a seção de domínio padrão/personalizado. Escolha um certificado Selecione Carregar um certificado. Se o certificado estiver armazenado no Cofre de Chaves, você poderá selecionar Escolher um certificado no Cofre de Chaves. Nome do certificado Insira um nome para o seu certificado. Ficheiro de certificado PFX Selecione seu certificado público válido. Palavra-passe Introduza a palavra-passe do seu certificado. Se pretender utilizar o domínio predefinido, introduza os seguintes valores:
Cenário Ação Tipo de ouvinte Selecione Básico URL da página de erro Deixar como Não Como alternativa, se você quiser usar um domínio personalizado, insira os seguintes valores:
Cenário Ação Tipo de ouvinte Selecione Multi-site Tipo de host Selecione Solteiro Nomes de host Introduza o Domínio Personalizado que pretende utilizar. URL da página de erro Deixar como Não Selecione o separador Backend targets e insira os seguintes valores:
Alterne para o separador Destinos de Backend e insira os seguintes valores:
Cenário Ação Tipo de destino Selecione my-agw-backend-pool que você criou anteriormente. Configurações de back-end Selecione Adicionar novo. Na janela Adicionar back-end de configuração, insira os seguintes valores:
Cenário Ação Nome das configurações de back-end Insira my-agw-backend-setting. Protocolo de back-end Selecione HTTPS. Porta traseira Digite 443. Usar certificado CA conhecido Selecione Yes (Sim). Substituir por novo nome de host Selecione Yes (Sim). Substituição do nome do host Selecione Escolha o nome do host a partir do alvo de back-end. Criar sondas personalizadas Selecione Não. Em Request Header Rewrite, configure as seguintes definições:
- Ativar regravação de cabeçalho de solicitação: selecione Sim.
- Adicione um cabeçalho de solicitação:
- Nome do cabeçalho:
X-Forwarded-Host - Valor:
{http_req_host}
- Nome do cabeçalho:
Essa ação garante que o cabeçalho original
Hostda solicitação do cliente seja preservado e acessível pelo aplicativo de back-end.Seleciona Adicionar para adicionar as definições do backend.
Na janela Adicionar uma regra de roteamento, selecione Adicionar novamente.
Selecione Next: Tags.
Selecione Próximo: Rever + criar, depois selecione Criar.
Adicionar link privado ao seu Application Gateway
Pode estabelecer uma ligação segura a ambientes internos de aplicações de contentor usando ligação privada. Com ligação privada, o seu Gateway de Aplicações pode comunicar com a sua Container App no backend através da rede virtual.
Depois de criar o Gateway de Aplicações, selecione Ir para o recurso.
No menu à esquerda, selecione Link privado e, em seguida, selecione Adicionar.
Introduza os seguintes valores:
Cenário Ação Nome Digite my-agw-private-link. Sub-rede de ligação privada Selecione a sub-rede que quer usar para criar o link privado. Configuração de IP de Front-end Selecione o IP frontend para seu Application Gateway. Em Configurações de endereço IP privado, selecione Adicionar.
Selecione Adicionar na parte inferior da janela.
Preservar o cabeçalho do host original para redirecionamentos e SSO
Quando configura o Azure Application Gateway como um proxy inverso e ativa o Override com a nova definição do nome do host , o Host cabeçalho é modificado. Modificar o cabeçalho pode interferir com aplicativos que dependem do valor original do host para gerar URLs de redirecionamento, links absolutos ou suportar fluxos de autenticação OpenID Connect (OIDC).
Para encaminhar o cabeçalho original do host, pode injetar o cabeçalho no
Configurar injeção de X-Forwarded-Host
Para ativar a X-Forwarded-Host injeção:
No separador Configuração , selecione a secção de Definições Backend da regra de roteamento do seu Gateway de Aplicação:
- Habilite a regravação do cabeçalho da solicitação.
- Adicione um novo cabeçalho de solicitação com os seguintes valores:
- Nome do cabeçalho:
X-Forwarded-Host - Valor:
{http_req_host}
- Nome do cabeçalho:
A sua aplicação de backend pode agora ler o host do pedido original usando o
X-Forwarded-Hostcabeçalho.
Nota
Ao configurar regras de reescrita de cabeçalhos, certifique-se de usar a sintaxe correta das variáveis. As variáveis do servidor devem usar o prefixo apropriado, como http_req_ para cabeçalhos de pedido. Para resolução de erros de configuração das regras de reescrita, consulte Reescrever cabeçalhos HTTP e URL com o Application Gateway.
Verificar o aplicativo de contêiner
Encontre o endereço IP público do gateway de aplicativo em sua página Visão geral ou você pode pesquisar o endereço. Para pesquisar, selecione Todos os recursos e digite my-container-apps-agw-pip na caixa de pesquisa. Em seguida, selecione o IP nos resultados da pesquisa.
Vá ao endereço IP público do gateway de aplicação.
Sua solicitação é roteada automaticamente para o aplicativo de contêiner, que verifica se o gateway de aplicativo foi criado com êxito.
Limpar recursos
Quando não precisar mais dos recursos criados, exclua o grupo de recursos. Ao excluir o grupo de recursos, você também remove todos os recursos relacionados.
Para eliminar o grupo de recursos:
No menu do portal do Azure, selecione Grupos de recursos ou procure e selecione Grupos de recursos.
Na página Grupos de recursos, procure e selecione my-container-apps.
Na página de grupo de recursos , selecione Eliminar grupo de recursos.
Insira my-container-apps em ESCREVER O NOME DO GRUPO DE RECURSOS e depois selecione Eliminar.