Partilhar via


Arquitetura da zona de aterrissagem do Gerenciamento de API do Azure

API Management do Azure
Gateway de Aplicação do Azure
Funções do Azure
.NET

As APIs têm se tornado cada vez mais parte integrante da forma como as organizações e seus clientes acessam os serviços, tanto dentro dos sistemas internos quanto por meio de canais externos. Internamente, as APIs facilitam o acesso a aplicativos de linha de negócios (LoB), soluções proprietárias e integrações de parceiros. Externamente, um número crescente de organizações está focado em aumentar a produtividade e gerar receita por meio da monetização de APIs. Dada essa tendência, o Gerenciamento de API do Azure serve como um elemento fundamental na governança, publicação e supervisão padronizadas de APIs para partes interessadas internas e externas.

O Gateway de Aplicativo do Azure serve como um ponto de verificação de segurança para APIs. Em vez de permitir que os usuários se conectem diretamente pela Internet, você roteia todo o tráfego por meio de um gateway de aplicativo. Essa configuração adiciona controles de acesso adicionais para ajudar a proteger suas APIs. Com essa abordagem, você pode usar uma única instância de Gerenciamento de API para oferecer suporte a APIs internas dentro da organização e APIs externas fora da organização, mantendo todas as APIs expostas publicamente protegidas atrás do gateway.

Nota

Esta arquitetura serve de base para a orientação para a Gestão de APIs numa zona de aterragem Azure no Cloud Adoption Framework para Azure.

Arquitetura

O diagrama mostra uma arquitetura de linha de base segura para o Gerenciamento de API.

Transfira um ficheiro do Visio desta arquitetura.

Essa arquitetura pressupõe que as políticas estejam em vigor a partir da implementação de referência da zona de aterrissagem do Azure e que a estrutura seja direcionada para baixo a partir do grupo de gerenciamento.

Workflow

  • Os endereços IP públicos são atribuídos a um gateway de aplicativo, que serve como ponto de entrada para o tráfego externo. Esse ponto de extremidade expõe APIs por meio de um domínio personalizado.

  • O gateway de aplicativo é implantado em sua própria sub-rede e protegido por políticas WAF (Web Application Firewall) para inspecionar e filtrar solicitações de entrada.

  • O tráfego é roteado do gateway de aplicativo para o Gerenciamento de API (Premium), que reside em uma sub-rede separada de Gerenciamento de API. A instância de Gerenciamento de API é configurada no modo interno, o que impede o acesso público direto.

  • Os pontos de extremidade privados são usados para conectar com segurança o Gerenciamento de API a servidores de aplicativos back-end que são expostos apenas à rede virtual. O Gerenciamento de API também conecta periodicamente dependências, como cofres de chaves do Azure. Normalmente, toda essa conectividade privada ocorre com pontos de extremidade em uma sub-rede de ponto de extremidade privada dedicada.

  • Os espaços de trabalho do Log Analytics e o Application Insights são integrados para registro, monitoramento e telemetria.

Componentes

  • O Gerenciamento de API é um serviço gerenciado que permite gerenciar serviços em ambientes híbridos e multicloud. Ele fornece controle e segurança para a observabilidade e consumo de API por usuários internos e externos. Nessa arquitetura, o Gerenciamento de API serve como uma fachada para abstrair a arquitetura de back-end.

  • O Application Gateway é um serviço gerenciado que serve como balanceador de carga de camada 7 e WAF. O Application Gateway protege a instância interna de Gerenciamento de API, que permite o uso dos modos interno e externo. Nessa arquitetura, o Gerenciamento de API protege APIs e o Application Gateway adiciona recursos complementares, como WAF.

  • As zonas DNS (Sistema de Nomes de Domínio) Privado são um recurso do DNS do Azure que permite gerenciar e resolver nomes de domínio em uma rede virtual sem a necessidade de implementar uma solução DNS personalizada. Uma zona DNS privada pode ser alinhada a uma ou mais redes virtuais por meio de links de rede virtual. Nessa arquitetura, uma zona DNS privada é necessária para garantir a resolução de nomes adequada dentro da rede virtual.

  • O Application Insights é um serviço extensível de gerenciamento de desempenho de aplicativos que ajuda os desenvolvedores a detetar anomalias, diagnosticar problemas e entender padrões de uso. O Application Insights apresenta gerenciamento e monitoramento extensíveis de desempenho de aplicativos para aplicativos Web ao vivo. Várias plataformas são suportadas, incluindo .NET, Node.js, Java e Python. Ele dá suporte a aplicativos hospedados no Azure, no local, em um ambiente híbrido ou em outras nuvens públicas. Nessa arquitetura, o Application Insights monitora os comportamentos do aplicativo implantado.

  • O Log Analytics é uma ferramenta de análise de dados baseada na nuvem que permite editar e executar consultas de log em relação aos dados nos Logs do Azure Monitor, opcionalmente de dentro do portal do Azure. Os desenvolvedores podem executar consultas simples para recuperar registros ou usar o Log Analytics para análise avançada e, em seguida, visualizar os resultados. Nessa arquitetura, o Log Analytics agrega todos os logs de recursos da plataforma para análise e emissão de relatórios.

  • O Azure Key Vault é um serviço de nuvem que armazena e acessa segredos com segurança. Esses segredos variam de chaves de API e senhas a certificados e chaves criptográficas. Nessa arquitetura, o Key Vault armazena os certificados SSL (Secure Sockets Layer) usados pelo Application Gateway.

Alternativas

Para os serviços back-end aos quais a instância de Gerenciamento de API se conecta, várias alternativas estão disponíveis:

  • O Serviço de Aplicativo do Azure é um serviço baseado em HTTP totalmente gerenciado que cria, implanta e dimensiona aplicativos Web. Ele suporta .NET, .NET Core, Java, Ruby, Node.js, PHP e Python. Os aplicativos podem ser executados e dimensionados em ambientes baseados em Windows ou Linux.

  • O Serviço Kubernetes do Azure (AKS) é uma oferta Kubernetes gerenciada que fornece clusters totalmente gerenciados. Ele permite integração contínua integrada e entrega contínua (CI/CD), juntamente com governança e segurança integradas.

  • As Aplicações Lógicas do Azure são uma plataforma baseada na nuvem que cria e executa fluxos de trabalho automatizados. Para obter mais informações, consulte um exemplo de arquitetura de referência.

  • Os Aplicativos de Contêiner do Azure são um serviço de contêiner sem servidor totalmente gerenciado que permite executar microsserviços e aplicativos em contêineres em uma plataforma sem servidor.

Para implantações em várias regiões, considere usar o Azure Front Door para fornecer acesso rápido, confiável e seguro entre seus usuários e o conteúdo da Web estático e dinâmico de seus aplicativos.

Para ver exemplos adicionais de como o Application Gateway pode proteger APIs, consulte Proteger APIs com o Application Gateway e o Gerenciamento de APIs.

Considerações

Essas considerações implementam os pilares do Azure Well-Architected Framework, que é um conjunto de princípios orientadores que você pode usar para melhorar a qualidade de uma carga de trabalho. Para obter mais informações, consulte Well-Architected Framework.

Fiabilidade

A confiabilidade ajuda a garantir que seu aplicativo possa cumprir os compromissos que você assume com seus clientes. Para obter mais informações, consulte Lista de verificação de revisão de design para confiabilidade.

  • Implante pelo menos duas unidades de escala do Gerenciamento de API espalhadas por duas ou mais zonas de disponibilidade em cada região. Monitore as métricas de capacidade e provisione unidades de capacidade suficientes para que você possa continuar a operar mesmo se as unidades em uma zona de disponibilidade forem perdidas.

  • Recomendamos que você use a camada Premium porque ela oferece suporte a zonas de disponibilidade e implantações em várias regiões. Esse recurso significa que seus serviços podem continuar a ser executados mesmo se uma região ou zona ficar inativa. Esses recursos ajudam a proteger seu aplicativo durante interrupções ou desastres.

  • Para recuperação de desastres, configure o Gerenciamento de API com uma identidade gerenciada atribuída pelo usuário em vez de uma identidade atribuída pelo sistema. Se você reimplantar ou excluir o recurso, a identidade e suas permissões permanecerão no lugar, para que você possa restaurar o acesso mais facilmente. Use o Azure Pipelines para automatizar backups. Decida se você precisa implantar seus serviços em mais de uma região para obter melhor confiabilidade.

  • O emparelhamento de rede virtual oferece um forte desempenho dentro de uma região, mas tem um limite de escalabilidade de 500 redes. Se você precisar conectar mais cargas de trabalho, use um design hub-spoke ou a WAN Virtual do Azure.

Segurança

A segurança fornece garantias contra ataques deliberados e o uso indevido de seus valiosos dados e sistemas. Para obter mais informações, consulte Lista de verificação de revisão de design para segurança.

  • As políticas de validação do Gerenciamento de API validam solicitações e respostas de API em relação a um esquema OpenAPI. Esses recursos não substituem um WAF, mas podem fornecer proteção extra contra algumas ameaças. Adicionar políticas de validação pode ter implicações de desempenho, portanto, recomendamos que você use testes de carga de desempenho para avaliar seu impacto na taxa de transferência da API.

  • O Microsoft Defender for APIs fornece proteção, deteção e resposta de ciclo de vida completo para APIs publicadas no Gerenciamento de APIs. Um recurso importante é detetar explorações das 10 principais vulnerabilidades da API do Open Web Application Security Project (OWASP) por meio de observações de anomalias de tempo de execução usando deteções baseadas em aprendizado de máquina e regras.

  • Os espaços de trabalho de Gerenciamento de API ajudam você a organizar e isolar suas APIs. Essa abordagem torna mais fácil controlar quem pode acessá-los e gerenciá-los. Cada espaço de trabalho pode ter seu próprio conjunto de permissões, para que você possa limitar o acesso apenas às pessoas ou equipes que precisam dele. Essa separação reduz o risco de alterações acidentais ou acesso não autorizado e suporta um ambiente de API mais seguro.

  • Use segredos do Cofre de Chaves como valores nomeados em políticas de Gerenciamento de API para proteger informações confidenciais em políticas de Gerenciamento de API.

  • Use o Application Gateway para acesso externo de uma instância interna de Gerenciamento de API para proteger a instância de Gerenciamento de API, defender-se contra explorações e vulnerabilidades comuns de aplicativos Web usando WAF e habilitar a conectividade híbrida.

  • Implante o gateway de Gerenciamento de API em uma rede virtual para oferecer suporte à conectividade híbrida e ao aumento da segurança.

  • O emparelhamento de rede virtual melhora o desempenho em uma região e permite a comunicação privada entre redes virtuais.

  • Ao usar um WAF, você introduz uma camada que inspeciona o tráfego de entrada em busca de comportamento mal-intencionado. Essa proteção ajuda a bloquear ameaças comuns, como injeção de SQL e scripts entre sites. O Application Gateway e a proteção distribuída contra negação de serviço (DDoS) ajudam a evitar que o tráfego excessivo ou inundações de conexão sobrecarreguem a instância de Gerenciamento de API. Para obter mais informações, consulte Proteger APIs usando o Application Gateway e o Gerenciamento de API.

  • Os pontos de extremidade privados para o Azure Functions permitem que você se conecte com segurança aos seus aplicativos de função por meio de um endereço IP privado em sua rede virtual. Esta configuração evita a exposição das suas funções à Internet pública, o que reduz o risco de acesso não autorizado. Nessa arquitetura, os pontos de extremidade privados garantem que apenas recursos confiáveis em sua rede possam acessar o Azure Functions.

Otimização de Custos

A Otimização de Custos concentra-se em formas de reduzir despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, consulte Lista de verificação de revisão de design para otimização de custos.

  • Essa implantação usa o plano Premium para oferecer suporte à zona de disponibilidade e aos recursos de rede virtual. Se você não precisar de instâncias dedicadas, também poderá usar o Flex Consumption, que suporta zonas de acesso à rede e disponibilidade. Analise a calculadora de preços para esta implantação.

  • Para prova de conceitos ou protótipos, recomendamos que você use outras camadas de Gerenciamento de API, como Developer ou Standard.

Excelência Operacional

A Excelência Operacional abrange os processos operacionais que implantam um aplicativo e o mantêm em execução na produção. Para obter mais informações, consulte Lista de verificação de revisão de design para excelência operacional.

  • Represente as configurações de Gerenciamento de API como modelos do Azure Resource Manager e adote uma abordagem de infraestrutura como código (IaC).

  • Use um processo de CI/CD para gerenciar, versionar e atualizar as configurações do Gerenciamento de API.

  • Crie testes de integridade personalizados para ajudar a validar o status da sua instância de Gerenciamento de API. Use a URL /status-0123456789abcdef para criar um ponto de extremidade de integridade comum para o serviço de Gerenciamento de API no gateway de aplicativo.

  • Os certificados atualizados no cofre de chaves são alternados automaticamente no Gerenciamento de API, que reflete as alterações em quatro horas.

  • Se você usar uma ferramenta de DevOps, como o Azure DevOps ou o GitHub, os agentes ou corredores hospedados na nuvem operarão pela Internet pública. Como o Gerenciamento de API nessa arquitetura é definido como uma rede interna, você precisa usar um agente de DevOps que tenha acesso à rede virtual. O agente de DevOps ajuda você a implantar políticas e outras alterações nas APIs em sua arquitetura. Você pode usar esses modelos de CI/CD para separar o processo em partes para que suas equipes de desenvolvimento possam implantar alterações para cada API. Os executores de DevOps iniciam os modelos para lidar com essas implantações individuais.

Implementar este cenário

Essa arquitetura está disponível no GitHub. Ele contém todos os arquivos IaC necessários e as instruções de implantação.

Contribuidores

A Microsoft mantém este artigo. Os seguintes colaboradores escreveram este artigo.

Principais autores:

Para ver perfis não públicos do LinkedIn, inicie sessão no LinkedIn.

Próximos passos