Kompleksowa komunikacja dla aplikacji Spring Boot w środowisku Zero Trust
Uwaga
Plany Podstawowa, Standardowa i Enterprise zostaną wycofane od połowy marca 2025 r. z 3-letnim okresem emerytalnym. Zalecamy przejście do usługi Azure Container Apps. Aby uzyskać więcej informacji, zobacz ogłoszenie o wycofaniu usługi Azure Spring Apps.
Zużycie standardowe i dedykowany plan zostaną wycofane od 30 września 2024 r. z całkowitym zamknięciem po sześciu miesiącach. Zalecamy przejście do usługi Azure Container Apps. Aby uzyskać więcej informacji, zobacz Migrowanie użycia usługi Azure Spring Apps w warstwie Standardowa i dedykowanego planu do usługi Azure Container Apps.
W tym artykule opisano sposób zabezpieczania kompleksowej komunikacji dla aplikacji Spring Boot w środowisku Zero Trust. Kompleksową komunikację można zabezpieczyć lub zakończyć zabezpieczenia na poziomie transportu w dowolnym punkcie komunikacji dla aplikacji Spring Boot. Możesz również zautomatyzować aprowizowanie i konfigurację dla wszystkich zasobów platformy Azure potrzebnych do zabezpieczania komunikacji.
Implementowanie bezpiecznej komunikacji w ramach architektury rozwiązania może być trudne. Wielu klientów ręcznie wymienia certyfikaty lub tworzy własne rozwiązania w celu zautomatyzowania aprowizacji i konfiguracji. Nawet wtedy nadal istnieje ryzyko eksfiltracji danych, takie jak nieautoryzowane kopiowanie lub transfer danych z systemów serwerowych. Dzięki usłudze Azure Spring Apps te szczegóły są obsługiwane. Usługa Azure Spring Apps abstrahuje od większości złożoności, pozostawiając bezpieczną komunikację jako konfigurowalną i zautomatyzowaną opcje w usłudze.
Bezpieczna komunikacja internetowa
Protokół TLS/SSL ustanawia tożsamość i zaufanie oraz szyfruje komunikację wszystkich typów. Protokół TLS/SSL umożliwia bezpieczną komunikację, szczególnie ruch internetowy przenosząc dane handlowe i dane klientów.
Możesz użyć dowolnego typu certyfikatu TLS/SSL. Można na przykład użyć certyfikatów wystawionych przez urząd certyfikacji, certyfikaty rozszerzonej weryfikacji, certyfikaty wieloznaczne z obsługą dowolnej liczby domen podrzędnych lub certyfikatów z podpisem własnym dla środowisk deweloperskich i testowych.
Ładowanie zabezpieczeń certyfikatów z zerowym zaufaniem
Zero Trust opiera się na zasadzie "nigdy nie ufaj, zawsze weryfikuj i bez poświadczeń". Zero Trust pomaga zabezpieczyć całą komunikację, eliminując nieznane i niezarządzane certyfikaty. Zero Trust obejmuje zaufanie tylko do certyfikatów, które są współużytkowane przez zweryfikowanie tożsamości przed udzieleniem dostępu do tych certyfikatów. Aby uzyskać więcej informacji, zobacz Centrum wskazówek dotyczących zaufania zerowego.
Aby bezpiecznie załadować certyfikaty z usługi Azure Key Vault, aplikacje Spring Boot używają tożsamości zarządzanych i kontroli dostępu opartej na rolach (RBAC) platformy Azure. Usługa Azure Spring Apps używa jednostki usługi dostawcy i kontroli dostępu opartej na rolach platformy Azure. To bezpieczne ładowanie jest obsługiwane przy użyciu dostawcy JCA (Java Cryptography Architecture) usługi Azure Key Vault. Aby uzyskać więcej informacji, zobacz Biblioteka klienta JCA usługi Azure Key Vault dla języka Java.
Usługa Azure Key Vault kontroluje magazyn i dystrybucję certyfikatów w celu zmniejszenia przypadkowego wycieku. Aplikacje i usługi mogą bezpiecznie uzyskiwać dostęp do certyfikatów. Usługa Key Vault używa kontroli dostępu opartej na rolach platformy Azure, aby zablokować dostęp tylko do osób wymagających dostępu, takich jak administrator, ale także aplikacje, korzystając z zasady najniższych uprawnień. Aplikacje i usługi uwierzytelniają się i autoryzuj, używając identyfikatora Entra firmy Microsoft i kontroli dostępu opartej na rolach platformy Azure w celu uzyskania dostępu do certyfikatów. Dostęp i użycie certyfikatów w usłudze Key Vault można monitorować za pomocą pełnego dziennika inspekcji.
Kompleksowa komunikacja lub kończenie protokołu TLS w dowolnym momencie
Jak pokazano na poniższym diagramie, istnieje kilka segmentów komunikacji za pośrednictwem następujących składników:
- Punkty dostępu do sieci, takie jak Azure Front Door
- aplikacja systemu Azure Gateway
- F5 BIG-IP Local Traffic Manager
- Usługa Azure API Management
- Aplikacje Spring Boot usługi Apigee API Management i systemy zaplecza, takie jak bazy danych, systemy obsługi komunikatów i zdarzeń oraz pamięć podręczna aplikacji.
Kompleksową komunikację można zabezpieczyć lub zakończyć zabezpieczenia na poziomie transportu w dowolnym punkcie komunikacji dla aplikacji Spring Boot.
W poniższych sekcjach opisano tę architekturę bardziej szczegółowo.
Segment 1. Bezpieczna komunikacja z usługą Azure Spring Apps
Pierwszy segment (segment 1 na diagramie) reprezentuje komunikację od konsumentów do kontrolera ruchu przychodzącego w usłudze Azure Spring Apps. Użytkownicy ci obejmują przeglądarki, telefony komórkowe, komputery stacjonarne, kioski lub punkty dostępu do sieci, takie jak Azure Front Door, aplikacja systemu Azure Gateway, F5 BIG-IP Local Traffic Manager, Azure API Management i Apigee API Management.
Domyślnie ten segment jest zabezpieczony przy użyciu certyfikatu TLS/SSL dostarczonego przez firmę Microsoft dla *.azuremicroservices.io
domeny. Możesz zastosować własny certyfikat TLS/SSL w usłudze Azure Key Vault, łącząc domenę niestandardową z aplikacją w usłudze Azure Spring Apps. Żaden kod nie jest konieczny. Aby uzyskać więcej informacji, zobacz Samouczek: mapowania istniejącej domeny niestandardowej na usługę Azure Spring Apps.
Segment 2. Zabezpieczanie komunikacji z kontrolera ruchu przychodzącego do aplikacji
Następny segment (segment 2 na diagramie) reprezentuje komunikację z kontrolera ruchu przychodzącego usługi Azure Spring Apps do dowolnej aplikacji w usłudze Azure Spring Apps. Możesz włączyć protokół TLS/SSL, aby zabezpieczyć ruch z kontrolera ruchu przychodzącego do aplikacji obsługującej protokół HTTPS. Aby uzyskać więcej informacji, zobacz Włączanie protokołu TLS ruchu przychodzącego do aplikacji dla aplikacji.
Aplikacja Spring Boot może używać podejścia spring do włączania protokołu HTTPS lub aplikacji może zabezpieczyć komunikację przy użyciu szablonu startowego Spring Boot certyfikatów usługi Azure Key Vault. Aby uzyskać więcej informacji, zobacz Samouczek: zabezpieczanie aplikacji Spring Boot przy użyciu certyfikatów usługi Azure Key Vault.
Aby zabezpieczyć komunikację przy użyciu certyfikatu TLS/SSL z usługi Azure Key Vault, potrzebne są następujące trzy kroki konfiguracji. Żaden kod nie jest konieczny.
Dołącz następującą zależność szablonu startowego Spring Boot certyfikatów usługi Azure Key Vault w pliku pom.xml :
<dependency> <groupId>com.azure.spring</groupId> <artifactId>azure-spring-boot-starter-keyvault-certificates</artifactId> </dependency>
Dodaj następujące właściwości, aby skonfigurować aplikację w celu załadowania certyfikatu TLS/SSL z usługi Azure Key Vault. Pamiętaj, aby określić identyfikator URI usługi Azure Key Vault i nazwę certyfikatu.
azure: keyvault: uri: ${KEY_VAULT_URI} server: ssl: key-alias: ${SERVER_SSL_CERTIFICATE_NAME} key-store-type: AzureKeyVault
Włącz tożsamość zarządzaną aplikacji, a następnie przyznaj tożsamość zarządzaną przy użyciu opcji "Pobierz" i "Lista" do usługi Azure Key Vault. Aby uzyskać więcej informacji, zobacz Włączanie tożsamości zarządzanej przypisanej przez system dla aplikacji w usłudze Azure Spring Apps i kontroli dostępu do certyfikatów.
Segment 3. Zabezpieczanie komunikacji z aplikacji do zarządzanego oprogramowania pośredniczącego
Następny segment (segment 3 na diagramie) reprezentuje komunikację z dowolnej aplikacji do zarządzanego serwera Spring Cloud Config Server i usługi Spring Cloud Service Registry w usłudze Azure Spring Apps. Domyślnie ten segment jest zabezpieczony przy użyciu certyfikatu TLS/SSL dostarczonego przez firmę Microsoft.
Segment 4. Zabezpieczanie komunikacji aplikacji z aplikacjami
Następny segment (segment 4 na diagramie) reprezentuje komunikację między aplikacją a inną aplikacją w usłudze Azure Spring Apps. Możesz użyć szablonu startowego Spring Boot certyfikatów usługi Azure Key Vault, aby skonfigurować aplikację wywołującą do zaufania certyfikatowi TLS/SSL dostarczonemu przez aplikację z obsługą protokołu HTTPS. Aplikacja Spring Boot odbiorcy może używać podejścia spring do włączania protokołu HTTPS lub aplikacji może zabezpieczyć komunikację przy użyciu szablonu startowego Spring Boot certyfikatów usługi Azure Key Vault. Aby uzyskać więcej informacji, zobacz Samouczek: zabezpieczanie aplikacji Spring Boot przy użyciu certyfikatów usługi Azure Key Vault.
Segment 5. Zabezpieczanie aplikacji do komunikacji z systemem zewnętrznym
Następny segment (segment 5 na diagramie) reprezentuje komunikację między aplikacją działającą w usłudze Azure Spring Apps i systemami zewnętrznymi. Certyfikaty usługi Azure Key Vault Spring Boot można użyć do skonfigurowania aplikacji działającej w usłudze Azure Spring Apps w celu zaufania certyfikatowi TLS/SSL dostarczonemu przez dowolne systemy zewnętrzne. Aby uzyskać więcej informacji, zobacz Samouczek: zabezpieczanie aplikacji Spring Boot przy użyciu certyfikatów usługi Azure Key Vault.
Niejawne ładowanie certyfikatów TLS/SSL z usługi Key Vault do aplikacji
Jeśli kod Spring, kod Java lub biblioteki open source, takie jak OpenSSL, polegają na domyślnym łańcuchu JCA JVM, aby niejawnie ładować certyfikaty do magazynu zaufania JVM, możesz zaimportować certyfikaty TLS/SSL z usługi Key Vault do usługi Azure Spring Apps i użyć tych certyfikatów w aplikacji. Aby uzyskać więcej informacji, zobacz Używanie certyfikatów TLS/SSL w aplikacji w usłudze Azure Spring Apps.
Przekazywanie dobrze znanych publicznych certyfikatów TLS/SSL dla systemów zaplecza
Aby aplikacja mogła komunikować się z usługami zaplecza w chmurze lub w systemach lokalnych, może wymagać użycia publicznych certyfikatów TLS/SSL w celu zabezpieczenia komunikacji. Możesz przekazać te certyfikaty TLS/SSL na potrzeby zabezpieczania komunikacji wychodzącej. Aby uzyskać więcej informacji, zobacz Używanie certyfikatów TLS/SSL w aplikacji w usłudze Azure Spring Apps.
Automatyzowanie aprowizacji i konfiguracji na potrzeby zabezpieczania komunikacji
Korzystając z szablonu usługi ARM, Bicep lub Terraform, możesz zautomatyzować aprowizację i konfigurację wszystkich zasobów platformy Azure wymienionych powyżej na potrzeby zabezpieczania komunikacji.
Tworzenie rozwiązań i bezpieczna komunikacja
Azure Spring Apps to w pełni zarządzana usługa dla aplikacji Spring Boot. Usługa Azure Spring Apps abstrahuje od złożoności infrastruktury i zarządzania oprogramowaniem pośredniczącym Spring Cloud od użytkowników. Możesz skupić się na tworzeniu logiki biznesowej i pozwolić platformie Azure na dynamiczne skalowanie, poprawki, zabezpieczenia, zgodność i wysoką dostępność. Korzystając z kilku kroków, możesz aprowizować usługę Azure Spring Apps, tworzyć aplikacje, wdrażać i skalować aplikacje Spring Boot oraz rozpocząć zabezpieczanie komunikacji w ciągu kilku minut.
Usługa Azure Spring Apps jest wspólnie kompilowana, obsługiwana i obsługiwana przez firmy Microsoft i VMware.