Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
As APIs tornaram-se cada vez mais integrais à forma como as organizações e seus clientes acessam serviços, tanto em 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 se concentra em aumentar a produtividade e gerar receita por meio da monetização da API. Dada essa tendência, o Gerenciamento de API do Azure serve como um elemento fundamental na governança padronizada, publicação e supervisão de APIs para stakeholders internos e externos.
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 extras para ajudar a proteger suas APIs. Com essa abordagem, você pode usar uma única instância de Gerenciamento de API para dar suporte a APIs internas em sua organização e APIs externas fora da sua organização, mantendo todas as APIs expostas publicamente protegidas por trás do gateway.
Observação
Essa arquitetura serve como base das diretrizes para o Gerenciamento de API em uma zona de destino do Azure no Cloud Adoption Framework para Azure.
Arquitetura
Baixe um Arquivo Visio dessa arquitetura.
Essa arquitetura pressupõe que as políticas estão em vigor a partir da implementação de referência da zona de destino do Azure e que a estrutura é orientada para baixo do grupo de gerenciamento.
Workflow
Os endereços IP públicos são atribuídos a um gateway de aplicativo, que serve como o ponto de entrada para 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 de WAF (Firewall de Aplicativo Web) 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 de Gerenciamento de API separada. 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 de 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 privado dedicada.
Os workspaces do Log Analytics e o Application Insights são integrados para registro em log, monitoramento e telemetria.
Componentes
O Gerenciamento de API é um serviço gerenciado que permite gerenciar serviços em ambientes híbridos e multinuvem. Ele fornece controle e segurança para 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 Gateway de Aplicativo é um serviço gerenciado que serve como um balanceador de carga de camada 7 e WAF. O Gateway de Aplicativo protege a instância interna de Gerenciamento de API, que permite o uso de modos internos e externos. Nessa arquitetura, o Gerenciamento de API protege AS APIs e o Gateway de Aplicativo adiciona recursos complementares, como o 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 detectar anomalias, diagnosticar problemas e entender padrões de uso. O Application Insights conta com monitoramento e gerenciamento do desempenho de aplicativos extensíveis para aplicativos Web dinâmicos. Há suporte para várias plataformas, como .NET, Node.js, Java e Python. Ele aceita 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 em nuvem que permite editar e executar consultas de log em 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 visualizar os resultados. Nessa arquitetura, o Log Analytics agrega todos os logs de recursos da plataforma para análise e relatório.
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 Gateway de Aplicativo.
Alternativas
Para os serviços de 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 totalmente gerenciado baseado em HTTP que cria, implanta e dimensiona aplicativos Web. Ele dá suporte a .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 AKS (Serviço de Kubernetes do Azure) é uma oferta gerenciada do Kubernetes que fornece clusters totalmente gerenciados. Ele permite a integração contínua integrada e a CI/CD (entrega contínua), juntamente com a governança e a segurança internas.
Os Aplicativos Lógicos do Azure são uma plataforma baseada em nuvem que cria e executa fluxos de trabalho automatizados. Para obter mais informações, consulte uma arquitetura de referência de exemplo.
Os Aplicativos de Contêiner do Azure são um serviço de contêiner totalmente gerenciado sem servidor que permite executar microsserviços e aplicativos em contêineres em uma plataforma sem servidor.
Para implantações de várias regiões, considere usar o Azure Front Door para fornecer acesso rápido, confiável e seguro entre os usuários e o conteúdo estático e dinâmico da Web de seus aplicativos.
Para ver exemplos adicionais de como o Gateway de Aplicativo pode proteger APIs, consulte Proteger APIs com o Gateway de Aplicativo e o Gerenciamento de API.
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.
Confiabilidade
A confiabilidade ajuda a garantir que seu aplicativo possa cumprir os compromissos que você faz aos 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 distribuídas em 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 operando mesmo se as unidades em uma zona de disponibilidade forem perdidas.
Recomendamos que você use a camada Premium porque ela dá suporte a zonas de disponibilidade e implantações de várias regiões. Essa funcionalidade significa que seus serviços podem continuar a ser executados mesmo que uma região ou zona fala. Esses recursos ajudam a proteger seu aplicativo durante interrupções ou desastres.
Para recuperação de desastre, 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 em vigor, para que você possa restaurar o acesso com mais facilidade. Use o Azure Pipelines para automatizar backups. Decida se você precisa implantar seus serviços em mais de uma região para melhorar a confiabilidade.
O emparelhamento de rede virtual fornece um forte desempenho em 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 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 de API e respostas em um esquema OpenAPI. Esses recursos não são um substituto para 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 para APIs fornece proteção completa do ciclo de vida, detecção e resposta para APIs publicadas no Gerenciamento de API. Uma das principais funcionalidades é detectar explorações da API OWASP (Open Web Application Security Project) Principais 10 vulnerabilidades por meio de observações de anomalias de runtime usando detecções baseadas em machine learning e baseadas em regras.
Os workspaces de Gerenciamento de API ajudam você a organizar e isolar suas APIs. Essa abordagem facilita o controle de quem pode acessá-los e gerenciá-los. Cada workspace 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 dá suporte a um ambiente de API mais seguro.
Use segredos do Key Vault como valores nomeados em políticas de Gerenciamento de API para proteger informações confidenciais em políticas de Gerenciamento de API.
Use o Gateway de Aplicativo para acesso externo de uma instância interna de Gerenciamento de API para proteger a instância de Gerenciamento de API, defender contra explorações e vulnerabilidades comuns de aplicativos Web usando o WAF e habilitar a conectividade híbrida.
Implante o gateway de Gerenciamento de API em uma rede virtual para dar suporte à conectividade híbrida e à maior 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 Gateway de Aplicativo e a proteção de DDoS (negação de serviço distribuído) ajudam a evitar que o tráfego excessivo ou as inundações de conexão sobrecarregem a instância de Gerenciamento de API. Para obter mais informações, consulte Proteger APIs usando o Gateway de Aplicativo e o Gerenciamento de API.
Os pontos de extremidade privados do Azure Functions permitem que você se conecte com segurança aos seus aplicativos de funções por meio de um endereço IP privado em sua rede virtual. Essa configuração impede a exposição de 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 somente recursos confiáveis em sua rede possam acessar o Azure Functions.
Otimização de custos
A Otimização de Custos concentra-se em maneiras 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 dar suporte a recursos de zona de disponibilidade e rede virtual. Se você não precisar de instâncias dedicadas, também poderá usar o Consumo Flex, que dá suporte ao acesso à rede e às zonas de disponibilidade. Examine a calculadora de preços dessa implantação.
Para a prova de conceitos ou protótipos, recomendamos que você use outras camadas de Gerenciamento de API, como Desenvolvedor ou Standard.
Excelência operacional
A Excelência operacional abrange os processos de operações que implantam uma aplicação e as mantêm em execução em 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 iac (infraestrutura como código).
Use um processo de CI/CD para gerenciar, controlar versões e atualizar as configurações do Gerenciamento de API.
Crie investigações de integridade personalizadas para ajudar a validar o status da instância de Gerenciamento de API. Use a URL
/status-0123456789abcdefpara 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 girados automaticamente no Gerenciamento de API, o que reflete as alterações dentro de quatro horas.
Se você usa uma ferramenta de DevOps, como o Azure DevOps ou o GitHub, os agentes ou executores hospedados na nuvem operam pela Internet pública. Como o Gerenciamento de API nessa arquitetura está definido como uma rede interna, você precisa usar um agente de DevOps que tenha acesso à rede virtual. O agente 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.
Implantar 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.
Colaboradores
A Microsoft atualiza este artigo. Os colaboradores a seguir escreveram este artigo.
Principais autores:
- Pete Messina | Arquiteto Sênior de Soluções de Nuvem
- Anthony Nevico | Arquiteto Sênior de Soluções de Nuvem
Para ver perfis não públicos do LinkedIn, entre no LinkedIn.
Próximas etapas
- Diretrizes do Cloud Adoption Framework para adotar o Gerenciamento de API em uma zona de destino do Azure
- Terminologia do Gerenciamento de API
- Documentação do Gateway de Aplicativo