Bu temel mimari, Temel web uygulaması mimarisini temel alır ve Azure'da güvenli, alanlar arası yedekli ve yüksek oranda kullanılabilir bir web uygulaması tasarlamaya yönelik ayrıntılı yönergeler sağlayacak şekilde genişletir. Mimari, Web Uygulaması Güvenlik Duvarı ile Azure Uygulaması lication Gateway aracılığıyla genel uç noktayı kullanıma sunar. İstekleri Özel Bağlantı aracılığıyla Azure Uygulaması Hizmetine yönlendirir. App Service uygulaması, Azure Key Vault ve Azure SQL Veritabanı gibi Azure PaaS hizmetleriyle güvenli bir şekilde iletişim kurmak için sanal ağ tümleştirmesi ve Özel Bağlantı kullanır.
Önemli
Kılavuz, Azure'da temel App Service uygulamasını gösteren örnek bir uygulama tarafından desteklenmiştir. Bu uygulama, üretime yönelik ilk adımınızda daha fazla çözüm geliştirme için temel olarak kullanılabilir.
Mimari
Şekil 1: Temel Azure Uygulaması Hizmet mimarisi
Bu mimarinin bir Visio dosyasını indirin.
Bileşenler
Bu mimarinin birçok bileşeni, temel web uygulaması mimarisiyle aynıdır. Aşağıdaki listede yalnızca temel mimarideki değişiklikler vurgulanır.
- Application Gateway bir katman 7 (HTTP/S) yük dengeleyici ve web trafiği yöneticisidir. Gelen trafiği kullanılabilirlik alanları arasında dağıtmak için URL yol tabanlı yönlendirmeyi kullanır ve uygulama performansını geliştirmek için şifrelemeyi boşaltılır.
- Web Uygulaması Güvenlik Duvarı (WAF), web uygulamalarını SQL ekleme ve siteler arası betik oluşturma gibi yaygın açıklardan koruma sağlayan buluta özel bir hizmettir. WAF, web uygulamanıza gelen ve gelen trafikte görünürlük sağlayarak uygulamanızı izlemenize ve güvenliğini sağlamanıza olanak tanır.
- Azure Key Vault gizli dizileri, şifreleme anahtarlarını ve sertifikaları güvenli bir şekilde depolayan ve yöneten bir hizmettir. Hassas bilgilerin yönetimini merkezileştirir.
- Azure Sanal Ağ, Azure'da yalıtılmış ve güvenli özel sanal ağlar oluşturmanıza olanak tanıyan bir hizmettir. App Service'te bir web uygulaması için, kaynaklar arasında ağ güvenli iletişim için özel uç noktaları kullanmak üzere bir sanal ağ alt ağına ihtiyacınız vardır.
- Özel Bağlantı, istemcilerin genel IP adresi kullanmadan doğrudan özel sanal ağlardan Azure hizmet olarak platform (PaaS) hizmetlerine erişmesini mümkün kılar.
- Azure DNS , Microsoft Azure altyapısını kullanarak ad çözümlemesi sağlayan DNS etki alanları için bir barındırma hizmetidir. Özel DNS bölgeleri, bir hizmetin tam etki alanı adını (FQDN) özel uç noktanın IP adresiyle eşlemek için bir yol sağlar.
Ağ
Ağ güvenliği, App Services temel mimarisinin temelini oluşturur (bkz. Şekil 2). Ağ mimarisi yüksek düzeyden aşağıdakileri sağlar:
- İstemci trafiği için tek bir güvenli giriş noktası
- Ağ trafiği filtrelendi
- Aktarımdaki veriler TLS ile uçtan uca şifrelenir
- Özel Bağlantı kullanarak Azure'da trafik tutularak veri sızdırma en aza indirilir
- Ağ kaynakları mantıksal olarak gruplandırılır ve ağ segmentasyonu aracılığıyla birbirinden yalıtılır
Ağ akışları
Şekil 2: Temel Azure Uygulaması Hizmeti uygulamasının ağ mimarisi
Aşağıda, İnternet trafiğinin App Service örneğine gelen akışının ve App Service'ten Azure hizmetlerine giden akışın açıklamaları yer alır.
Gelen akış
- Kullanıcı, Application Gateway genel IP'sine bir istekte bulunur.
- WAF kuralları değerlendirilir. WAF kuralları, siteler arası betik (XSS) ve SQL ekleme gibi çeşitli saldırılara karşı koruma sağlayarak sistemin güvenilirliğini olumlu yönde etkiler. Azure Uygulaması lication Gateway, bir WAF kuralı ihlal edilirse ve işleme durdurulursa istekte bulunana bir hata döndürür. Hiçbir WAF kuralı ihlal edilmezse, Application Gateway isteği arka uç havuzuna yönlendirir ve bu durumda App Service varsayılan etki alanıdır.
- Özel DNS bölgesi
privatelink.azurewebsites.net
sanal ağa bağlıdır. DNS bölgesi, App Service varsayılan etki alanını App Service özel uç noktasının özel IP adresiyle eşleyen bir A kaydına sahiptir. Bu bağlantılı özel DNS bölgesi, Azure DNS'nin varsayılan etki alanını özel uç nokta IP adresine çözümlemesine olanak tanır. - İstek, özel uç nokta üzerinden bir App Service örneğine yönlendirilir.
App Service'in Azure PaaS hizmet akışı
- App Service, gerekli Azure hizmetinin DNS adına bir istekte bulunur. İstek bir gizli dizi almak için Azure Key Vault'a, yayımlama zip dosyası almak için Azure Depolama'ya, Azure SQL Veritabanı veya Özel Bağlantı destekleyen başka bir Azure hizmetine olabilir. App Service sanal ağ tümleştirme özelliği, isteği sanal ağ üzerinden yönlendirir.
- Gelen akıştaki 3. adım gibi, bağlantılı özel DNS bölgesinde de Azure hizmetinin etki alanını özel uç noktanın özel IP adresine eşleyen bir A kaydı vardır. Bu bağlantılı özel DNS bölgesi, Azure DNS'nin etki alanını hizmetin özel uç nokta IP adresine çözümlemesine olanak tanır.
- İstek, özel uç nokta üzerinden hizmete yönlendirilir.
Uygulama Hizmetlerine Giriş
Application Gateway, bu temel mimarinin gereksinimlerini karşılayan bölgesel bir kaynaktır. Application Gateway, web uygulaması güvenlik duvarı ve TLS boşaltma gibi özellikleri destekleyen ölçeklenebilir, bölgesel, katman 7 yük dengeleyicidir. Azure Uygulaması Hizmetlerine giriş için Application Gateway'i uygularken aşağıdaki noktaları göz önünde bulundurun.
- Application Gateway'i dağıtın ve Microsoft tarafından yönetilen bir kural kümesiyle waf ilkesi yapılandırın. Bir kaynak hizmetin (mimaride App Service) kullanılamaz duruma gelmesine neden olabilecek web saldırılarını azaltmak için Önleme modunu kullanın.
- Uçtan uca TLS şifrelemesi uygulayın.
- App Service'inize gelen özel erişimi uygulamak için özel uç noktaları kullanın.
- Application Gateway'in dinamik trafik akışlarına kolayca uyum sağlamak için otomatik ölçeklendirmeyi uygulamayı göz önünde bulundurun.
- En az üç ölçek örneği sayısını kullanmayı ve bölgenizin desteklediği tüm kullanılabilirlik alanlarını her zaman kullanmayı göz önünde bulundurun. Application Gateway, tek bir ölçek örneği için bile yüksek oranda kullanılabilir bir şekilde dağıtılırken, hata durumunda yeni bir örnek oluşturmak yedi dakikaya kadar sürebilir. Kullanılabilirlik Alanları arasında birden çok örnek dağıtmak, bir hata oluştuğunda yeni bir örnek oluşturulurken bir örneğin çalıştığından emin olmaya yardımcı olur.
- Ağ yalıtımını sağlamak için App Service'te genel ağ erişimini devre dışı bırakın. Bicep'te bu, properties/siteConfig altında ayarlanarak
publicNetworkAccess: 'Disabled'
gerçekleştirilir.
App Services'ten Azure hizmetlerine akış
Bu mimari, app service için sanal ağ tümleştirmesini kullanır ve özellikle trafiği sanal ağ üzerinden özel uç noktalara yönlendirmek için kullanır. Temel mimari, tüm trafiğin sanal ağ üzerinden giden trafiği zorlamasını sağlamaz; yalnızca özel uç noktalar için giden trafik gibi iç trafiktir.
Genel İnternet'ten erişim gerektirmeyen Azure hizmetlerinde özel uç noktaların ve genel uç noktaların devre dışı bırakılması gerekir. Özel uç noktalar, App Service'inizin genel IP adresi kullanmadan doğrudan özel sanal ağınızdan Özel Bağlantı hizmetlere bağlanmasına izin vererek güvenliği geliştirmek için bu mimari boyunca kullanılır.
Bu mimaride Azure SQL Veritabanı, Azure Depolama ve Key Vault'ta genel uç noktaların tümü devre dışı bırakılmıştır. Azure hizmeti güvenlik duvarları yalnızca diğer yetkili Azure hizmetlerinden gelen trafiğe izin vermek için kullanılır. Azure Cosmos DB ve Azure Redis Cache gibi özel uç noktalarla diğer Azure hizmetlerini yapılandırmanız gerekir. Bu mimaride Azure İzleyici özel uç nokta kullanmaz, ancak kullanabilir.
Temel mimari, her hizmet için özel bir DNS bölgesi uygular. Özel DNS bölgesi, hizmetin tam etki alanı adı ile özel uç nokta özel IP adresi arasında eşlenen bir A kaydı içerir. Bölgeler sanal ağa bağlıdır. Özel DNS bölge grupları, özel bağlantı DNS kayıtlarının otomatik olarak oluşturulduğunu ve güncelleştirildiğinden emin olun.
Sanal ağ tümleştirmesi ve özel uç noktaları uygularken aşağıdaki noktaları göz önünde bulundurun.
- Özel DNS bölgelerini adlandırmak için Azure hizmetleri DNS bölgesi yapılandırma kılavuzunu kullanın.
- Depolama hesabı, anahtar kasası, SQL Veritabanı ve diğer Azure hizmetlerinin yalnızca özel olarak bağlanabildiğinden emin olmak için hizmet güvenlik duvarlarını yapılandırın.
- Depolama hesabı varsayılan ağ erişim kuralını tüm trafiği reddedecek şekilde ayarlayın.
- Özel Bağlantı için Key Vault'un etkinleştirilmesi.
- Azure SQL'e genel ağ erişimini reddedin.
Sanal ağ segmentasyonu ve güvenliği
Bu mimarideki ağ Application Gateway, App Service tümleştirme bileşenleri ve özel uç noktalar için ayrı alt ağlara sahiptir. Her alt ağın, bu alt ağlara yönelik hem gelen hem de giden trafiği yalnızca gerekli olanla sınırlayan bir ağ güvenlik grubu vardır. Aşağıdaki tabloda, temelin her alt ağa eklediği NSG kurallarının basitleştirilmiş bir görünümü gösterilmektedir. Tablo kural adını ve işlevini verir.
Alt ağ | Gelen | Giden |
---|---|---|
snet-AppGateway | AppGw.In.Allow.ControlPlane : Gelen denetim düzlemi erişimine izin verAppGw.In.Allow443.Internet : Gelen internet HTTPS erişimine izin ver |
AppGw.Out.Allow.AppServices : AppServicesSubnet'e giden erişime izin verAppGw.Out.Allow.PrivateEndpoints : PrivateEndpointsSubnet'e giden erişime izin verAppPlan.Out.Allow.AzureMonitor : Azure İzleyici'ye giden erişime izin ver |
snet-PrivateEndpoints | Varsayılan kurallar: Sanal ağdan gelenlere izin ver | Varsayılan kurallar: Sanal ağa giden ağa izin ver |
snet-AppService | Varsayılan kurallar: Sanal ağdan gelenlere izin ver | AppPlan.Out.Allow.PrivateEndpoints : PrivateEndpointsSubnet'e giden erişime izin verAppPlan.Out.Allow.AzureMonitor : Azure İzleyici'ye giden erişime izin ver |
Sanal ağ segmentasyonu ve güvenliği uygularken aşağıdaki noktaları göz önünde bulundurun.
- Genel IP'ye sahip bir uygulama ağ geçidinin parçası olan bir alt ağ ile sanal ağ için DDoS korumasını etkinleştirin.
- Mümkün olduğunda her alt ağa bir NSG ekleyin. Tam çözüm işlevselliğini etkinleştiren en katı kuralları kullanmanız gerekir.
- Uygulama güvenlik gruplarını kullanın. Uygulama güvenlik grupları NSG'leri gruplandırmanıza olanak tanıyarak karmaşık ortamlar için kural oluşturmayı kolaylaştırır.
Sanal alt ağ şemasına örnek olarak aşağıdakiler gösterilebilir:
Tür | Veri Akışı Adı | Adres Aralığı |
---|---|---|
Sanal Ağ | Adres Ön Eki | 10.0.0.0/16 |
Alt ağ | GatewaySubnet | 10.0.1.0/24 |
Alt ağ | AppServicesSubnet | 10.0.0.0/24 |
Alt ağ | PrivateEndpointsSubnet | 10.0.2.0/27 |
Alt ağ | AgentsSubject | 10.0.2.32/27 |
Azure-Samples\app-service-baseline-implementation başvurusu
Dikkat edilmesi gereken noktalar
Bu önemli noktalar, bir iş yükünün kalitesini artırmak için kullanılabilecek bir dizi yol gösteren ilke olan Azure İyi Tasarlanmış Çerçeve'nin yapı taşlarını uygular. Daha fazla bilgi için bkz . Microsoft Azure İyi Tasarlanmış Çerçeve.
Güvenilirlik
Güvenilirlik, uygulamanızın müşterilerinize sağladığınız taahhütleri karşılayabilmesini sağlar. Daha fazla bilgi için bkz . Güvenilirlik sütununa genel bakış.
Temel Uygulama Hizmetleri mimarisi, önemli bölgesel hizmetler için bölgesel yedekliliğe odaklanır. Kullanılabilirlik alanları, bir bölge içinde fiziksel olarak ayrı konumlardır. İki veya daha fazla örnek destekleyici bölgelere dağıtıldığında destek hizmetleri için bölgesel yedeklilik sağlar. Bir bölge kapalı kalma süresiyle karşılaştığında, diğer bölgeler hala etkilenmeyebilir.
Mimari ayrıca talebi karşılamak için yeterli Sayıda Azure hizmeti örneği sağlar. Aşağıdaki bölümler, mimarideki önemli hizmetler için güvenilirlik kılavuzu sağlar. Bu şekilde, kullanılabilirlik alanları yüksek kullanılabilirlik ve hataya dayanıklılık sağlayarak güvenilirlik elde etme konusunda size yardımcı olur.
Application Gateway
Azure Uygulaması lication Gateway v2'yi alanlar arası yedekli bir yapılandırmaya dağıtın. Hata olması durumunda Application Gateway örneğinin altı ile yedi dakikalık başlangıç süresini önlemek için en az üç ölçek örneği sayısını kullanmayı göz önünde bulundurun.
Uygulama Hizmetleri
- Kullanılabilirlik Alanı desteğiyle en az üç Uygulama Hizmeti örneği dağıtın.
- Uygulamalarınızda sistem durumu denetimi uç noktalarını uygulayın ve app Hizmet durumu denetimi özelliğini yapılandırarak istekleri iyi durumda olmayan örneklerden uzaklaştırın. App Service Sistem Durumu denetimi hakkında daha fazla bilgi için bkz . Sistem durumu denetimini kullanarak App Service örneklerini izleme. ASP.NET uygulamalarında sistem durumu denetimi uç noktalarını uygulama hakkında daha fazla bilgi için bkz . ASP.NET Core'da sistem durumu denetimleri.
- Bölge hatalarını işleyebilmek için kapasiteyi fazla sağlama.
SQL Veritabanı
- Alanlar arası yedeklilik etkinken Azure SQL DB Genel Amaçlı, Premium veya İş Açısından Kritik dağıtın. Genel Amaçlı, Premium ve İş Açısından Kritik katmanları Azure SQL DB'de Alanlar arası yedekliliği destekler.
- SQL DB yedeklemelerini alanlar arası yedekli depolama (ZRS) veya coğrafi alanlar arası yedekli depolama (GZRS) kullanacak şekilde yapılandırın.
Blob depolama
- Azure Alanlar Arası Yedekli Depolama (ZRS), verilerinizi bölgedeki üç kullanılabilirlik alanında zaman uyumlu olarak çoğaltır. Verilerin kullanılabilirlik alanları arasında çoğaltılmasını sağlamak için Standart ZRS veya Standart GZRS depolama hesapları oluşturun.
- Hesapları ayrı ayrı yönetebilmeniz ve yapılandırabilmeniz için dağıtımlar, web varlıkları ve diğer veriler için ayrı depolama hesapları oluşturun.
Performans verimliliği
Performans verimliliği, kullanıcılar tarafından anlamlı bir şekilde yerleştirilen talepleri karşılamak amacıyla iş yükünüzü ölçeklendirme becerisidir. Daha fazla bilgi için bkz . Performans verimliliği sütununa genel bakış.
Aşağıdaki bölümlerde bu mimarideki önemli bileşenler için ölçeklenebilirlik açıklanmıştır.
Application Gateway
- Application Gateway'in ölçeğini daraltmak veya talebi karşılamak üzere genişletmek için otomatik ölçeklendirme uygulayın.
- En yüksek örnek sayısını beklenenden daha yüksek bir sayıya ayarlayın. Yalnızca kullandığınız Kapasite Birimleri için ücretlendirilirsiniz.
- Trafikteki küçük ani artışları işleyebilen en düşük örnek sayısını ayarlayın. Minimum örnek sayınızı hesaplamak için ortalama İşlem Birimi kullanımını kullanabilirsiniz.
- Application Gateway alt akını boyutlandırma yönergelerini izleyin.
App Service
- Yüksek kullanılabilirlik için üç veya daha fazla çalışan örneğiyle Standart veya daha yüksek planları kullanın.
- Talebi karşılamak için ölçeği artırıp azaltabileceğinizden emin olmak için Otomatik Ölçeklendirme'yi etkinleştirin.
- App Service'iniz sürekli olarak maksimum örnek sayısının yarısını kullanıyorsa en fazla çalışan sayısını örnek sayısının iki katına çıkarabilmek için bir destek bileti açmayı göz önünde bulundurun. Maksimum örnek sayısı, Premium App Service planı için varsayılan olarak 30'a ve Standart plan için 10'a kadardır.
- App Service'iniz üst sınırlara erişmeye başladığında uygulamanın birden çok damgasını dağıtmayı göz önünde bulundurun.
- İş yükü gereksinimlerinizi karşılayan doğru Azure Uygulaması Hizmet planını seçin.
- Statik içerik sunmak için Azure CDN'yi Azure Uygulaması Hizmetine ekleyin.
- Gürültülü komşular bir sorunsa App Service Ortamı düşünün.
SQL Server
Veritabanı kaynaklarını ölçeklendirme, bu mimarinin kapsamı dışında karmaşık bir konudur. Veritabanınızı ölçeklendirirken aşağıdaki kaynakları göz önünde bulundurun,
- Veritabanı kaynaklarını en düşük kapalı kalma süresiyle dinamik olarak ölçeklendirme
- Azure SQL Veritabanı ile ölçek genişletme
- Salt okunur sorgu iş yüklerini boşaltmak için salt okunur çoğaltmaları kullanma
Diğer ölçeklenebilirlik kılavuzu
- Hizmetlerin talebe göre ölçeklendirildiğinden emin olmak için abonelik sınırlarını ve kotalarını gözden geçirin.
- Performansı ve ölçeklenebilirliği artırmak için aşağıdaki veri türlerini önbelleğe almayı göz önünde bulundurun:
- Yarı statik işlem verileri.
- Oturum durumu.
- HTML çıkışı. Bu karmaşık HTML çıkışı işleyen uygulamalarda yararlı olabilir.
Güvenlik
Temel App Service mimarisi, web uygulamanız için temel güvenlik önerilerine odaklanır. Şifreleme ve kimliğin her katmanda nasıl çalıştığını anlamak, iş yükünüzün güvenliğini sağlamak için kritik öneme sahiptir.
App Service
- FTP ve SCM site dağıtımları için yerel kimlik doğrulama yöntemlerini devre dışı bırakma
- Uzaktan hata ayıklamayı kapatın.
- En son TLS sürümünü kullanın.
- App Service için Microsoft Defender'u etkinleştirin.
- Desteklenen platformların, programlama dillerinin, protokollerin ve çerçevelerin en son sürümlerini kullanın.
- Daha yüksek yalıtım veya güvenli ağ erişimine ihtiyacınız varsa App Service Ortamı düşünün.
Şifreleme
Üretim web uygulamasının HTTPS kullanarak aktarımdaki verileri şifrelemesi gerekir. HTTPS protokolü Aktarım Katmanı Güvenliği'ne (TLS) dayanır ve şifreleme için genel ve özel anahtarları kullanır. Key Vault'ta bir sertifika (X.509) depolamalı ve Application Gateway'in özel anahtarı almasına izin vermelisiniz. Bekleyen veriler için bazı hizmetler verileri otomatik olarak şifreler ve diğerleri özelleştirmenize olanak sağlar.
Aktarım durumundaki veriler
Temel mimaride, aktarımdaki veriler kullanıcıdan App Service'teki web uygulamasına şifrelenir. Aşağıdaki iş akışında şifrelemenin yüksek düzeyde nasıl çalıştığı açıklanmaktadır.
- Kullanıcı web uygulamasına bir HTTPS isteği gönderir.
- HTTPS isteği uygulama ağ geçidine ulaşır.
- Uygulama ağ geçidi, kullanıcının web tarayıcısıyla güvenli bir TLS bağlantısı oluşturmak için Key Vault'ta bir sertifika (X.509) kullanır. Uygulama ağ geçidi, web uygulaması güvenlik duvarının denetleyebilmesi için HTTPS isteğinin şifresini çözer.
- Uygulama ağ geçidi, kullanıcı isteğini yeniden şifrelemek için App Service ile bir TLS bağlantısı oluşturur. App Service, HTTPS için yerel destek sağladığı için App Service'e sertifika eklemeniz gerekmez. Uygulama ağ geçidi şifrelenmiş trafiği App Service'e gönderir. App Service trafiğin şifresini çözer ve web uygulaması isteği işler.
Aktarımdaki veri şifrelemesini yapılandırırken aşağıdaki önerileri göz önünde bulundurun.
- Sertifikanızı oluşturun veya Key Vault'a yükleyin. HTTPS şifrelemesi bir sertifika (X.509) gerektirir. Özel etki alanınız için güvenilen bir sertifika yetkilisinden bir sertifikaya ihtiyacınız vardır.
- Sertifikanın özel anahtarını Key Vault'ta depolayın.
- Application Gateway'in sertifika özel anahtarına erişim sağlaması için Azure kaynakları için Azure RBAC ve Yönetilen kimlikleri kullanarak uygulamalara Azure anahtar kasasına erişim izni verme makalesindeki yönergeleri izleyin. Erişim sağlamak için Key Vault erişim ilkelerini kullanmayın. Erişim ilkeleri yalnızca belirli değerlere değil, geniş izinler vermenizi sağlar.
- Uçtan uca şifrelemeyi etkinleştirin. App Service, uygulama ağ geçidinin arka uç havuzudur. Arka uç havuzu için arka uç ayarını yapılandırdığınızda, arka uç bağlantı noktası 443 üzerinden HTTPS protokolunu kullanın.
Bekleme durumundaki veriler
- Saydam veri şifrelemesi kullanarak Azure SQL Veritabanı hassas verileri şifreleyin. Saydam veriler tüm veritabanını, yedeklemeleri ve işlem günlüğü dosyalarını şifreler ve web uygulamanızda değişiklik gerektirmez.
- Veritabanı şifreleme gecikme süresini en aza indirin. Şifreleme gecikme süresini en aza indirmek için, güvenli hale getirmek için ihtiyacınız olan verileri kendi veritabanına yerleştirin ve yalnızca bu veritabanı için şifrelemeyi etkinleştirin.
- Yerleşik şifreleme desteğini anlama. Azure Depolama, bekleyen verileri sunucu tarafı şifreleme (256 bit AES) kullanarak otomatik olarak şifreler . Azure İzleyici, Microsoft tarafından yönetilen anahtarları (MMK) kullanarak bekleyen verileri otomatik olarak şifreler.
Kimlik ve Erişim Yönetimi
App Service temeli, kullanıcı kimlikleri (kullanıcılar) ve iş yükü kimlikleri (Azure kaynakları) için kimlik doğrulaması ve yetkilendirmeyi yapılandırarak en az ayrıcalık ilkesini uygular.
Kullanıcı kimlikleri
- App Service ("EasyAuth") için tümleşik kimlik doğrulama mekanizmasını kullanın. EasyAuth, kimlik sağlayıcılarını web uygulamanıza tümleştirme işlemini basitleştirir. Web uygulamanızın dışında kimlik doğrulamasını işler, bu nedenle önemli kod değişiklikleri yapmanız gerekmez.
- Özel etki alanı için yanıt URL'sini yapılandırın. Web uygulamasını adresine
https://<application-gateway-endpoint>/.auth/login/<provider>/callback
yeniden yönlendirmeniz gerekir. değerini genel IP adresi veya uygulama ağ geçidinizle ilişkilendirilmiş özel etki alanı adıyla değiştirin<application-gateway-endpoint>
. yerine kullandığınız kimlik doğrulama sağlayıcısını (microsoft Entra id için "aad" gibi) yazın<provider>
. Bu akışı Application Gateway ile ayarlamak veya Application Gateway'i ayarlamak için Azure Front belgelerini kullanabilirsiniz.
İş yükü kimlikleri
- İş yükü kimlikleri için yönetilen kimlik kullanın. Yönetilen kimlik, geliştiricilerin kimlik doğrulama kimlik bilgilerini yönetme gereksinimini ortadan kaldırır.
- Kullanıcı tarafından atanan yönetilen kimlikleri kullanın. Sistem tarafından atanan kimlik, kod olarak altyapı dağıtımlarının yarış koşullarına ve işlem sırasına göre başarısız olmasına neden olabilir. Bu dağıtım hata senaryolarından bazılarını önlemek için kullanıcı tarafından atanan yönetilen kimlikleri kullanabilirsiniz. Daha fazla bilgi için bkz. Yönetilen kimlikler.
Operasyonel mükemmellik
Operasyonel mükemmellik, bir uygulamayı dağıtan ve üretimde çalışır durumda tutan operasyon süreçlerini kapsar. Daha fazla bilgi için bkz . Operasyonel mükemmellik sütununa genel bakış.
Temel App Service uygulaması için dağıtım, Azure Pipelines ile Azure Web Apps için CI/CD yönergelerini izler. Bu rehberliğe ek olarak, App Services temel mimarisi uygulamanın ve dağıtım depolama hesabının ağ güvenliğinin sağlandığını dikkate alır. Mimari, App Service'e genel erişimi reddeder. Bu, sanal ağın dışından dağıtım yapamazsınız anlamına gelir. Temel, şirket içinde barındırılan dağıtım aracılarını kullanarak uygulama kodunu sanal ağ içinde nasıl dağıtabileceğinizi gösterir. Aşağıdaki dağıtım kılavuzu, uygulama kodunu dağıtmaya ve altyapı veya veritabanı değişikliklerini dağıtmamaya odaklanır.
Şekil 3: Azure Uygulaması Hizmeti uygulamalarını dağıtma
Dağıtım akışı
Yayın işlem hattının bir parçası olarak işlem hattı, iş kuyruğundaki şirket içinde barındırılan aracılar için bir iş isteği gönderir. İş isteği, aracının yayımlama zip dosyası derleme yapıtını bir Azure Depolama Hesabına yüklemesini sağlar.
Şirket içinde barındırılan dağıtım aracısı, yoklama yoluyla yeni iş isteğini alır. İşi ve derleme yapıtını indirir.
Şirket içinde barındırılan dağıtım aracısı, depolama hesabının özel uç noktası aracılığıyla zip dosyasını depolama hesabına yükler.
İşlem hattı devam eder ve yönetilen aracı sonraki bir işi alır. Yönetilen aracı , appSetting WEBSITE_RUN_FROM_PACKAGE hazırlama yuvası için yeni yayımlama zip dosyasının adına güncelleştirmek için bir CLI çağrısı yapar.
az webapp config appsettings set -g MyResourceGroupName -n MyUniqueApp --slot staging --settings WEBSITE_RUN_FROM_PACKAGE=UriToNewZip
Azure Uygulaması Hizmeti, depolama hesabı özel uç noktası aracılığıyla yeni yayımlama zip dosyasını depolama alanından çeker. WEBSITE_RUN_FROM_PACKAGE farklı bir dosya adına ayarlandığından hazırlama örneği yeni paketle yeniden başlatılır.
İşlem hattı devam eder ve tüm duman testlerini çalıştırır veya onay bekler. Testler geçer veya onay verilirse işlem hattı hazırlama ve üretim yuvalarını değiştirir.
Dağıtım kılavuzu
Aşağıda, temel mimari için temel dağıtım kılavuzu vurgulanır.
- Dağıtım çakışmalarını önlemek için paketten çalıştırmayı kullanın. Uygulamanızı doğrudan Azure Uygulaması Hizmeti'ndeki bir paketten çalıştırdığınızda, paketteki dosyalar wwwroot dizinine kopyalanmamıştır. Bunun yerine, ZIP paketinin kendisi doğrudan salt okunur wwwroot dizini olarak bağlanır. Bu, dağıtım ve çalışma zamanı arasındaki dosya kilidi çakışmalarını ortadan kaldırır ve yalnızca tam olarak dağıtılan uygulamaların herhangi bir zamanda çalışmasını sağlar
- Dağıtılan paket zip dosyalarına sürüm numaralarını ekleyin. AppSetting'in
WEBSITE_RUN_FROM_PACKAGE
farklı bir dosya adıyla dağıtım paketine güncelleştirilmesi, App Services'in yeni sürümü otomatik olarak almasına ve hizmeti yeniden başlatmasına neden olur. - Dayanıklı kod dağıtımları için Dağıtım yuvalarını kullanın.
- Yönetilen ve şirket içinde barındırılan aracıların bir karışımını kullanmayı düşünün.
- Kod Olarak Altyapı (IaC) ile altyapı dağıtımlarını otomatikleştirin.
- Azure Load Testing ve Azure Chaos Studio gibi hizmetleri kullanarak çözümün tamamının performansını ve dayanıklılığını test etmek için iş yükünü sürekli doğrulayın.
Yapılandırma
Uygulamalar hem yapılandırma değerleri hem de gizli diziler gerektirir. Yapılandırma ve gizli dizi yönetimi için aşağıdaki kılavuzu kullanın.
- Parolalar veya erişim anahtarları gibi gizli dizileri asla kaynak denetimine denetlemeyin.
- Gizli dizileri depolamak için Azure Key Vault'ı kullanın.
- Uygulama yapılandırmanız için App Service yapılandırmasını kullanın. Yapılandırmayı uygulama yapılandırmanızdan dışlaştırmanız veya özellik bayrağı desteğine ihtiyacınız varsa Azure Uygulaması Yapılandırma'yı kullanmayı göz önünde bulundurun.
- Uygulamanızda gizli dizileri güvenli bir şekilde kullanıma açmak için App Service yapılandırmasında Key Vault başvurularını kullanın.
- Bir yuvaya bağlı olan ve farklı üretim ve hazırlama ayarlarına ihtiyacınız varsa değiştirilmeyen uygulama ayarları oluşturun. Bir dağıtım yuvasını değiştirdiğinizde, uygulama ayarları varsayılan olarak değiştirilir.
- Yerel geliştirme için yerel ortam değişkenlerini ayarlayın veya uygulama platformu özelliklerinden yararlanın. App Services yapılandırması, uygulama ayarlarını ortam değişkenleri olarak kullanıma sunar. Örneğin Visual Studio, başlatma profillerinde ortam değişkenlerini ayarlamanıza olanak tanır. Ayrıca yerel uygulama ayarlarını ve gizli dizilerini depolamak için Uygulama Ayarları'nı ve kullanıcı gizli dizilerini kullanmanıza da olanak tanır.
İzleme
İzleme, BT sistemlerinden verilerin toplanması ve analiz edilmesidir. İzlemenin amacı, web uygulamasının durumunu ve güvenliğini izlemek için birden çok katmanda gözlemlenebilirliktir. Gözlemlenebilirlik, temel App Service mimarisinin temel modellerinden biridir.
Web uygulamanızı izlemek için uygulama kodunuz, altyapınız (çalışma zamanı) ve platformdan (Azure kaynakları) ölçümleri ve günlükleri toplamanız ve analiz etmeniz gerekir. Daha fazla bilgi için bkz . Azure etkinlik günlüğü, Azure kaynak günlükleri ve uygulama günlükleri.
Platformu izleme
Platform izleme, mimarinizdeki Azure hizmetlerinden veri toplama işlemidir. Platform izleme ile ilgili aşağıdaki yönergeleri göz önünde bulundurun.
Her Azure kaynağı için bir tanılama ayarı ekleyin. Her Azure hizmetinin yakalayabileceğiniz farklı bir günlük ve ölçüm kümesi vardır. Toplamak istediğiniz ölçümleri ve günlükleri bulmak için aşağıdaki tabloyu kullanın.
Azure kaynağı Ölçümler ve günlük açıklamaları Application Gateway Application Gateway ölçümleri ve günlük açıklamaları Web Uygulaması Güvenlik Duvarı Web uygulaması güvenlik duvarı ölçümleri ve günlük açıklamaları App Service App Service ölçümleri ve günlük açıklamaları Azure SQL Veritabanı Azure SQL Veritabanı ölçümler ve günlükler açıklaması Cosmos DB Azure Cosmos DB ölçümleri ve günlük açıklamaları Key Vault Key Vault ölçümleri ve günlük açıklamaları Blob Depolama Ölçümleri ve günlük açıklamalarını Azure Blob Depolama Application Insights Application Insights ölçümleri ve günlük açıklamaları Genel IP adresi Genel IP adresi ölçümleri ve günlük açıklamaları Ölçümleri ve günlükleri toplamanın maliyetini anlama. Genel olarak, ne kadar çok ölçüm ve günlük toplarsanız, o kadar fazla maliyete mal olur. Daha fazla bilgi için bkz . Log Analytics maliyet hesaplamaları ve seçenekleri ile Log Analytics çalışma alanı fiyatlandırması.
Uyarı oluşturabilirsiniz. Mimarideki tüm Azure kaynakları için uyarılar oluşturmanız ve sorunları gidermek için Eylemler'i yapılandırmanız gerekir. Başlangıç yapmak ve zaman içinde gerektiği gibi değiştirmek için yaygın ve önerilen uyarı kurallarını seçin. Daha fazla bilgi için bkz.
Application Gateway
Application Gateway, arka uç havuzundaki kaynakların durumunu izler. Zaman damgası, HTTP yanıt kodu ve URL yolu gibi bilgileri toplamak için Application Gateway Erişim günlüklerini kullanın. Daha fazla bilgi için bkz . Application Gateway varsayılan sistem durumu yoklaması ve Arka uç sistem durumu ve tanılama günlükleri.
App Service
App Service,gelişmiş gözlemlenebilirlik için etkinleştirmeniz gereken yerleşik ve tümleşik izleme araçlarına sahiptir. Web uygulamanızın telemetri ve izleme özellikleri ("işlem içi izleme") zaten varsa App Service üzerinde çalışmaya devam etmelidir.
- Otomatik izleme özelliğini etkinleştirin. App Service'in kod değişikliği olmadan etkinleştirebileceğiniz bir izleme uzantısı vardır. Uygulama performansı izleme (APM) görünürlüğü elde edebilirsiniz. Daha fazla bilgi için bkz. Azure Uygulaması Hizmeti performansını izleme.
- Dağıtılmış izlemeyi etkinleştirin. Otomatik izleme, dağıtılmış izleme ve performans profili oluşturucu aracılığıyla dağıtılmış bulut sistemlerini izlemenin bir yolunu sunar.
- Özel telemetri için kod tabanlı izleme kullanın. Azure Uygulaması lication Insights, özel uygulama telemetrisi için kod tabanlı izlemeyi de destekler. Kodunuza Application Insights SDK'sını ekleyin ve Application Insights API'sini kullanın.
- App Service günlüklerini etkinleştirin. App Service platformu, sorun gidermeyi desteklemek için etkinleştirmeniz gereken dört ek günlüğü destekler. Bu günlükler uygulama günlükleri, web sunucusu günlükleri, ayrıntılı hata iletileri ve başarısız istek izlemedir.
- Yapılandırılmış günlüğe kaydetmeyi kullanın. Uygulama kodunuza yapılandırılmış günlük kitaplığı ekleyin. Kodunuzu anahtar-değer çiftlerini kullanacak şekilde güncelleştirin ve Bu günlükleri Log Analytics Çalışma Alanınızda depolamak için App Service'teki Uygulama günlüklerini etkinleştirin.
- App Service Sistem Durumu denetimini açın. Sistem durumu denetimi, istekleri iyi durumda olmayan örneklerden uzaklaştırır ve iyi durumda olmayan örneklerin yerini alır. App Service planınızın Sistem Durumu denetimlerinin çalışması için iki veya daha fazla örnek kullanması gerekir.
Veritabanı
- Kullanıcı veritabanı İçgörüleri. Azure SQL veritabanları için Azure İzleyici'de SQL Insights'ı yapılandırmanız gerekir. Veritabanı İçgörüleri, sistem durumunu izlemek, sorunları tanılamak ve performansı ayarlamak için ihtiyacınız olan verileri kullanıma açmak için dinamik yönetim görünümlerini kullanır. Daha fazla bilgi için bkz. Azure İzleyici ile izleme Azure SQL Veritabanı.
- Mimariniz Cosmos DB içeriyorsa Cosmos DB içgörülerini kullanmak için herhangi bir şeyi etkinleştirmeniz veya yapılandırmanız gerekmez.
İdare
Web uygulamaları, mimari ve güvenlik kararlarını zorunlu kılarak Azure İlkesi yararlanıyor. Azure İlkesi, (1) dağıtımını (reddetme) veya (2) tercih ettiğiniz durumdan gelen yapılandırma kayması algılamayı (denetleme) kolaylaştırabilir. Bu, Kod Olarak Altyapı (IaC) dağıtımlarını veya üzerinde anlaşmaya varılan mimariden sapan Azure portalı değişikliklerini yakalamanıza yardımcı olur. Tüm kaynakları mimarinize Azure İlkesi idare altına yerleştirmeniz gerekir. Temel ağ topolojisi, hizmet özellikleri, güvenlik ve izleme kararlarını zorunlu kılmak için mümkün olduğunda yerleşik ilkeleri veya ilke girişimlerini kullanın, örneğin:
- App Service genel ağ erişimini devre dışı bırakmalıdır
- App Service sanal ağ tümleştirmesi kullanmalıdır
- App Service, PaaS hizmetlerine bağlanmak için Azure Özel Bağlantı kullanmalıdır
- App Service'in FTP ve SCM site dağıtımları için yerel kimlik doğrulama yöntemleri devre dışı bırakılmalıdır
- App Service'in uzaktan hata ayıklaması kapalı olmalıdır
- App Service uygulamaları en son TLS sürümünü kullanmalıdır
- App Service için Microsoft Defender etkinleştirilmelidir
- Application Gateway için Web Uygulaması Güvenlik Duvarı (WAF) etkinleştirilmelidir
Application Gateway ve ağ bileşenleri, App Service, Key Vault ve İzleme gibi temel hizmetler için daha yerleşik ilkelere bakın. Yerleşik ilkeler ihtiyaçlarınızı tam olarak karşılamıyorsa özel ilkeler oluşturabilir veya topluluk ilkelerini (Azure Giriş Bölgeleri gibi) kullanabilirsiniz. Kullanılabilir olduğunda yerleşik ilkeleri tercih edin.