Editar

Partilhar via


Implante o AKS e o Gerenciamento de API com mTLS

Microsoft Entra ID
Azure Kubernetes Service (AKS)
Azure API Management
Azure Container Registry
Microsoft Defender for Cloud

Ideias de soluções

Este artigo descreve uma ideia de solução. Seu arquiteto de nuvem pode usar essa orientação para ajudar a visualizar os principais componentes para uma implementação típica dessa arquitetura. Use este artigo como ponto de partida para projetar uma solução bem arquitetada que se alinhe com os requisitos específicos da sua carga de trabalho.

Esta solução demonstra como integrar o Serviço Kubernetes do Azure (AKS) e o Gerenciamento de API do Azure por meio de TLS mútuo (mTLS) em uma arquitetura que fornece criptografia de ponta a ponta.

Conceitos

O gerenciamento de API do Azure permite acesso seguro a serviços back-end por meio de vários mecanismos. Na camada de transporte (rede), o gerenciamento de API do Azure pode apresentar certificados de cliente ao back-end e pode verificar adicionalmente o certificado apresentado pelo servidor back-end. Nesse cenário de autenticação TLS mútua, as seguintes etapas ocorrem:

  1. O gerenciamento de API do Azure se conecta ao servidor back-end (neste cenário, ao controlador de entrada em execução no AKS).
  2. O servidor back-end (o controlador de entrada no AKS) apresenta o certificado do servidor.
  3. O gerenciamento da API do Azure valida o certificado do servidor.
  4. O gerenciamento de API do Azure apresenta o certificado do cliente ao servidor (o controlador de entrada no AKS).
  5. O servidor (o controlador de entrada no AKS) valida o certificado apresentado pelo Gerenciamento de API do Azure.
  6. O servidor (o controlador de entrada no AKS) concede acesso à solicitação que está sendo intermediada por proxy por meio do gerenciamento de API do Azure.

Arquitetura

Diagrama que mostra uma arquitetura para integrar AKS e API Management via mTLS.

Transfira um ficheiro do Visio desta arquitetura.

Fluxo de dados

  1. Um usuário faz uma solicitação para o ponto de extremidade do aplicativo a partir da Internet.
  2. O Gateway de Aplicativo do Azure recebe tráfego como HTTPS e apresenta um certificado público carregado anteriormente do Cofre da Chave do Azure para o usuário.
  3. O Application Gateway usa chaves privadas para descriptografar o tráfego (descarregamento de SSL), executa inspeções de firewall de aplicativos da Web e criptografa novamente o tráfego usando chaves públicas (criptografia de ponta a ponta).
  4. O Application Gateway aplica regras e configurações de back-end com base no pool de back-end e envia tráfego para o pool de back-end de Gerenciamento de API por HTTPS.
  5. O Gerenciamento de API é implantado no modo de rede virtual interna (somente camada Developer ou Premium) com um endereço IP privado. Ele recebe tráfego como HTTPS com certificados PFX de domínio personalizados.
  6. O Microsoft Entra ID fornece autenticação e aplica políticas de Gerenciamento de API via OAuth e, opcionalmente, validação de certificado de cliente. Consulte as etapas para receber e verificar certificados de cliente no Gerenciamento de API do Azure.
  7. O Gerenciamento de API envia tráfego via HTTPS para um controlador de entrada para um cluster privado do AKS, usando o certificado do cliente confiável pelo controlador de entrada do AKS.
  8. O controlador de entrada AKS recebe o tráfego HTTPS e verifica o certificado de cliente apresentado pelo gerenciamento de API do Azure. A maioria dos controladores de entrada de nível empresarial suporta mTLS. O controlador de entrada AKS responde ao gerenciamento da API do Azure com certificado de servidor SSL, que é validado pelo gerenciamento de API.
  9. O controlador de entrada processa segredos TLS (Segredos do Kubernetes) usando cert.pem e key.pem. O controlador de entrada descriptografa o tráfego usando uma chave privada (descarregada). Para um gerenciamento de segredos de segurança aprimorado baseado em requisitos, a integração do driver CSI com o AKS está disponível.
  10. O controlador de entrada criptografa novamente o tráfego usando chaves privadas e envia tráfego por HTTPS para pods AKS. Dependendo dos seus requisitos, você pode configurar a entrada do AKS como backend ou passagem HTTPS.

Componentes

  • Gateway de Aplicação. O Application Gateway é um balanceador de carga de tráfego da Web que você pode usar para gerenciar o tráfego para aplicativos da Web. Nesse cenário, o Gateway de Aplicativo do Azure é o WAF de Camada 7 que executa a terminação SSL e a inspeção de conteúdo.
  • AKS. O AKS fornece clusters Kubernetes totalmente gerenciados para implantação, dimensionamento e gerenciamento de aplicativos em contêineres. Nesse cenário, a lógica de back-end / microsserviços são implantados no AKS.
  • Azure Container Registry. O Registro de Contêiner é um serviço de registro do Docker gerenciado e privado no Azure. Você pode usar o Registro de Contêiner para armazenar imagens de contêiner privadas, que são implantadas no cluster.
  • ID do Microsoft Entra. Nesse cenário, as solicitações de cliente podem conter um token OAuth 2.0, que será autorizado pelo gerenciamento da API do Azure em relação à ID do Microsoft Entra usando a política de token do Microsoft Entra para validar.
  • Identidades gerenciadas. As identidades geridas proporcionam uma identidade gerida automaticamente no Microsoft Entra ID para as aplicações utilizarem quando se ligam a recursos que suportam a autenticação do Microsoft Entra. Nesse cenário, a identidade gerenciada do AKS pode ser usada para autenticar em sistemas de back-end, como o banco de dados SQL do Azure e o Azure Cosmos DB.
  • Base de Dados SQL do Azure. O Banco de dados SQL é um serviço de banco de dados relacional totalmente gerenciado e inteligente criado para a nuvem. Você pode usar o Banco de dados SQL para criar uma camada de armazenamento de dados de alta disponibilidade e alto desempenho para seus aplicativos de nuvem modernos. Nesse cenário, o banco de dados SQL do Azure é usado como a camada de persistência de dados para dados estruturados.
  • Azure Cosmos DB. O Azure Cosmos DB é um serviço de banco de dados NoSQL totalmente gerenciado para criar e modernizar aplicativos escaláveis e de alto desempenho. Nesse cenário, o Azure Cosmos DB é usado como a camada de persistência de dados para dados semiestruturados.
  • Gerenciamento de API. Você pode usar o Gerenciamento de API do Azure para publicar APIs para seus desenvolvedores, parceiros e funcionários. Nesse cenário, o gerenciamento de API do Azure é usado para fornecer acesso seguro e gerenciado a microsserviços e lógica de negócios hospedados no AKS.
  • Azure Private Link. O Private Link fornece acesso a serviços PaaS hospedados no Azure, para que você possa manter seus dados na rede da Microsoft. Nesse cenário, a conectividade de rede do AKS para o Banco de Dados SQL do Azure, o Azure Cosmos DB e o Registro de Contêiner do Azure é por meio de links privados.
  • Cofre da chave. O Cofre de Chaves pode fornecer segurança aprimorada para chaves e outros segredos. Nesse cenário, os certificados TLS são armazenados no Cofre da Chave do Azure.
  • Defender para Cloud. O Defender for Cloud é uma solução para gerenciamento de postura de segurança na nuvem e proteção da carga de trabalho na nuvem. Ele encontra pontos fracos em sua configuração de nuvem, ajuda a fortalecer a segurança de seu ambiente e pode proteger cargas de trabalho em ambientes híbridos e multinuvem contra ameaças em evolução. Nesse cenário, as imagens de contêiner implantadas no Registro de Contêiner do Azure e no Serviço Kubernetes do Azure são verificadas pelo Microsoft Defender em busca de contêineres.
  • Azure Monitor. Você pode usar o Monitor para coletar, analisar e agir em dados de telemetria de seus ambientes do Azure e locais. O Monitor ajuda a maximizar o desempenho e a disponibilidade de seus aplicativos e a identificar problemas proativamente.
  • Log Analytics. Você pode usar o Log Analytics para editar e executar consultas de log com dados nos logs do Azure Monitor. Nesse cenário, os logs de diagnóstico do Gateway de Aplicativo do Azure, AKS, gerenciamento de API, banco de dados SQL do Azure, Azure Cosmos DB, etc. podem ser enviados para o espaço de trabalho de análise de log para que os logs possam ser analisados com base nos requisitos.
  • Application Insights. O Application Insights é uma extensão do Azure Monitor. Ele fornece monitoramento de desempenho de aplicativos. O gerenciamento da API do Azure e os contêineres no Serviço Kubernetes do Azure podem ser integrados ao Application insights, para que os rastreamentos no nível do aplicativo possam ser obtidos e analisados.
  • Microsoft Sentinel. O Microsoft Sentinel é uma plataforma de gerenciamento de eventos e informações de segurança nativa da nuvem que usa IA integrada para ajudá-lo a analisar grandes volumes de dados. Nesse cenário, o Microsoft Sentinel é usado como a solução SIEM para melhorar a segurança da solução.
  • Azure Bastion. O Azure Bastion é um serviço totalmente gerenciado que fornece acesso RDP e SSH a VMs sem qualquer exposição por meio de endereços IP públicos. Você pode provisionar o serviço diretamente em sua rede virtual local ou emparelhada para obter suporte para todas as VMs nessa rede. Nesse cenário, os recursos de rede privada são acessados por meio de servidores de salto por meio do Azure Bastion.
  • DNS Privado do Azure. Você pode usar o DNS privado para gerenciar e resolver nomes de domínio em uma rede virtual sem adicionar uma solução DNS personalizada. Nesse cenário, as zonas DNS privadas são usadas para resolução de nomes para gerenciamento de API, Azure Cosmos DB, Banco de Dados SQL do Azure e Registro de Contêiner do Azure.

Detalhes do cenário

Você pode usar essa solução para integrar AKS e Gerenciamento de API via mTLS em uma arquitetura que fornece criptografia de ponta a ponta.

Potenciais casos de utilização

  • Integração do AKS com API Management e Application Gateway, via mTLS.
  • MTLS de ponta a ponta entre o Gerenciamento de API e o AKS.
  • Implantações de alta segurança para organizações que precisam de TLS de ponta a ponta. Por exemplo, as organizações do setor financeiro podem beneficiar desta solução.

Você pode usar essa abordagem para gerenciar os seguintes cenários:

  • Implante o Gerenciamento de API no modo interno e exponha APIs usando o Application Gateway.
  • Configure mTLS e criptografia de ponta a ponta para alta segurança e tráfego por HTTPS.
  • Conecte-se aos serviços PaaS do Azure usando um ponto de extremidade privado de segurança aprimorada.
  • Implemente a segurança do Defender for Containers.

Configuração TLS mútua

Consulte Serviços de back-end seguros usando autenticação de certificado de cliente no Gerenciamento de API do Azure para obter instruções sobre como configurar certificados back-end no gerenciamento de API do Azure.

Você também precisará configurar o mTLS no controlador de entrada AKS gerenciado. O certificado do servidor que o AKS apresenta ao APIM pode ser importado diretamente como um segredo do Kubernetes ou pode ser acessado por meio de um segredo do Cofre de Chaves. Consulte o artigo Configurar um nome de domínio personalizado e um certificado SSL com o complemento de roteamento de aplicativo para obter detalhes sobre como configurar o certificado do servidor no controlador de entrada gerenciado pelo AKS. Você pode executar a autenticação de certificado de cliente no controlador de entrada para validar o certificado apresentado pelo Gerenciamento de API. Você precisará fornecer o certificado da autoridade de certificação ao cluster AKS para verificar o certificado do cliente apresentado pelo Gerenciamento de API. As anotações podem precisar ser configuradas no controlador de entrada para impor a validação do certificado do cliente usando o certificado da autoridade de certificação. Para obter mais detalhes, consulte as etapas para autenticação de certificado de cliente e um exemplo de arquivo YAML de entrada com anotações.

Contribuidores

Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.

Autor principal:

Outros contribuidores:

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

Próximos passos