Aracılığıyla paylaş


Sıfır Güven ortamında Spring Boot uygulamaları için uçtan uca güvenli iletişim

Bu makalede, Sıfır Güven bir ortamda Spring Boot uygulamaları için uçtan uca iletişimlerin nasıl güvenli olduğu açıklanır. Spring Boot uygulamaları için herhangi bir iletişim noktasında uçtan uca iletişimin güvenliğini sağlayabilir veya aktarım düzeyi güvenliği sonlandırabilirsiniz. Ayrıca, iletişimlerin güvenliğini sağlamak için gereken tüm Azure kaynakları için sağlama ve yapılandırmayı otomatikleştirebilirsiniz.

Çözüm mimarinizin bir parçası olarak güvenli iletişimler uygulamak zor olabilir. Birçok müşteri, sağlama ve yapılandırmayı otomatikleştirmek için sertifikalarını el ile döndürür veya kendi çözümlerini oluşturur. Bu durumda bile, verilerin yetkisiz kopyalanması veya sunucu sistemlerinden aktarılması gibi veri sızdırma riski de vardır. Azure Spring Apps ile bu ayrıntılar sizin için işlenir. Azure Spring Apps karmaşıklığın çoğunu soyutlayarak güvenli iletişimleri yapılandırılabilir ve otomatikleştirilebilir seçenekler olarak hizmette bırakır.

İnternet iletişimlerinin güvenliğini sağlama

TLS/SSL protokolü kimlik ve güven oluşturur ve tüm türlerin iletişimlerini şifreler. TLS/SSL, özellikle ticaret ve müşteri verilerini taşıyan web trafiği olmak üzere güvenli iletişimi mümkün kılar.

Her tür TLS/SSL sertifikası kullanabilirsiniz. Örneğin, bir sertifika yetkilisi tarafından verilen sertifikaları, genişletilmiş doğrulama sertifikalarını, herhangi bir sayıda alt etki alanı için destek içeren joker sertifikaları veya geliştirme ve test ortamları için otomatik olarak imzalanan sertifikaları kullanabilirsiniz.

Sıfır Güven ile sertifika güvenliği yükleme

Sıfır Güven "hiçbir zaman güvenme, her zaman doğrulama ve kimlik bilgisi içermeyen" ilkesine dayanır. Sıfır Güven bilinmeyen ve yönetilmeyen sertifikaları ortadan kaldırarak tüm iletişimlerin güvenliğini sağlar. Sıfır Güven, yalnızca bu sertifikalara erişim izni vermeden önce kimliği doğrulayarak paylaşılan sertifikalara güvenmeyi içerir. Daha fazla bilgi için bkz. Sıfır Güven Rehberlik Merkezi.

Spring Boot uygulamaları, Azure Key Vault'tan sertifikaları güvenli bir şekilde yüklemek için yönetilen kimlikleri ve Azure rol tabanlı erişim denetimini (RBAC) kullanır. Azure Spring Apps bir sağlayıcı hizmet sorumlusu ve Azure rol tabanlı erişim denetimi kullanır. Bu güvenli yükleme, Azure Key Vault Java Şifreleme Mimarisi (JCA) Sağlayıcısı kullanılarak desteklenir. Daha fazla bilgi için bkz . Java için Azure Key Vault JCA istemci kitaplığı.

Azure Key Vault ile yanlışlıkla sızıntıyı azaltmak için sertifikaların depolanmasını ve dağıtılmasını denetleyebilirsiniz. Uygulamalar ve hizmetler sertifikalara güvenli bir şekilde erişebilir. Key Vault, azure rol tabanlı erişim denetimini kullanarak yalnızca yönetici gibi erişim gerektiren kişilere erişimi, aynı zamanda en az ayrıcalık ilkesini kullanan uygulamaları da kilitler. Uygulamalar ve hizmetler, sertifikalara erişmek için Microsoft Entra Id ve Azure rol tabanlı erişim denetimini kullanarak kimlik doğrulaması ve yetkilendirme yapar. Key Vault'taki sertifikaların erişimini ve kullanımını tam denetim kaydıyla izleyebilirsiniz.

Uçtan uca güvenli iletişimler veya herhangi bir noktada TLS'yi sonlandırma

Aşağıdaki diyagramda gösterildiği gibi, aşağıdaki bileşenler aracılığıyla iletişimin çeşitli kesimleri vardır:

  • Azure Front Door gibi ağ erişim noktaları
  • Azure Uygulaması Ağ Geçidi
  • F5 BIG-IP Local Traffic Manager
  • Azure API Management
  • Apigee API Management Spring Boot uygulamaları ve veritabanları, mesajlaşma ve olay sistemleri ve uygulama önbelleği gibi arka uç sistemleri.

Spring Boot uygulamaları için herhangi bir iletişim noktasında uçtan uca iletişimin güvenliğini sağlayabilir veya aktarım düzeyi güvenliği sonlandırabilirsiniz.

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

Aşağıdaki bölümlerde bu mimari daha ayrıntılı olarak açıklanmaktadır.

Segment 1: Azure Spring Apps ile güvenli iletişim

İlk segment (diyagramdaki segment 1), tüketicilerden Azure Spring Apps'teki giriş denetleyicisine iletişimi temsil eder. Bu tüketiciler arasında tarayıcılar, cep telefonları, masaüstleri, bilgi noktaları veya Azure Front Door, Azure Uygulaması Gateway, F5 BIG-IP Local Traffic Manager, Azure API Management ve Apigee API Management gibi ağ erişim noktaları bulunur.

Varsayılan olarak, bu segment etki alanı için Microsoft tarafından sağlanan bir TLS/SSL sertifikası kullanılarak güvenlik altına alınır *.azuremicroservices.io . Azure Spring Apps'teki uygulamanıza özel bir etki alanı bağlayarak Azure Key Vault'ta kendi TLS/SSL sertifikanızı uygulayabilirsiniz. Kod gerekmez. Daha fazla bilgi için bkz . Öğretici: Mevcut özel etki alanını Azure Spring Apps ile eşleme.

Segment 2: Giriş denetleyicisinden uygulamalara güvenli iletişim

Sonraki segment (diyagramdaki segment 2), Azure Spring Apps giriş denetleyicisinden Azure Spring Apps'teki herhangi bir uygulamaya yapılan iletişimi temsil eder. GIRIŞ denetleyicisinden HTTPS destekleyen bir uygulamaya gelen trafiğin güvenliğini sağlamak için TLS/SSL'yi etkinleştirebilirsiniz. Daha fazla bilgi için bkz . Uygulama için giriş-uygulama TLS'sini etkinleştirme.

Spring Boot uygulaması, HTTPS'yi etkinleştirmek için Spring yaklaşımını kullanabilir veya Azure Key Vault Sertifikaları Spring Boot Starter'ı kullanarak iletişimin güvenliğini sağlayabilir. Daha fazla bilgi için bkz . Öğretici: Azure Key Vault sertifikalarını kullanarak Spring Boot uygulamalarının güvenliğini sağlama.

Azure Key Vault'tan TLS/SSL sertifikası kullanarak iletişimlerin güvenliğini sağlamak için aşağıdaki üç yapılandırma adımına ihtiyacınız vardır. Kod gerekmez.

  1. pom.xml dosyanıza aşağıdaki Azure Key Vault Sertifikaları Spring Boot Starter bağımlılığını ekleyin:

    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>azure-spring-boot-starter-keyvault-certificates</artifactId>
    </dependency>
    
  2. Bir uygulamayı Azure Key Vault'tan TLS/SSL sertifikası yükleyecek şekilde yapılandırmak için aşağıdaki özellikleri ekleyin. Azure Key Vault'un URI'sini ve sertifika adını belirttiğinizden emin olun.

    azure:
      keyvault:
        uri: ${KEY_VAULT_URI}
    
    server:
      ssl:
        key-alias: ${SERVER_SSL_CERTIFICATE_NAME}
        key-store-type: AzureKeyVault
    
  3. Uygulamanın yönetilen kimliğini etkinleştirin ve ardından yönetilen kimliğe Azure Key Vault'a "Get" ve "List" erişimi verin. Daha fazla bilgi için bkz . Azure Spring Apps ve Sertifika Erişim Denetimi'nde bir uygulama için sistem tarafından atanan yönetilen kimliği etkinleştirme.

Segment 3: Uygulamadan yönetilen ara yazılıma güvenli iletişim

Sonraki segment (diyagramdaki 3. segment) herhangi bir uygulamadan Azure Spring Apps'teki yönetilen Spring Cloud Config Server ve Spring Cloud Service Registry'ye yapılan iletişimi temsil eder. Varsayılan olarak, bu segment Microsoft tarafından sağlanan bir TLS/SSL sertifikası kullanılarak güvenli hale getirilir.

Segment 4: Uygulamadan uygulamaya iletişimin güvenliğini sağlama

Sonraki segment (diyagramdaki segment 4), Azure Spring Apps'te bir uygulamayla başka bir uygulama arasındaki iletişimi temsil eder. Çağıran uygulamasını HTTPS özellikli bir uygulama tarafından sağlanan TLS/SSL sertifikasına güvenecek şekilde yapılandırmak için Azure Key Vault Sertifikaları Spring Boot Starter'ı kullanabilirsiniz. Alıcı Spring Boot uygulaması HTTPS'yi etkinleştirmek için Spring yaklaşımını kullanabilir veya uygulama Azure Key Vault Sertifikaları Spring Boot Starter'ı kullanarak iletişimin güvenliğini sağlayabilir. Daha fazla bilgi için bkz . Öğretici: Azure Key Vault sertifikalarını kullanarak Spring Boot uygulamalarının güvenliğini sağlama.

Segment 5: Uygulamanın dış sistem iletişimlerinin güvenliğini sağlama

Sonraki segment (diyagramdaki 5. segment), Azure Spring Apps'te çalışan bir uygulama ile dış sistemler arasındaki iletişimi temsil eder. Azure Spring Apps'te çalışan uygulamayı herhangi bir dış sistem tarafından sağlanan TLS/SSL sertifikasına güvenecek şekilde yapılandırmak için Azure Key Vault Sertifikaları Spring Boot Starter'ı kullanabilirsiniz. Daha fazla bilgi için bkz . Öğretici: Azure Key Vault sertifikalarını kullanarak Spring Boot uygulamalarının güvenliğini sağlama.

TlS/SSL sertifikalarını Key Vault'tan bir uygulamaya örtük olarak yükleme

Spring kodunuz, Java kodunuz veya OpenSSL gibi açık kaynak kitaplıklarınız JVM'nin güven deposuna sertifikaları örtük olarak yüklemek için JVM varsayılan JCA zincirini kullanıyorsa, TLS/SSL sertifikalarınızı Key Vault'tan Azure Spring Apps'e aktarabilir ve bu sertifikaları uygulama içinde kullanabilirsiniz. Daha fazla bilgi için bkz . Azure Spring Apps'te uygulamanızda TLS/SSL sertifikalarını kullanma.

Arka uç sistemleri için iyi bilinen genel TLS/SSL sertifikalarını karşıya yükleme

Bir uygulamanın buluttaki veya şirket içi sistemlerdeki arka uç hizmetleriyle iletişim kurması için, iletişimin güvenliğini sağlamak için genel TLS/SSL sertifikaları kullanılması gerekebilir. Giden iletişimlerin güvenliğini sağlamak için bu TLS/SSL sertifikalarını karşıya yükleyebilirsiniz. Daha fazla bilgi için bkz . Azure Spring Apps'te uygulamanızda TLS/SSL sertifikalarını kullanma.

İletişimlerin güvenliğini sağlamak için sağlamayı ve yapılandırmayı otomatikleştirme

ARM Şablonu, Bicep veya Terraform kullanarak, iletişimlerin güvenliğini sağlamak için yukarıda belirtilen tüm Azure kaynaklarının sağlanmasını ve yapılandırmasını otomatikleştirebilirsiniz.

Çözümlerinizi oluşturma ve güvenli iletişim kurma

Azure Spring Apps, Spring Boot uygulamaları için tam olarak yönetilen bir hizmettir. Azure Spring Apps, altyapının karmaşıklığını ve Spring Cloud ara yazılım yönetimini kullanıcılardan soyutlar. İş mantığınızı oluşturmaya odaklanabilir ve Azure'ın dinamik ölçeklendirme, düzeltme ekleri, güvenlik, uyumluluk ve yüksek kullanılabilirlik ile ilgilenmesini sağlayabilirsiniz. Birkaç adımda Azure Spring Apps sağlayabilir, uygulama oluşturabilir, Spring Boot uygulamalarını dağıtabilir ve ölçeklendirin ve iletişimlerin güvenliğini dakikalar içinde sağlamaya başlayabilirsiniz.

Azure Spring Apps, Microsoft ve VMware tarafından birlikte derlenir, çalıştırılır ve desteklenir.

Sonraki adımlar