Aracılığıyla paylaş


App Service Ortamı ile Katmanlı Güvenlik Mimarisi Uygulama

Önemli

Bu makale App Service Ortamı v1 hakkındadır. App Service Ortamı v1, 31 Ağustos 2024 tarihinde kullanımdan kaldırılacaktır. Kullanımı daha kolay olan ve daha güçlü bir altyapı üzerinde çalışan yeni bir App Service Ortamı sürümü vardır. Yeni sürüm hakkında daha fazla bilgi edinmek için App Service Ortamı giriş ile başlayın. Şu anda App Service Ortamı v1 kullanıyorsanız yeni sürüme geçmek için lütfen bu makaledeki adımları izleyin.

29 Ocak 2024 itibarıyla ARM/Bicep şablonları, Azure Portal, Azure CLI veya REST API gibi kullanılabilir yöntemlerden herhangi birini kullanarak yeni App Service Ortamı v1 kaynakları oluşturamıyabilirsiniz. Kaynak silme ve veri kaybını önlemek için 31 Ağustos 2024'e kadar App Service Ortamı v3'e geçmeniz gerekir.

App Service Ortamı sanal ağa dağıtılan yalıtılmış bir çalışma zamanı ortamı sağladığından, geliştiriciler her fiziksel uygulama katmanı için farklı ağ erişimi düzeyleri sağlayan katmanlı bir güvenlik mimarisi oluşturabilir.

Api arka uçlarının genel İnternet erişiminden gizlenmesi ve api'lerin yalnızca yukarı akış web uygulamaları tarafından çağrılmasına izin vermek yaygın bir istektir. Api uygulamalarına genel erişimi kısıtlamak için App Service Ortamı içeren alt ağlarda ağ güvenlik grupları (NSG) kullanılabilir.

Aşağıdaki diyagramda, bir App Service Ortamı dağıtılan WebAPI tabanlı bir uygulamayla örnek bir mimari gösterilmektedir. Üç ayrı App Service Ortamı dağıtılan üç ayrı web uygulaması örneği, aynı WebAPI uygulamasına arka uç çağrıları yapar.

Conceptual Architecture

Yeşil artı işaretleri, alt ağdaki "apiase" içeren ağ güvenlik grubunun yukarı akış web uygulamalarından gelen çağrılara ve kendi içinden gelen çağrılara izin verdiği anlamına gelir. Ancak aynı ağ güvenlik grubu, İnternet'ten gelen genel trafiğe erişimi açıkça reddeder.

Bu makalenin geri kalanında, "apiase" içeren alt ağda ağ güvenlik grubunu yapılandırmak için gereken adımlar açıklanmıştır.

Ağ Davranışını Belirleme

Hangi ağ güvenlik kurallarının gerekli olduğunu bilmek için, HANGI ağ istemcilerinin API uygulamasını içeren App Service Ortamı erişmesine izin verileceğini ve hangi istemcilerin engelleneceğini belirlemeniz gerekir.

Ağ güvenlik grupları (NSG) alt ağlara uygulandığından ve App Service Ortamı alt ağlara dağıtıldığından, NSG'de yer alan kurallar bir App Service Ortamı üzerinde çalışan tüm uygulamalar için geçerlidir. Bu makalenin örnek mimarisi kullanılarak, "apiase" içeren alt ağa bir ağ güvenlik grubu uygulandıktan sonra, "apiase" App Service Ortamı çalışan tüm uygulamalar aynı güvenlik kuralları kümesiyle korunur.

  • Yukarı akış çağıranların giden IP adresini belirleme: Yukarı akış çağıranların IP adresi veya adresleri nedir? Bu adreslere NSG'de açıkça erişim izni verilmelidir. App Service Ortamı arasındaki çağrılar "İnternet" çağrıları olarak kabul edildiği için, üç yukarı akış App Service Ortamı her birine atanan giden IP adresinin "apiase" alt ağı için NSG'de erişime izin verilmelidir. App Service Ortamı çalışan uygulamaların giden IP adresini belirleme hakkında daha fazla bilgi için Ağ Mimarisine Genel Bakış makalesine bakın.
  • Arka uç API uygulamasının kendisini çağırması gerekecek mi? Bazen göz ardı edilen ve hafif bir nokta, arka uç uygulamasının kendisini çağırması gereken senaryodur. App Service Ortamı bir arka uç API uygulamasının kendisini çağırması gerekiyorsa, "İnternet" çağrısı olarak da değerlendirilir. Örnek mimaride bunun için de "apiase" App Service Ortamı giden IP adresinden erişime izin verilir.

Ağ Güvenlik Grubu'nu ayarlama

Giden IP adresleri kümesi bilindikten sonra, sonraki adım bir ağ güvenlik grubu oluşturmaktır. Hem Resource Manager tabanlı sanal ağlar hem de klasik sanal ağlar için ağ güvenlik grupları oluşturulabilir. Aşağıdaki örneklerde PowerShell kullanarak klasik bir sanal ağda NSG oluşturma ve yapılandırma gösterilmektedir.

Örnek mimari için ortamlar Orta Güney ABD'de bulunur, bu nedenle bu bölgede boş bir NSG oluşturulur:

New-AzureNetworkSecurityGroup -Name "RestrictBackendApi" -Location "South Central US" 
-Label "Only allow web frontend and loopback traffic"

İlk olarak, App Service Ortamı gelen trafik makalesinde belirtildiği gibi Azure yönetim altyapısı için açık bir izin verme kuralı eklenir.

#Open ports for access by Azure management infrastructure
Get-AzureNetworkSecurityGroup -Name "RestrictBackendApi" | Set-AzureNetworkSecurityRule -Name "ALLOW AzureMngmt" 
-Type Inbound -Priority 100 -Action Allow -SourceAddressPrefix 'INTERNET' -SourcePortRange '*' 
-DestinationAddressPrefix '*' -DestinationPortRange '454-455' -Protocol TCP

Ardından, ilk yukarı akış App Service Ortamı ("fe1ase") HTTP ve HTTPS çağrılarına izin vermek için iki kural eklenir.

#Grant access to requests from the first upstream web front-end
Get-AzureNetworkSecurityGroup -Name "RestrictBackendApi" | Set-AzureNetworkSecurityRule -Name "ALLOW HTTP fe1ase" 
-Type Inbound -Priority 200 -Action Allow -SourceAddressPrefix '65.52.xx.xyz'  -SourcePortRange '*' 
-DestinationAddressPrefix '*' -DestinationPortRange '80' -Protocol TCP
Get-AzureNetworkSecurityGroup -Name "RestrictBackendApi" | Set-AzureNetworkSecurityRule -Name "ALLOW HTTPS fe1ase" 
-Type Inbound -Priority 300 -Action Allow -SourceAddressPrefix '65.52.xx.xyz'  -SourcePortRange '*' 
-DestinationAddressPrefix '*' -DestinationPortRange '443' -Protocol TCP

İkinci ve üçüncü yukarı akış App Service Ortamı ("fe2ase" ve "fe3ase") için durulayın ve tekrarlayın.

#Grant access to requests from the second upstream web front-end
Get-AzureNetworkSecurityGroup -Name "RestrictBackendApi" | Set-AzureNetworkSecurityRule -Name "ALLOW HTTP fe2ase" 
-Type Inbound -Priority 400 -Action Allow -SourceAddressPrefix '191.238.xyz.abc'  -SourcePortRange '*' 
-DestinationAddressPrefix '*' -DestinationPortRange '80' -Protocol TCP
Get-AzureNetworkSecurityGroup -Name "RestrictBackendApi" | Set-AzureNetworkSecurityRule -Name "ALLOW HTTPS fe2ase" 
-Type Inbound -Priority 500 -Action Allow -SourceAddressPrefix '191.238.xyz.abc'  -SourcePortRange '*' 
-DestinationAddressPrefix '*' -DestinationPortRange '443' -Protocol TCP

#Grant access to requests from the third upstream web front-end
Get-AzureNetworkSecurityGroup -Name "RestrictBackendApi" | Set-AzureNetworkSecurityRule -Name "ALLOW HTTP fe3ase" 
-Type Inbound -Priority 600 -Action Allow -SourceAddressPrefix '23.98.abc.xyz'  -SourcePortRange '*' 
-DestinationAddressPrefix '*' -DestinationPortRange '80' -Protocol TCP
Get-AzureNetworkSecurityGroup -Name "RestrictBackendApi" | Set-AzureNetworkSecurityRule -Name "ALLOW HTTPS fe3ase" 
-Type Inbound -Priority 700 -Action Allow -SourceAddressPrefix '23.98.abc.xyz'  -SourcePortRange '*' 
-DestinationAddressPrefix '*' -DestinationPortRange '443' -Protocol TCP

Son olarak, arka uç API'sinin App Service Ortamı giden IP adresine erişim verin; böylece kendi kendine geri çağrı yapabilir.

#Allow apps on the apiase environment to call back into itself
Get-AzureNetworkSecurityGroup -Name "RestrictBackendApi" | Set-AzureNetworkSecurityRule -Name "ALLOW HTTP apiase" 
-Type Inbound -Priority 800 -Action Allow -SourceAddressPrefix '70.37.xyz.abc'  -SourcePortRange '*' 
-DestinationAddressPrefix '*' -DestinationPortRange '80' -Protocol TCP
Get-AzureNetworkSecurityGroup -Name "RestrictBackendApi" | Set-AzureNetworkSecurityRule -Name "ALLOW HTTPS apiase" 
-Type Inbound -Priority 900 -Action Allow -SourceAddressPrefix '70.37.xyz.abc'  -SourcePortRange '*' 
-DestinationAddressPrefix '*' -DestinationPortRange '443' -Protocol TCP

Her NSG varsayılan olarak İnternet'ten gelen erişimi engelleyen bir dizi varsayılan kurala sahip olduğundan, başka ağ güvenlik kuralı gerekmez.

Ağ güvenlik grubundaki kuralların tam listesi aşağıda gösterilmiştir. Vurgulanan son kuralın, açıkça erişim verilmiş arayanlar dışındaki tüm arayanlardan gelen erişimi nasıl engellediğini unutmayın.

NSG Configuration

Son adım, NSG'yi "apiase" App Service Ortamı içeren alt ağa uygulamaktır.

#Apply the NSG to the backend API subnet
Get-AzureNetworkSecurityGroup -Name "RestrictBackendApi" | Set-AzureNetworkSecurityGroupToSubnet 
-VirtualNetworkName 'yourvnetnamehere' -SubnetName 'API-ASE-Subnet'

NSG alt ağa uygulandığında, yalnızca üç yukarı akış App Service Ortamı ve API arka ucunu içeren App Service Ortamı "apiase" ortamına çağrıda bulunmasına izin verilir.

Ağ güvenlik grupları hakkında bilgi.

Giden IP adreslerini ve App Service Ortamı anlama.

App Service Ortamı s tarafından kullanılan ağ bağlantı noktaları.

Not

Azure hesabı için kaydolmadan önce Azure App Service’i kullanmaya başlamak isterseniz, App Service’te hemen kısa süreli bir başlangıç web uygulaması oluşturabileceğiniz App Service’i Deneyin sayfasına gidin. Kredi kartı ve taahhüt gerekmez.