Share via


Sichere End-to-End-Kommunikation für Spring Boot-Apps in einer Zero-Trust-Umgebung

In diesem Artikel wird beschrieben, wie Sie die End-to-End-Kommunikation für Spring Boot-Apps in einer Zero-Trust-Umgebung sichern. Sie können die Kommunikation End-to-End sichern oder die Sicherheit auf Transportebene an jedem Kommunikationspunkt für Spring Boot-Apps beenden. Sie können auch die Bereitstellung und Konfiguration für alle Azure-Ressourcen automatisieren, die zum Sichern der Kommunikation erforderlich sind.

Die Implementierung einer sicheren Kommunikation als Teil Ihrer Lösungsarchitektur kann eine Herausforderung darstellen. Viele Kunden rotieren ihre Zertifikate manuell oder erstellen ihre eigenen Lösungen, um die Bereitstellung und Konfiguration zu automatisieren. Selbst dann besteht immer noch das Risiko einer Datenexfiltration, wie z. B. das unbefugte Kopieren oder Übertragen von Daten von Serversystemen. Mit Azure Spring Apps werden diese Details für Sie verarbeitet. Azure Spring Apps abstrahiert den größten Teil der Komplexität und belässt sichere Kommunikation als konfigurierbare und automatisierbare Optionen im Dienst.

Sichere Internetkommunikation

Das TLS/SSL-Protokoll stellt Identität und Vertrauen her und verschlüsselt Kommunikation aller Art. TLS/SSL ermöglicht sichere Kommunikation, insbesondere Webverkehr mit Handels- und Kundendaten.

Sie können jede Art von TLS/SSL-Zertifikat verwenden. Sie können beispielsweise von einer Zertifizierungsstelle ausgestellte Zertifikate, erweiterte Validierungszertifikate, Wildcard-Zertifikate mit Unterstützung für eine beliebige Anzahl von Subdomänen oder selbstsignierte Zertifikate für Entwicklungs- und Testumgebungen verwenden.

Sicherheit von Zertifikaten laden mit Zero Trust

Zero Trust basiert auf dem Prinzip „niemals vertrauen, immer überprüfen und ohne Anmeldeinformationen“. Zero Trust trägt dazu bei, die gesamte Kommunikation zu sichern, indem unbekannte und nicht verwaltete Zertifikate eliminiert werden. Zero Trust bedeutet, nur Zertifikaten zu vertrauen, die freigegeben werden, indem die Identität überprüft wird, bevor der Zugriff auf diese Zertifikate gewährt wird. Weitere Informationen finden Sie im Zero Trust Guidance Center.

Um Zertifikate sicher aus Azure Key Vault zu laden, verwenden Spring Boot-Apps verwaltete Identitäten und die rollenbasierte Zugriffssteuerung (RBAC) von Azure. Azure Spring Apps verwendet einen Anbieterdienstprinzipal und die rollenbasierte Zugriffssteuerung von Azure. Dieses sichere Laden erfolgt mithilfe des Azure Key Vault Java Cryptography Architecture (JCA)-Anbieters. Weitere Informationen finden Sie unter Azure Key Vault JCA-Clientbibliothek für Java.

Mit Azure Key Vault steuern Sie die Speicherung und Verteilung von Zertifikaten, um versehentliche Lecks zu reduzieren. Anwendungen und Dienste können sicher auf Zertifikate zugreifen. Key Vault verwendet die rollenbasierte Zugriffssteuerung von Azure, um den Zugriff nur für diejenigen zu sperren, die Zugriff benötigen, wie z. B. ein Administrator, aber auch für Apps, und zwar nach dem Prinzip der geringsten Rechte. Anwendungen und Dienste authentifizieren und autorisieren mithilfe der Microsoft Entra-ID und der rollenbasierten Zugriffssteuerung auf Zertifikate. Sie können den Zugriff und die Verwendung von Zertifikaten in Key Vault über den vollständigen Prüfpfad überwachen.

Sichern Sie End-to-End-Kommunikation oder beenden Sie TLS jederzeit

Wie im folgenden Diagramm dargestellt, gibt es mehrere Kommunikationssegmente über die folgenden Komponenten:

  • Netzwerkzugriffspunkte wie Azure Front Door
  • Azure Anwendung Gateway
  • F5 Lokaler BIG-IP-Microsoft Azure Traffic Manager
  • Azure API Management
  • Apigee API Management Spring Boot-Apps und Back-End-Systeme wie Datenbanken, Messaging- und Eventing-Systeme und App-Cache.

Sie können die Kommunikation End-to-End sichern oder die Sicherheit auf Transportebene an jedem Kommunikationspunkt für Spring Boot-Apps beenden.

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

In den folgenden Abschnitten wird diese Architektur ausführlicher beschrieben.

Segment 1: Sichere Kommunikation mit Azure Spring Apps

Das erste Segment (Segment 1 im Diagramm) stellt die Kommunikation von Verbrauchern mit dem Eingangscontroller in Azure Spring Apps dar. Zu diesen Verbrauchern gehören Browser, Mobiltelefone, Desktops, Kioske oder Netzwerkzugriffspunkte wie Azure Front Door, Azure Anwendung Gateway, F5 BIG-IP Local Traffic Manager, Azure API Management und Apigee API Management.

Standardmäßig wird dieses Segment mit einem von Microsoft bereitgestellten TLS/SSL-Zertifikat für *.azuremicroservices.io die Domäne gesichert. Sie können Ihr eigenes TLS/SSL-Zertifikat in Azure Key Vault anwenden, indem Sie in Azure Spring Apps eine benutzerdefinierte Domäne an Ihre App binden. Es ist kein Code erforderlich. Weitere Informationen finden Sie unter Tutorial: Zuordnen einer bereits vorhandenen benutzerdefinierten Domäne zu Azure Spring Apps.

Segment 2: Sichere Kommunikation vom eingehenden-Controller zu Apps

Das nächste Segment (Segment 2 im Diagramm) stellt die Kommunikation vom Azure Spring Apps-Eingangscontroller zu einer beliebigen App in Azure Spring Apps dar. Sie können TLS/SSL aktivieren, um den Datenverkehr vom Eingangscontroller zu einer App zu sichern, die HTTPS unterstützt. Weitere Informationen finden Sie unter Aktivieren von Ingress-to-App-TLS für eine Anwendung.

Eine Spring Boot-App kann den Spring-Ansatz verwenden, um HTTPS zu aktivieren, oder die App kann die Kommunikation mithilfe des Azure Key Vault Certificates Spring Boot Starter sichern. Weitere Informationen finden Sie unter Tutorial: Spring Boot-Apps mit Azure Key Vault-Zertifikaten sichern.

Sie benötigen die folgenden drei Konfigurationsschritte, um die Kommunikation mit einem TLS/SSL-Zertifikat aus einem Azure Key Vault zu sichern. Es ist kein Code erforderlich.

  1. Fügen Sie die folgende Azure Key Vault Certificates Spring Boot Starter-Abhängigkeit in Ihre pom.xml-Datei ein:

    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>azure-spring-boot-starter-keyvault-certificates</artifactId>
    </dependency>
    
  2. Fügen Sie die folgenden Eigenschaften hinzu, um eine App zum Laden eines TLS/SSL-Zertifikats aus Azure Key Vault zu konfigurieren. Achten Sie darauf, den URI des Azure Key Vault und den Zertifikatsnamen anzugeben.

    azure:
      keyvault:
        uri: ${KEY_VAULT_URI}
    
    server:
      ssl:
        key-alias: ${SERVER_SSL_CERTIFICATE_NAME}
        key-store-type: AzureKeyVault
    
  3. Aktivieren Sie die verwaltete Identität der App, und gewähren Sie dann der verwalteten Identität mit „Get“ und „List“ Zugriff auf Azure Key Vault. Weitere Informationen finden Sie unter Systemseitig zugewiesene verwaltete Identität für eine Anwendung in Azure Spring-Apps und Zertifikatzugriffssteuerung aktivieren.

Segment 3: Sichere Kommunikation von App zu verwalteter Middleware

Das nächste Segment (Segment 3 im Diagramm) stellt die Kommunikation von jeder App mit dem verwalteten Spring Cloud Config Server und der Spring Cloud Service Registry in Azure Spring Apps dar. Standardmäßig wird dieses Segment mit einem von Microsoft bereitgestellten TLS/SSL-Zertifikat gesichert.

Segment 4: Sichere App-zu-App-Kommunikation

Das nächste Segment (Segment 4 im Diagramm) stellt die Kommunikation zwischen einer App und einer anderen App in Azure Spring Apps dar. Sie können Spring Boot Starter für Azure Key Vault-Zertifikate verwenden, um die Anrufer-App so zu konfigurieren, dass sie dem TLS/SSL-Zertifikat vertraut, das von einer HTTPS-fähigen aufgerufenen App bereitgestellt wird. Die Spring Boot-Empfänger-App kann den Spring-Ansatz verwenden, um HTTPS zu aktivieren, oder die App kann die Kommunikation mithilfe des Spring Boot-Starters für Azure Key Vault-Zertifikate sichern. Weitere Informationen finden Sie unter Tutorial: Spring Boot-Apps mit Azure Key Vault-Zertifikaten sichern.

Segment 5: Sichere App für externe Systemkommunikation

Das nächste Segment (Segment 5 im Diagramm) stellt die Kommunikation zwischen einer in Azure Spring Apps ausgeführten App und externen Systemen dar. Sie können den Spring Boot Starter für Azure Key Vault-Zertifikate verwenden, um die in Azure Spring Apps ausgeführte App so zu konfigurieren, dass sie dem von externen Systemen bereitgestellten TLS/SSL-Zertifikat vertraut. Weitere Informationen finden Sie unter Tutorial: Spring Boot-Apps mit Azure Key Vault-Zertifikaten sichern.

Laden Sie implizit TLS/SSL-Zertifikate aus Key Vault in eine App

Wenn Ihr Spring-Code, Ihr Java-Code oder Ihre Open-Source-Bibliotheken wie OpenSSL auf die standardmäßige JCA-Kette der JVM angewiesen sind, um Zertifikate implizit in den Vertrauensspeicher der JVM zu laden, können Sie Ihre TLS/SSL-Zertifikate aus Key Vault in Azure Spring importieren Apps und verwenden Sie diese Zertifikate innerhalb der App. Weitere Informationen finden Sie unter Verwenden von TLS/SSL-Zertifikaten in Ihrer Anwendung in Azure Spring Apps.

Laden Sie bekannte öffentliche TLS/SSL-Zertifikate für Backend-Systeme hoch

Damit eine App mit Back-End-Diensten in der Cloud oder in lokalen Systemen kommunizieren kann, ist möglicherweise die Verwendung öffentlicher TLS/SSL-Zertifikate erforderlich, um die Kommunikation zu sichern. Sie können diese TLS/SSL-Zertifikate hochladen, um die ausgehende Kommunikation zu sichern. Weitere Informationen finden Sie unter Verwenden von TLS/SSL-Zertifikaten in Ihrer Anwendung in Azure Spring Apps.

Automatisieren Sie die Bereitstellung und Konfiguration zum Sichern der Kommunikation

Mithilfe einer ARM-Vorlage, Bicep oder Terraform können Sie die Bereitstellung und Konfiguration aller oben genannten Azure-Ressourcen zum Sichern der Kommunikation automatisieren.

Erstellen Sie Ihre Lösungen und sichere Kommunikation

Azure Spring Apps ist ein vollständig verwalteter Dienst für Spring Boot-Anwendungen. Azure Spring Apps entlastet die Benutzer von der Komplexität der Infrastruktur und der Spring Cloud-Middlewareverwaltung. Sie können sich auf den Aufbau Ihrer Geschäftslogik konzentrieren und Azure die dynamische Skalierung, Patches, Sicherheit, Compliance und Hochverfügbarkeit überlassen. Mit wenigen Schritten können Sie Azure Spring Apps bereitstellen, Anwendungen erstellen, Spring Boot-Anwendungen bereitstellen und skalieren und innerhalb von Minuten mit dem Sichern der Kommunikation beginnen.

Azure Spring Apps wird von Microsoft und VMware gemeinsam entwickelt, betrieben und unterstützt.

Nächste Schritte