Kompletní zabezpečená komunikace pro aplikace Spring Boot v prostředí nulová důvěra (Zero Trust)

Poznámka:

Plány Basic, Standard a Enterprise budou od poloviny března 2025 vyřazeny ze 3letého období vyřazení. Doporučujeme přejít na Azure Container Apps. Další informace najdete v oznámení o vyřazení Azure Spring Apps.

Od 30. září 2024 bude od 30. září 2024 zastaralý plán s úplným vypnutím po šesti měsících. Doporučujeme přejít na Azure Container Apps. Další informace najdete v tématu Migrace spotřeby Azure Spring Apps Úrovně Standard a vyhrazeného plánu do Azure Container Apps.

Tento článek popisuje, jak zabezpečit kompletní komunikaci pro aplikace Spring Boot v prostředí nulová důvěra (Zero Trust). Zabezpečení komunikace můžete ukončit nebo ukončit zabezpečení na úrovni přenosu v jakémkoli komunikačním bodě pro aplikace Spring Boot. Můžete také automatizovat zřizování a konfiguraci všech prostředků Azure potřebných k zabezpečení komunikace.

Implementace zabezpečené komunikace v rámci architektury řešení může být náročná. Mnoho zákazníků ručně obměňuje certifikáty nebo vytváří vlastní řešení pro automatizaci zřizování a konfigurace. I v takovém případě existuje riziko exfiltrace dat, například neoprávněné kopírování nebo přenos dat ze serverových systémů. S Azure Spring Apps se tyto podrobnosti zpracovávají za vás. Azure Spring Apps většinu složitosti abstrahuje a ponechá zabezpečenou komunikaci jako konfigurovatelnou a automatizovanou možnost ve službě.

Zabezpečená internetová komunikace

Protokol TLS/SSL vytváří identitu a důvěryhodnost a šifruje komunikaci všech typů. Protokol TLS/SSL umožňuje zabezpečenou komunikaci, zejména webový provoz, který zajišťuje obchodování a zákaznická data.

Můžete použít libovolný typ certifikátu TLS/SSL. Můžete například použít certifikáty vydané certifikační autoritou, rozšířenými ověřovacími certifikáty, certifikáty se zástupnými čísly s podporou libovolného počtu subdomén nebo certifikátů podepsaných svým držitelem pro vývojová a testovací prostředí.

Načtení zabezpečení certifikátů pomocí nulová důvěra (Zero Trust)

nulová důvěra (Zero Trust) vychází z principu "nikdy nedůvěřovat, vždy ověřovat a bez přihlašovacích údajů". nulová důvěra (Zero Trust) pomáhá zabezpečit veškerou komunikaci odstraněním neznámých a nespravovaných certifikátů. nulová důvěra (Zero Trust) zahrnuje důvěryhodnost pouze certifikátů, které jsou sdílené ověřením identity před udělením přístupu k těmto certifikátům. Další informace najdete v centru nulová důvěra (Zero Trust) Pokyny.

K bezpečnému načtení certifikátů ze služby Azure Key Vault používají aplikace Spring Boot spravované identity a řízení přístupu na základě role v Azure (RBAC). Azure Spring Apps používá instanční objekt poskytovatele a řízení přístupu na základě role v Azure. Toto zabezpečené načítání využívá zprostředkovatele architektury java kryptografie (Java Cryptography Architecture) služby Azure Key Vault (JCA). Další informace najdete v klientské knihovně JCA služby Azure Key Vault pro Javu.

Se službou Azure Key Vault řídíte úložiště a distribuci certifikátů, abyste snížili náhodné úniky informací. Aplikace a služby můžou bezpečně přistupovat k certifikátům. Key Vault používá řízení přístupu na základě role Azure k uzamčení přístupu jenom těm, kteří vyžadují přístup, jako je správce, ale také aplikace s využitím principu nejnižších oprávnění. Aplikace a služby se ověřují a autorizuje pomocí MICROSOFT Entra ID a řízení přístupu na základě role Azure pro přístup k certifikátům. Přístup a použití certifikátů ve službě Key Vault můžete monitorovat prostřednictvím jeho kompletního záznamu auditu.

Zabezpečená komunikace mezi koncovými a koncovými body nebo ukončením protokolu TLS v libovolném okamžiku

Jak je znázorněno v následujícím diagramu, existuje několik segmentů komunikace prostřednictvím následujících komponent:

  • Síťové přístupové body, jako je Azure Front Door
  • Aplikace Azure Gateway
  • F5 BIG-IP Local Traffic Manager
  • Azure API Management
  • Aplikace Apigee API Management Spring Boot a back-endové systémy, jako jsou databáze, zasílání zpráv a systémy událostí a mezipaměť aplikací.

Zabezpečení komunikace můžete ukončit nebo ukončit zabezpečení na úrovni přenosu v jakémkoli komunikačním bodě pro aplikace Spring Boot.

Diagram znázorňující architekturu komplexní zabezpečené komunikace pro aplikace Spring Boot

Následující části popisují tuto architekturu podrobněji.

Segment 1: Zabezpečení komunikace do Azure Spring Apps

První segment (segment 1 v diagramu) představuje komunikaci od spotřebitelů k kontroleru příchozího přenosu dat v Azure Spring Apps. Mezi tyto uživatele patří prohlížeče, mobilní telefony, stolní počítače, veřejné terminály nebo síťové přístupové body, jako jsou Azure Front Door, Aplikace Azure Gateway, F5 BIG-IP Local Traffic Manager, Azure API Management a Apigee API Management.

Ve výchozím nastavení je tento segment zabezpečený pomocí certifikátu TLS/SSL od Microsoftu *.azuremicroservices.io pro doménu. Vlastní certifikát TLS/SSL můžete použít ve službě Azure Key Vault tak, že pro svou aplikaci v Azure Spring Apps vytvoříte vazbu vlastní domény. Není nutný žádný kód. Další informace najdete v tématu Kurz: Mapování existující vlastní domény na Azure Spring Apps.

Segment 2: Zabezpečená komunikace od kontroleru příchozího přenosu dat do aplikací

Další segment (segment 2 v diagramu) představuje komunikaci z kontroleru příchozího přenosu dat Azure Spring Apps do libovolné aplikace v Azure Spring Apps. Protokol TLS/SSL můžete povolit k zabezpečení provozu z kontroleru příchozího přenosu dat do aplikace, která podporuje protokol HTTPS. Další informace najdete v tématu Povolení protokolu TLS příchozího přenosu dat do aplikace.

Aplikace Spring Boot může k povolení PROTOKOLU HTTPS použít přístup Springu nebo může zabezpečit komunikaci pomocí úvodní sady Spring Boot certifikátů služby Azure Key Vault. Další informace najdete v tématu Kurz: Zabezpečení aplikací Spring Boot pomocí certifikátů služby Azure Key Vault.

K zabezpečení komunikace pomocí certifikátu TLS/SSL ze služby Azure Key Vault potřebujete následující tři kroky konfigurace. Není nutný žádný kód.

  1. Do souboru pom.xml zahrňte následující závislost Spring Boot Certificates Spring Boot:

    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>azure-spring-boot-starter-keyvault-certificates</artifactId>
    </dependency>
    
  2. Přidáním následujících vlastností nakonfigurujte aplikaci tak, aby načetla certifikát TLS/SSL ze služby Azure Key Vault. Nezapomeňte zadat identifikátor URI služby Azure Key Vault a název certifikátu.

    azure:
      keyvault:
        uri: ${KEY_VAULT_URI}
    
    server:
      ssl:
        key-alias: ${SERVER_SSL_CERTIFICATE_NAME}
        key-store-type: AzureKeyVault
    
  3. Povolte spravovanou identitu aplikace a pak udělte spravované identitě přístup "Get" a "List" ke službě Azure Key Vault. Další informace najdete v tématu Povolení spravované identity přiřazené systémem pro aplikaci v Azure Spring Apps a řízení přístupu k certifikátům.

Segment 3: Zabezpečená komunikace z aplikace do spravovaného middlewaru

Další segment (segment 3 v diagramu) představuje komunikaci z libovolné aplikace do spravovaného Spring Cloud Config Serveru a registru služby Spring Cloud v Azure Spring Apps. Ve výchozím nastavení je tento segment zabezpečený pomocí certifikátu TLS/SSL dodaného Microsoftem.

Segment 4: Zabezpečení aplikace pro komunikaci s aplikacemi

Další segment (segment 4 v diagramu) představuje komunikaci mezi aplikací a jinou aplikací v Azure Spring Apps. Úvodní sadu spring bootových certifikátů služby Azure Key Vault můžete použít ke konfiguraci aplikace volajícího tak, aby důvěřovala certifikátu TLS/SSL poskytnutému aplikací s povolenou protokolem HTTPS. Aplikace Spring Boot příjemce může k povolení PROTOKOLU HTTPS použít metodu Spring nebo aplikace může zabezpečit komunikaci pomocí úvodní sady Spring Boot certifikátů služby Azure Key Vault. Další informace najdete v tématu Kurz: Zabezpečení aplikací Spring Boot pomocí certifikátů služby Azure Key Vault.

Segment 5: Zabezpečení aplikace pro komunikaci externího systému

Další segment (segment 5 v diagramu) představuje komunikaci mezi aplikací spuštěnou v Azure Spring Apps a externími systémy. Úvodní sadu Spring Boot certifikáty služby Azure Key Vault můžete použít ke konfiguraci aplikace spuštěné v Azure Spring Apps tak, aby důvěřovala certifikátu TLS/SSL poskytovanému všemi externími systémy. Další informace najdete v tématu Kurz: Zabezpečení aplikací Spring Boot pomocí certifikátů služby Azure Key Vault.

Implicitně načíst certifikáty TLS/SSL ze služby Key Vault do aplikace

Pokud váš kód Spring, kód Java nebo opensourcové knihovny, jako je OpenSSL, spoléhá na výchozí řetěz JVM JCA, který implicitně načte certifikáty do úložiště důvěryhodnosti prostředí JVM, můžete certifikáty TLS/SSL importovat ze služby Key Vault do Azure Spring Apps a používat tyto certifikáty v rámci aplikace. Další informace najdete v tématu Použití certifikátů TLS/SSL ve vaší aplikaci v Azure Spring Apps.

Nahrání známých veřejných certifikátů TLS/SSL pro back-endové systémy

Aby aplikace mohla komunikovat s back-endovými službami v cloudu nebo v místních systémech, může k zabezpečení komunikace vyžadovat použití veřejných certifikátů TLS/SSL. Tyto certifikáty TLS/SSL můžete nahrát pro zabezpečení odchozí komunikace. Další informace najdete v tématu Použití certifikátů TLS/SSL ve vaší aplikaci v Azure Spring Apps.

Automatizace zřizování a konfigurace pro zabezpečení komunikace

Pomocí šablony ARM, Bicep nebo Terraformu můžete automatizovat zřizování a konfiguraci všech výše uvedených prostředků Azure pro zabezpečení komunikace.

Vytváření řešení a zabezpečená komunikace

Azure Spring Apps je plně spravovaná služba pro aplikace Spring Boot. Azure Spring Apps od uživatelů abstrahuje složitost infrastruktury a správy middlewaru Spring Cloud. Můžete se zaměřit na vytváření obchodní logiky a umožnit Azure, aby se postarala o dynamické škálování, opravy, zabezpečení, dodržování předpisů a vysokou dostupnost. Pomocí několika kroků můžete zřídit Azure Spring Apps, vytvářet aplikace, nasazovat a škálovat aplikace Spring Boot a za pár minut začít zabezpečit komunikaci.

Služba Azure Spring Apps je společně vytvořená, provozovaná a podporovaná společností Microsoft a VMware.

Další kroky