Delen via


End-to-end-communicatie beveiligen voor Spring Boot-apps in een Zero Trust-omgeving

Notitie

De Basic-, Standard- en Enterprise-abonnementen worden afgeschaft vanaf medio maart 2025, met een pensioenperiode van 3 jaar. We raden u aan om over te stappen naar Azure Container Apps. Zie de aankondiging over buitengebruikstelling van Azure Spring Apps voor meer informatie.

Het standaardverbruik en het speciale abonnement worden vanaf 30 september 2024 afgeschaft, met een volledige afsluiting na zes maanden. We raden u aan om over te stappen naar Azure Container Apps. Zie Azure Spring Apps Standard-verbruik en toegewezen abonnement migreren naar Azure Container Apps voor meer informatie.

In dit artikel wordt beschreven hoe u end-to-end communicatie voor Spring Boot-apps in een Zero Trust-omgeving beveiligt. U kunt end-to-end communicatie beveiligen of beveiliging op transportniveau beëindigen op elk communicatiepunt voor Spring Boot-apps. U kunt ook de inrichting en configuratie automatiseren voor alle Azure-resources die nodig zijn voor het beveiligen van communicatie.

Het implementeren van beveiligde communicatie als onderdeel van uw oplossingsarchitectuur kan lastig zijn. Veel klanten draaien hun certificaten handmatig of maken hun eigen oplossingen om het inrichten en configureren te automatiseren. Zelfs dan bestaat er nog steeds risico op gegevensexfiltratie, zoals niet-geautoriseerd kopiëren of overdragen van gegevens van serversystemen. Met Azure Spring Apps worden deze details voor u verwerkt. Azure Spring Apps abstraheert de meeste complexiteit, waardoor beveiligde communicatie wordt overgelaten als configureerbare en automatiseerbare opties in de service.

Beveiligde internetcommunicatie

Het TLS/SSL-protocol brengt identiteit en vertrouwen tot stand en versleutelt de communicatie van alle typen. TLS/SSL maakt beveiligde communicatie mogelijk, met name webverkeer met handels- en klantgegevens.

U kunt elk type TLS/SSL-certificaat gebruiken. U kunt bijvoorbeeld certificaten gebruiken die zijn uitgegeven door een certificeringsinstantie, uitgebreide validatiecertificaten, jokertekencertificaten met ondersteuning voor een willekeurig aantal subdomeinen of zelfondertekende certificaten voor ontwikkel- en testomgevingen.

Beveiliging van certificaten laden met Zero Trust

Zero Trust is gebaseerd op het principe 'nooit vertrouwen, altijd verifiëren en referentiesvrij'. Zero Trust helpt bij het beveiligen van alle communicatie door onbekende en onbeheerde certificaten te elimineren. Zero Trust omvat het vertrouwen van alleen certificaten die worden gedeeld door de identiteit te verifiëren voordat toegang wordt verleend tot deze certificaten. Zie het Zero Trust Guidance Center voor meer informatie.

Spring Boot-apps gebruiken beheerde identiteiten en op rollen gebaseerd toegangsbeheer (RBAC) van Azure om certificaten van Azure Key Vault veilig te laden. Azure Spring Apps maakt gebruik van een providerservice-principal en op rollen gebaseerd toegangsbeheer van Azure. Dit beveiligde laden wordt mogelijk gemaakt met behulp van de JCA-provider (Java Cryptography Architecture) van Azure Key Vault. Zie de JCA-clientbibliotheek van Azure Key Vault voor Java voor meer informatie.

Met Azure Key Vault bepaalt u de opslag en distributie van certificaten om onbedoelde lekkage te verminderen. Toepassingen en services hebben veilig toegang tot certificaten. Key Vault maakt gebruik van op rollen gebaseerd toegangsbeheer van Azure om alleen toegang te vergrendelen voor personen die toegang nodig hebben, zoals een beheerder, maar ook apps, met behulp van het principe van minimale bevoegdheden. Toepassingen en services verifiëren en autoriseren, met behulp van Microsoft Entra ID en op rollen gebaseerd toegangsbeheer van Azure, voor toegang tot certificaten. U kunt de toegang en het gebruik van certificaten in Key Vault bewaken via het volledige audittrail.

End-to-end-communicatie beveiligen of TLS beëindigen op elk gewenst moment

Zoals u in het onderstaande diagram kunt zien, zijn er verschillende communicatiesegmenten via de volgende onderdelen:

  • Netwerktoegangspunten zoals Azure Front Door
  • Azure-app-gateway
  • F5 BIG-IP Local Traffic Manager
  • Azure API Management
  • Apigee API Management Spring Boot-apps en back-endsystemen zoals databases, berichten- en gebeurtenissystemen en app-cache.

U kunt end-to-end communicatie beveiligen of beveiliging op transportniveau beëindigen op elk communicatiepunt voor Spring Boot-apps.

Diagram met de architectuur van end-to-end beveiligde communicatie voor Spring Boot-apps.

In de volgende secties wordt deze architectuur uitgebreider beschreven.

Segment 1: Communicatie beveiligen in Azure Spring Apps

Het eerste segment (segment 1 in het diagram) vertegenwoordigt communicatie van consumenten naar de ingangscontroller in Azure Spring Apps. Deze consumenten omvatten browsers, mobiele telefoons, desktops, kiosken of netwerktoegangspunten zoals Azure Front Door, Azure-app Gateway, F5 BIG-IP Local Traffic Manager, Azure API Management en Apigee API Management.

Dit segment wordt standaard beveiligd met behulp van een door Microsoft opgegeven TLS/SSL-certificaat voor het *.azuremicroservices.io domein. U kunt uw eigen TLS/SSL-certificaat in Azure Key Vault toepassen door een aangepast domein te koppelen aan uw app in Azure Spring Apps. Er is geen code nodig. Zie Zelfstudie: Een bestaand aangepast domein toewijzen aan Azure Spring Apps voor meer informatie.

Segment 2: Communicatie van ingangscontroller naar apps beveiligen

Het volgende segment (segment 2 in het diagram) vertegenwoordigt communicatie van de controller voor inkomend verkeer van Azure Spring Apps naar elke app in Azure Spring Apps. U kunt TLS/SSL inschakelen om verkeer van de ingangscontroller te beveiligen naar een app die HTTPS ondersteunt. Zie Inkomend verkeer naar app TLS inschakelen voor een toepassing voor meer informatie.

Een Spring Boot-app kan spring gebruiken om HTTPS in te schakelen of de app kan communicatie beveiligen met behulp van de Spring Boot Starter-certificaten van Azure Key Vault. Zie Zelfstudie: Spring Boot-apps beveiligen met behulp van Azure Key Vault-certificaten voor meer informatie.

U hebt de volgende drie configuratiestappen nodig om communicatie te beveiligen met behulp van een TLS/SSL-certificaat van een Azure Key Vault. Er is geen code nodig.

  1. Neem de volgende Spring Boot Starter-afhankelijkheid van Azure Key Vault-certificaten op in uw pom.xml-bestand :

    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>azure-spring-boot-starter-keyvault-certificates</artifactId>
    </dependency>
    
  2. Voeg de volgende eigenschappen toe om een app te configureren voor het laden van een TLS/SSL-certificaat vanuit Azure Key Vault. Zorg ervoor dat u de URI van de Azure Key Vault en de certificaatnaam opgeeft.

    azure:
      keyvault:
        uri: ${KEY_VAULT_URI}
    
    server:
      ssl:
        key-alias: ${SERVER_SSL_CERTIFICATE_NAME}
        key-store-type: AzureKeyVault
    
  3. Schakel de beheerde identiteit van de app in en verdeel vervolgens de beheerde identiteit met 'Get' en 'List' toegang tot de Azure Key Vault. Zie Door het systeem toegewezen beheerde identiteit inschakelen voor een toepassing in Azure Spring Apps en toegangsbeheer voor certificaten voor meer informatie.

Segment 3: Communicatie van app naar beheerde middleware beveiligen

Het volgende segment (segment 3 in het diagram) vertegenwoordigt communicatie van elke app naar de beheerde Spring Cloud Config Server en Spring Cloud Service Registry in Azure Spring Apps. Dit segment wordt standaard beveiligd met behulp van een door Microsoft geleverd TLS/SSL-certificaat.

Segment 4: App beveiligen naar app-communicatie

Het volgende segment (segment 4 in het diagram) vertegenwoordigt de communicatie tussen een app en een andere app in Azure Spring Apps. U kunt de Spring Boot Starter-certificaten van Azure Key Vault gebruiken om de aanroeper-app te configureren om het TLS/SSL-certificaat te vertrouwen dat is geleverd door een app met de naam HTTPS. De ontvanger van de Spring Boot-app kan de Spring-benadering gebruiken om HTTPS in te schakelen, of de app kan communicatie beveiligen met behulp van de Spring Boot Starter-certificaten van Azure Key Vault. Zie Zelfstudie: Spring Boot-apps beveiligen met behulp van Azure Key Vault-certificaten voor meer informatie.

Segment 5: App beveiligen naar externe systeemcommunicatie

Het volgende segment (segment 5 in het diagram) vertegenwoordigt de communicatie tussen een app die wordt uitgevoerd in Azure Spring Apps en externe systemen. U kunt de Azure Key Vault-certificaten Spring Boot Starter gebruiken om de app die wordt uitgevoerd in Azure Spring Apps te configureren om het TLS/SSL-certificaat te vertrouwen dat door externe systemen wordt geleverd. Zie Zelfstudie: Spring Boot-apps beveiligen met behulp van Azure Key Vault-certificaten voor meer informatie.

TLS/SSL-certificaten van Key Vault impliciet laden in een app

Als uw Spring-code, Java-code of opensource-bibliotheken, zoals OpenSSL, afhankelijk zijn van de JVM-standaard-JCA-keten om impliciet certificaten te laden in het vertrouwensarchief van de JVM, kunt u uw TLS/SSL-certificaten uit Key Vault importeren in Azure Spring Apps en deze certificaten in de app gebruiken. Zie TLS/SSL-certificaten gebruiken in uw toepassing in Azure Spring Apps voor meer informatie.

Bekende openbare TLS/SSL-certificaten uploaden voor back-endsystemen

Voor een app die kan communiceren met back-endservices in de cloud of in on-premises systemen, kan het gebruik van openbare TLS/SSL-certificaten vereist zijn om communicatie te beveiligen. U kunt deze TLS/SSL-certificaten uploaden voor het beveiligen van uitgaande communicatie. Zie TLS/SSL-certificaten gebruiken in uw toepassing in Azure Spring Apps voor meer informatie.

Inrichting en configuratie automatiseren voor het beveiligen van communicatie

Met behulp van een ARM-sjabloon, Bicep of Terraform kunt u het inrichten en configureren van alle Hierboven genoemde Azure-resources automatiseren voor het beveiligen van communicatie.

Uw oplossingen bouwen en communicatie beveiligen

Azure Spring Apps is een volledig beheerde service voor Spring Boot-toepassingen. Azure Spring Apps abstraheert de complexiteit van infrastructuur en Spring Cloud-middlewarebeheer van gebruikers. U kunt zich richten op het bouwen van uw bedrijfslogica en azure laten zorgen voor dynamisch schalen, patches, beveiliging, naleving en hoge beschikbaarheid. Met een paar stappen kunt u Azure Spring Apps inrichten, toepassingen maken, implementeren en schalen en binnen enkele minuten beginnen met het beveiligen van communicatie.

Azure Spring Apps wordt gezamenlijk gebouwd, beheerd en ondersteund door Microsoft en VMware.

Volgende stappen