Säker kommunikation från slutpunkt till slutpunkt för Spring Boot-appar i en Nolltillit miljö

Den här artikeln beskriver hur du skyddar kommunikation från slutpunkt till slutpunkt för Spring Boot-appar i en Nolltillit miljö. Du kan skydda kommunikationen från slutpunkt till slutpunkt eller avsluta säkerheten på transportnivå på valfri kommunikationsplats för Spring Boot-appar. Du kan också automatisera etableringen och konfigurationen för alla Azure-resurser som behövs för att skydda kommunikationen.

Det kan vara svårt att implementera säker kommunikation som en del av din lösningsarkitektur. Många kunder roterar sina certifikat manuellt eller skapar egna lösningar för att automatisera etablering och konfiguration. Även då finns det fortfarande risk för dataexfiltrering, till exempel obehörig kopiering eller överföring av data från serversystem. Med Azure Spring Apps hanteras den här informationen åt dig. Azure Spring Apps abstraherar bort det mesta av komplexiteten och lämnar säker kommunikation som konfigurerbara och automatiserade alternativ i tjänsten.

Säker internetkommunikation

TLS/SSL-protokollet upprättar identitet och förtroende och krypterar kommunikation av alla typer. TLS/SSL möjliggör säker kommunikation, särskilt webbtrafik som transporterar handels- och kunddata.

Du kan använda valfri typ av TLS/SSL-certifikat. Du kan till exempel använda certifikat som utfärdats av en certifikatutfärdare, utökade valideringscertifikat, jokerteckencertifikat med stöd för valfritt antal underdomäner eller självsignerade certifikat för utvecklings- och testmiljöer.

Läsa in certifikatsäkerhet med Nolltillit

Nolltillit baseras på principen "lita aldrig på, verifiera alltid och utan autentiseringsuppgifter". Nolltillit hjälper till att skydda all kommunikation genom att eliminera okända och ohanterade certifikat. Nolltillit innebär att endast betrodda certifikat som delas genom att verifiera identiteten innan åtkomsten till dessa certifikat beviljas. Mer information finns i vägledningscentret för Nolltillit.

För att på ett säkert sätt läsa in certifikat från Azure Key Vault använder Spring Boot-appar hanterade identiteter och rollbaserad åtkomstkontroll i Azure (RBAC). Azure Spring Apps använder ett huvudnamn för providertjänsten och rollbaserad åtkomstkontroll i Azure. Den här säkra inläsningen drivs med hjälp av Azure Key Vault Java Cryptography Architecture (JCA)-providern. Mer information finns i Azure Key Vault JCA-klientbibliotek för Java.

Med Azure Key Vault styr du lagring och distribution av certifikat för att minska oavsiktligt läckage. Program och tjänster kan på ett säkert sätt komma åt certifikat. Key Vault använder rollbaserad åtkomstkontroll i Azure för att endast låsa åtkomst till dem som kräver åtkomst, till exempel en administratör, men även appar, med principen om lägsta behörighet. Program och tjänster autentiserar och auktoriserar, med hjälp av Microsoft Entra-ID och rollbaserad åtkomstkontroll i Azure, för att få åtkomst till certifikat. Du kan övervaka åtkomsten och användningen av certifikat i Key Vault via dess fullständiga spårningslogg.

Säker kommunikation från slutpunkt till slutpunkt eller avsluta TLS när som helst

Som du ser i diagrammet nedan finns det flera kommunikationssegment via följande komponenter:

  • Nätverksåtkomstpunkter som Azure Front Door
  • Azure App Gateway
  • F5 BIG-IP Local Traffic Manager
  • Azure API Management
  • Apigee API Management Spring Boot-appar och serverdelssystem som databaser, meddelande- och händelsesystem och appcache.

Du kan skydda kommunikationen från slutpunkt till slutpunkt eller avsluta säkerheten på transportnivå på valfri kommunikationsplats för Spring Boot-appar.

Diagram showing the architecture of end-to-end secure communications for Spring Boot apps.

I följande avsnitt beskrivs den här arkitekturen mer detaljerat.

Segment 1: Säker kommunikation till Azure Spring Apps

Det första segmentet (segment 1 i diagrammet) representerar kommunikation från konsumenter till ingresskontrollanten i Azure Spring Apps. Dessa konsumenter omfattar webbläsare, mobiltelefoner, stationära datorer, kiosker eller nätverksåtkomstpunkter som Azure Front Door, Azure App Gateway, F5 BIG-IP Local Traffic Manager, Azure API Management och Apigee API Management.

Som standard skyddas det här segmentet med hjälp av ett TLS/SSL-certifikat från Microsoft för domänen *.azuremicroservices.io . Du kan använda ditt eget TLS/SSL-certifikat i Azure Key Vault genom att binda en anpassad domän till din app i Azure Spring Apps. Ingen kod krävs. Mer information finns i Självstudie: Mappa en befintlig anpassad domän till Azure Spring Apps.

Segment 2: Skydda kommunikation från ingresskontrollant till appar

Nästa segment (segment 2 i diagrammet) representerar kommunikation från ingresskontrollanten för Azure Spring Apps till valfri app i Azure Spring Apps. Du kan aktivera TLS/SSL för att skydda trafik från ingresskontrollanten till en app som stöder HTTPS. Mer information finns i Aktivera ingress-to-app-TLS för ett program.

En Spring Boot-app kan använda Spring-metoden för att aktivera HTTPS, eller så kan appen skydda kommunikationen med hjälp av Azure Key Vault Certificates Spring Boot Starter. Mer information finns i Självstudie: Skydda Spring Boot-appar med Hjälp av Azure Key Vault-certifikat.

Du behöver följande tre konfigurationssteg för att skydda kommunikationen med ett TLS/SSL-certifikat från ett Azure Key Vault. Ingen kod krävs.

  1. Inkludera följande Azure Key Vault-certifikat Spring Boot Starter-beroende i din pom.xml-fil :

    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>azure-spring-boot-starter-keyvault-certificates</artifactId>
    </dependency>
    
  2. Lägg till följande egenskaper för att konfigurera en app för att läsa in ett TLS/SSL-certifikat från Azure Key Vault. Se till att ange URI:n för Azure Key Vault och certifikatnamnet.

    azure:
      keyvault:
        uri: ${KEY_VAULT_URI}
    
    server:
      ssl:
        key-alias: ${SERVER_SSL_CERTIFICATE_NAME}
        key-store-type: AzureKeyVault
    
  3. Aktivera appens hanterade identitet och bevilja sedan den hanterade identiteten åtkomst till Azure Key Vault med "Get" och "List". Mer information finns i Aktivera systemtilldelad hanterad identitet för ett program i Azure Spring Apps och Åtkomstkontroll för certifikat.

Segment 3: Säker kommunikation från app till hanterad mellanprogram

Nästa segment (segment 3 i diagrammet) representerar kommunikation från valfri app till den hanterade Spring Cloud Config Server och Spring Cloud Service Registry i Azure Spring Apps. Som standard skyddas det här segmentet med hjälp av ett TLS/SSL-certifikat från Microsoft.

Segment 4: Säker app till appkommunikation

Nästa segment (segment 4 i diagrammet) representerar kommunikation mellan en app till en annan app i Azure Spring Apps. Du kan använda Spring Boot Starter för Azure Key Vault-certifikat för att konfigurera anroparappen så att den litar på TLS/SSL-certifikatet som tillhandahålls av en HTTPS-aktiverad app. Mottagarens Spring Boot-app kan använda Spring-metoden för att aktivera HTTPS, eller så kan appen skydda kommunikationen med hjälp av Azure Key Vault Certificates Spring Boot Starter. Mer information finns i Självstudie: Skydda Spring Boot-appar med Hjälp av Azure Key Vault-certifikat.

Segment 5: Säker app till extern systemkommunikation

Nästa segment (segment 5 i diagrammet) representerar kommunikation mellan en app som körs i Azure Spring Apps och externa system. Du kan använda Spring Boot Starter för Azure Key Vault-certifikat för att konfigurera appen som körs i Azure Spring Apps för att lita på TLS/SSL-certifikatet som tillhandahålls av externa system. Mer information finns i Självstudie: Skydda Spring Boot-appar med Hjälp av Azure Key Vault-certifikat.

Läs implicit in TLS/SSL-certifikat från Key Vault till en app

Om din Spring-kod, Java-kod eller bibliotek med öppen källkod, till exempel OpenSSL, förlitar sig på JVM:s standard-JCA-kedja för att implicit läsa in certifikat i JVM:s förtroendearkiv kan du importera dina TLS/SSL-certifikat från Key Vault till Azure Spring Apps och använda dessa certifikat i appen. Mer information finns i Använda TLS/SSL-certifikat i ditt program i Azure Spring Apps.

Ladda upp välkända offentliga TLS/SSL-certifikat för serverdelssystem

För att en app ska kunna kommunicera med serverdelstjänster i molnet eller i lokala system kan den kräva att offentliga TLS/SSL-certifikat används för att skydda kommunikationen. Du kan ladda upp dessa TLS/SSL-certifikat för att skydda utgående kommunikation. Mer information finns i Använda TLS/SSL-certifikat i ditt program i Azure Spring Apps.

Automatisera etablering och konfiguration för att skydda kommunikationen

Med hjälp av en ARM-mall, Bicep eller Terraform kan du automatisera etableringen och konfigurationen av alla Azure-resurser som nämns ovan för att skydda kommunikationen.

Skapa dina lösningar och säkra kommunikationer

Azure Spring Apps är en fullständigt hanterad tjänst för Spring Boot-program. Azure Spring Apps abstraherar bort komplexiteten i infrastruktur och Spring Cloud-hantering av mellanprogram från användare. Du kan fokusera på att skapa din affärslogik och låta Azure ta hand om dynamisk skalning, korrigeringar, säkerhet, efterlevnad och hög tillgänglighet. Med några få steg kan du etablera Azure Spring Apps, skapa program, distribuera och skala Spring Boot-program och börja skydda kommunikationen på några minuter.

Azure Spring Apps är gemensamt byggda, drivs och stöds av Microsoft och VMware.

Nästa steg