Comunicações seguras de ponta a ponta para aplicativos Spring Boot em um ambiente Zero Trust
Nota
Os planos Basic, Standard e Enterprise serão preteridos a partir de meados de março de 2025, com um período de aposentadoria de 3 anos. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para obter mais informações, consulte o anúncio de aposentadoria do Azure Spring Apps.
O plano de consumo padrão e dedicado será preterido a partir de 30 de setembro de 2024, com um desligamento completo após seis meses. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para obter mais informações, consulte Migrar consumo padrão e plano dedicado do Azure Spring Apps para Aplicativos de Contêiner do Azure.
Este artigo descreve como proteger as comunicações de ponta a ponta para aplicativos Spring Boot em um ambiente Zero Trust. Você pode proteger as comunicações de ponta a ponta ou encerrar a segurança no nível de transporte em qualquer ponto de comunicação para aplicativos Spring Boot. Você também pode automatizar o provisionamento e a configuração de todos os recursos do Azure necessários para proteger as comunicações.
Implementar comunicações seguras como parte da arquitetura da sua solução pode ser um desafio. Muitos clientes alternam manualmente seus certificados ou criam suas próprias soluções para automatizar o provisionamento e a configuração. Mesmo assim, ainda há risco de exfiltração de dados, como cópia ou transferência não autorizada de dados de sistemas de servidores. Com o Azure Spring Apps, esses detalhes são tratados para você. O Azure Spring Apps abstrai a maior parte da complexidade, deixando as comunicações seguras como opções configuráveis e automatizadas no serviço.
Comunicações seguras via Internet
O protocolo TLS/SSL estabelece identidade e confiança e criptografa comunicações de todos os tipos. O TLS/SSL possibilita comunicações seguras, particularmente tráfego web que transporta comércio e dados de clientes.
Você pode usar qualquer tipo de certificado TLS/SSL. Por exemplo, você pode usar certificados emitidos por uma autoridade de certificação, certificados de validação estendida, certificados curinga com suporte para qualquer número de subdomínios ou certificados autoassinados para ambientes de desenvolvimento e teste.
Carregue certificados de segurança com Zero Trust
O Zero Trust baseia-se no princípio de "nunca confiar, verificar sempre e sem credenciais". O Zero Trust ajuda a proteger todas as comunicações, eliminando certificados desconhecidos e não gerenciados. Zero Trust envolve confiar apenas em certificados que são compartilhados, verificando a identidade antes de conceder acesso a esses certificados. Para obter mais informações, consulte o Centro de Orientação Zero Trust.
Para carregar certificados com segurança do Azure Key Vault, os aplicativos Spring Boot usam identidades gerenciadas e RBAC (controle de acesso baseado em função) do Azure. O Azure Spring Apps usa uma entidade de serviço de provedor e um controle de acesso baseado em função do Azure. Esse carregamento seguro é alimentado usando o Provedor JCA (Java Cryptography Architecture) do Azure Key Vault. Para obter mais informações, consulte Biblioteca de cliente JCA do Azure Key Vault para Java.
Com o Azure Key Vault, você controla o armazenamento e a distribuição de certificados para reduzir vazamentos acidentais. Aplicativos e serviços podem acessar certificados com segurança. O Key Vault usa o controle de acesso baseado em função do Azure para bloquear o acesso apenas àqueles que exigem acesso, como um administrador, mas também aplicativos, usando o princípio de menor privilégio. Os aplicativos e serviços autenticam e autorizam, usando o Microsoft Entra ID e o controle de acesso baseado em função do Azure, a acessar certificados. Você pode monitorar o acesso e o uso de certificados no Cofre de Chaves por meio de sua trilha de auditoria completa.
Proteja as comunicações de ponta a ponta ou termine o TLS a qualquer momento
Como ilustrado no diagrama abaixo, existem vários segmentos de comunicações através dos seguintes componentes:
- Pontos de acesso de rede, como o Azure Front Door
- Azure App Gateway
- F5 BIG-IP Gestor de Tráfego Local
- API Management do Azure
- Aplicativos Apigee API Management Spring Boot e sistemas de back-end, como bancos de dados, sistemas de mensagens e eventos e cache de aplicativos.
Você pode proteger as comunicações de ponta a ponta ou encerrar a segurança no nível de transporte em qualquer ponto de comunicação para aplicativos Spring Boot.
As seções a seguir descrevem essa arquitetura com mais detalhes.
Segmento 1: Comunicações seguras para o Azure Spring Apps
O primeiro segmento (segmento 1 no diagrama) representa as comunicações dos consumidores para o controlador de entrada no Azure Spring Apps. Esses consumidores incluem navegadores, telefones celulares, desktops, quiosques ou pontos de acesso de rede, como Azure Front Door, Azure App Gateway, F5 BIG-IP Local Traffic Manager, Azure API Management e Apigee API Management.
Por padrão, esse segmento é protegido usando um certificado TLS/SSL fornecido pela Microsoft para o *.azuremicroservices.io
domínio. Você pode aplicar seu próprio certificado TLS/SSL no Azure Key Vault vinculando um domínio personalizado ao seu aplicativo no Azure Spring Apps. Nenhum código é necessário. Para obter mais informações, consulte Tutorial: Mapear um domínio personalizado existente para o Azure Spring Apps.
Segmento 2: Comunicações seguras do controlador de entrada para aplicativos
O próximo segmento (segmento 2 no diagrama) representa as comunicações do controlador de entrada do Azure Spring Apps para qualquer aplicativo no Azure Spring Apps. Você pode habilitar o TLS/SSL para proteger o tráfego do controlador de entrada para um aplicativo que ofereça suporte a HTTPS. Para obter mais informações, consulte Habilitar TLS de entrada no aplicativo para um aplicativo.
Um aplicativo Spring Boot pode usar a abordagem do Spring para habilitar HTTPS, ou o aplicativo pode proteger as comunicações usando o Azure Key Vault Certificates Spring Boot Starter. Para obter mais informações, consulte Tutorial: Aplicativos Secure Spring Boot usando certificados do Azure Key Vault.
Você precisa das três etapas de configuração a seguir para proteger as comunicações usando um certificado TLS/SSL de um Cofre de Chaves do Azure. Nenhum código é necessário.
Inclua a seguinte dependência do Azure Key Vault Certificates Spring Boot Starter em seu arquivo pom.xml :
<dependency> <groupId>com.azure.spring</groupId> <artifactId>azure-spring-boot-starter-keyvault-certificates</artifactId> </dependency>
Adicione as seguintes propriedades para configurar um aplicativo para carregar um certificado TLS/SSL do Cofre de Chaves do Azure. Certifique-se de especificar o URI do Cofre da Chave do Azure e o nome do certificado.
azure: keyvault: uri: ${KEY_VAULT_URI} server: ssl: key-alias: ${SERVER_SSL_CERTIFICATE_NAME} key-store-type: AzureKeyVault
Habilite a identidade gerenciada do aplicativo e conceda à identidade gerenciada com acesso "Get" e "List" ao Cofre de Chaves do Azure. Para obter mais informações, consulte Habilitar identidade gerenciada atribuída pelo sistema para um aplicativo no Azure Spring Apps e Controle de Acesso de Certificado.
Segmento 3: Comunicações seguras do aplicativo para o middleware gerenciado
O próximo segmento (segmento 3 no diagrama) representa as comunicações de qualquer aplicativo para o Spring Cloud Config Server gerenciado e o Registro do Spring Cloud Service no Azure Spring Apps. Por padrão, esse segmento é protegido usando um certificado TLS/SSL fornecido pela Microsoft.
Segmento 4: Comunicações seguras entre aplicações
O próximo segmento (segmento 4 no diagrama) representa as comunicações entre um aplicativo para outro aplicativo no Azure Spring Apps. Você pode usar o Azure Key Vault Certificates Spring Boot Starter para configurar o aplicativo chamador para confiar no certificado TLS/SSL fornecido por um aplicativo chamado habilitado para HTTPS. O aplicativo Spring Boot do recetor pode usar a abordagem do Spring para habilitar HTTPS, ou o aplicativo pode proteger as comunicações usando o Azure Key Vault Certificates Spring Boot Starter. Para obter mais informações, consulte Tutorial: Aplicativos Secure Spring Boot usando certificados do Azure Key Vault.
Segmento 5: Proteja o aplicativo para comunicações externas do sistema
O próximo segmento (segmento 5 no diagrama) representa as comunicações entre um aplicativo em execução no Azure Spring Apps e sistemas externos. Você pode usar o Azure Key Vault Certificates Spring Boot Starter para configurar o aplicativo em execução no Azure Spring Apps para confiar no certificado TLS/SSL fornecido por qualquer sistema externo. Para obter mais informações, consulte Tutorial: Aplicativos Secure Spring Boot usando certificados do Azure Key Vault.
Carregue implicitamente certificados TLS/SSL do Cofre da Chave em um aplicativo
Se seu código Spring, código Java ou bibliotecas de código aberto, como OpenSSL, dependerem da cadeia JCA padrão da JVM para carregar implicitamente certificados no armazenamento confiável da JVM, você poderá importar seus certificados TLS/SSL do Cofre da Chave para o Azure Spring Apps e usar esses certificados no aplicativo. Para obter mais informações, consulte Usar certificados TLS/SSL em seu aplicativo no Azure Spring Apps.
Carregue certificados TLS/SSL públicos bem conhecidos para sistemas de back-end
Para que um aplicativo se comunique com serviços de back-end na nuvem ou em sistemas locais, ele pode exigir o uso de certificados TLS/SSL públicos para proteger a comunicação. Você pode carregar esses certificados TLS/SSL para proteger as comunicações de saída. Para obter mais informações, consulte Usar certificados TLS/SSL em seu aplicativo no Azure Spring Apps.
Automatize o provisionamento e a configuração para proteger as comunicações
Usando um Modelo ARM, Bíceps ou Terraform, você pode automatizar o provisionamento e a configuração de todos os recursos do Azure mencionados acima para proteger as comunicações.
Crie as suas soluções e proteja as comunicações
O Azure Spring Apps é um serviço totalmente gerenciado para aplicativos Spring Boot. O Azure Spring Apps abstrai a complexidade da infraestrutura e do gerenciamento de middleware do Spring Cloud dos usuários. Você pode se concentrar na criação de sua lógica de negócios e permitir que o Azure cuide do dimensionamento dinâmico, patches, segurança, conformidade e alta disponibilidade. Com algumas etapas, você pode provisionar o Azure Spring Apps, criar aplicativos, implantar e dimensionar aplicativos Spring Boot e começar a proteger as comunicações em minutos.
O Azure Spring Apps é criado, operado e suportado em conjunto pela Microsoft e pela VMware.