Ağ Güvenlik Gruplarını (NSG) ve Uygulama Güvenlik Gruplarını (ASG) planlama ve uygulama
Azure sanal ağındaki Azure kaynakları arasındaki ağ trafiğini filtrelemek için bir Azure ağ güvenlik grubu kullanabilirsiniz. Ağ güvenlik grupları, farklı Azure kaynaklarına gelen ya da bu kaynaklardan dışarı giden ağ trafiğine izin veren veya bu trafiği reddeden güvenlik kuralları içerir. Her kural için kaynak ve hedef, bağlantı noktası ve protokol belirtebilirsiniz.
Ağ Güvenlik Grupları (NSG)
Güvenlik kuralları
Ağ güvenlik grubu, Azure aboneliği sınırları içinde istenen sayıda kural içerir. Her kural aşağıdaki özellikleri belirtir:
| Emlak | Açıklama |
|---|---|
| İsim | Ağ güvenlik grubu içinde benzersiz bir ad. Ad en çok 80 karakter uzunluğunda olabilir. Bir sözcük karakteriyle başlamalı ve bir sözcük karakteriyle veya '_' ile bitmelidir. Ad sözcük karakterleri veya '.', '-', '_' içerebilir. |
| Öncelik | 100 ile 4096 arasında bir sayı. Kurallar öncelik sırasına göre işlenir ve daha düşük sayılar yüksek sayılardan önce işlenir, çünkü düşük sayılar daha yüksek önceliğe sahiptir. Trafik bir kuralla eşleştiğinde işleme durdurulur. Sonuç olarak, daha yüksek önceliğe sahip kurallarla aynı özniteliklere sahip düşük önceliklere (daha yüksek sayılara) sahip olan tüm kurallar işlenmez. Özel kuralların her zaman önce işlenmesini sağlamak için Azure varsayılan güvenlik kurallarına en düşük önceliğe sahip en yüksek sayı verilir. |
| Kaynak veya hedef | Herhangi bir ip adresi veya tek bir IP adresi, sınıfsız etki alanları arası yönlendirme (CIDR) bloğu (örneğin, 10.0.0.0/24), hizmet etiketi veya uygulama güvenlik grubu. Azure kaynağı için bir adres belirtirseniz, kaynağa atanan özel IP adresini belirtin. Ağ güvenlik grupları, Azure gelen trafik için genel IP adresini özel IP adresine çevirdikten sonra ve giden trafik için özel IP adresini genel IP adreslerine çevirmeden önce işleme alınır. Bir aralık, hizmet etiketi veya uygulama güvenlik grubu belirtirken daha az güvenlik kuralı gerekir. Bir kuralda birden çok ip adresi ve aralığı (birden çok hizmet etiketi veya uygulama grubu belirtemezsiniz) belirtebilme özelliği artırılmış güvenlik kuralları olarak adlandırılır. Artırılmış güvenlik kuralları yalnızca Resource Manager dağıtım modeli aracılığıyla oluşturulan ağ güvenlik gruplarında oluşturulabilir. Klasik dağıtım modeliyle oluşturulan ağ güvenlik gruplarında birden çok IP adresi ve IP adresi aralığı belirtemezsiniz. |
| Protokol | TCP, UDP, ICMP, ESP, AH veya Any. ESP ve AH protokolleri şu anda Azure portalı üzerinden kullanılamamaktadır ancak Azure Resource Manager şablonları aracılığıyla kullanılabilir. |
| Yön | Kuralın gelen veya giden trafiğe uygulanıp uygulanmayacağı. |
| Bağlantı noktası aralığı | Bireysel bir bağlantı noktası veya birden fazla bağlantı noktası aralığı belirtebilirsiniz. Örneğin, 80 veya 10000-10005 belirtebilirsiniz. Aralıkları belirtmek daha az güvenlik kuralı oluşturmanıza olanak tanır. Artırılmış güvenlik kuralları yalnızca Resource Manager dağıtım modeli aracılığıyla oluşturulan ağ güvenlik gruplarında oluşturulabilir. Klasik dağıtım modeli aracılığıyla oluşturulan ağ güvenlik gruplarında aynı güvenlik kuralında birden çok bağlantı noktası veya bağlantı noktası aralığı belirtemezsiniz. |
| Eylem | İzin ver veya reddet |
Güvenlik kuralları, beş tanımlama grubu (1. kaynak, 2. kaynak bağlantı noktası, 3. hedef, 4. hedef bağlantı noktası ve 5. protokol) bilgilerine göre değerlendirilir ve uygulanır. Aynı öncelik ve yönde iki güvenlik kuralı oluşturamazsınız. Mevcut bağlantılar için bir akış kaydı oluşturulur. Akış kaydının bağlantı durumuna bağlı olarak iletişime izin verilir veya iletişim reddedilir. Akış kaydı bir ağ güvenlik grubunun durum bilgisine sahip olmasını sağlar. Örneğin, 80 numaralı bağlantı noktası üzerinden herhangi bir adrese giden güvenlik kuralı belirtirseniz, giden trafiğe yanıt için bir gelen güvenlik kuralı belirtmeniz gerekmez. İletişim dışarıdan başlatıldığı takdirde yalnızca bir gelen güvenlik kuralı belirtmeniz gerekir. Tam tersi de geçerlidir. Gelen trafiğe bir bağlantı noktası üzerinden izin verilmesi halinde, bu bağlantı noktası üzerinden gelen trafiğe yanıt vermek için bir giden güvenlik kuralı belirtmeniz gerekli değildir.
Bağlantıya izin veren bir güvenlik kuralını kaldırdığınızda mevcut bağlantılar kesintiye uğramayabilir. Ağ güvenlik grubu kurallarının değiştirilmesi yalnızca yeni bağlantıları etkiler. Bir ağ güvenlik grubunda yeni bir kural oluşturulduğunda veya mevcut bir kural güncelleştirildiğinde, yalnızca yeni bağlantılara uygulanır. Mevcut bağlantılar yeni kurallarla yeniden değerlendirilmez.
Ağ güvenlik grupları ağ trafiğini nasıl filtreler?
Birkaç Azure hizmetindeki kaynakları bir Azure sanal ağına dağıtabilirsiniz. Sıfır veya bir ağ güvenlik grubunu bir sanal makinedeki her sanal ağ alt ağı ve ağ arabirimiyle ilişkilendirebilirsiniz. Bir ağ güvenlik grubunu istediğiniz sayıda alt ağ ve ağ arabirimi ile ilişkilendirebilirsiniz. Aşağıdaki resimde, 80 numaralı TCP bağlantı noktası üzerinden İnternet'e gelen ve giden ağ trafiğine izin vermek için ağ güvenlik gruplarının nasıl dağıtılacağına ilişkin farklı senaryolar gösterilmektedir:
Azure'ın ağ güvenlik grupları için gelen ve giden kuralları nasıl işlediğini anlamak için aşağıdaki metinle birlikte görüntüye başvurun:
Gelen trafik
Gelen trafik için Azure, varsa önce bir alt ağ ile ilişkili bir ağ güvenlik grubundaki kuralları ve varsa ağ arabirimiyle ilişkilendirilmiş bir ağ güvenlik grubundaki kuralları işler. Bu işlem alt ağ içi trafiği de içerir.
- VM1: NSG1'deki güvenlik kuralları, Alt Ağ 1 ile ilişkilendirildiğinden ve VM1Alt Ağ 1'de olduğundan işlenir. Gelen bağlantı noktası 80'e izin veren bir kural oluşturmadığınız sürece DenyAllInbound varsayılan güvenlik kuralı trafiği reddeder. Ağ arabirimiyle ilişkili olduğundan trafik NSG2 tarafından değerlendirilmez. NSG1 güvenlik kuralında 80 numaralı bağlantı noktasına izin veriliyorsa, NSG2 trafiği işler. Sanal makineye 80 numaralı bağlantı noktasına izin vermek için hem NSG1 hem de NSG2 80 numaralı bağlantı noktasına İnternet'ten izin veren bir kurala sahip olmalıdır.
- VM2: VM2 aynı zamanda Alt Ağ 1'de olduğundan NSG1'deki kurallar işlenir. VM2'nin ağ arabirimiyle ilişkilendirilmiş bir ağ güvenlik grubu olmadığından NSG1 üzerinden izin verilen tüm trafiği alır veya NSG1 tarafından reddedilen tüm trafik reddedilir. Ağ güvenlik grubu bir alt ağ ile ilişkilendirilmiş olduğunda bu alt ağ içindeki tüm kaynaklar için trafiğe izin verilir veya trafik reddedilir.
- VM3: Alt ağ 2 ile ilişkilendirilmiş bir ağ güvenlik grubu olmadığından, NSG2VM3'e bağlı ağ arabirimiyle ilişkilendirildiğinden alt ağa trafiğe izin verilir ve NSG2 tarafından işlenir.
- VM4: Bir ağ güvenlik grubu Alt ağ 3 veya sanal makinedeki ağ arabirimiyle ilişkili olmadığından VM4'e trafiğe izin verilir. Bağlantılı bir ağ güvenlik grubu yoksa, alt ağ ve ağ arabirimi üzerinden tüm ağ trafiğine izin verilir.
Giden trafik
Giden trafik için Azure, varsa önce ağ arabirimiyle ilişkili bir ağ güvenlik grubundaki kuralları ve varsa alt ağ ile ilişkilendirilmiş bir ağ güvenlik grubundaki kuralları işler. Bu işlem alt ağ içi trafiği de içerir.
- VM1: NSG2'deki güvenlik kuralları işlenir. Hem NSG1 hem de NSG2'dekiAllowInternetOutbound varsayılan güvenlik kuralı, İnternet'e giden 80 numaralı bağlantı noktasını reddeden bir güvenlik kuralı oluşturmadığınız sürece trafiğe izin verir. NSG2, güvenlik kuralında 80 numaralı bağlantı noktasını reddederse trafiği reddeder ve NSG1 bunu hiçbir zaman değerlendirmez. Sanal makineden 80 numaralı bağlantı noktasını engellemek için, ağ güvenlik gruplarından birinde veya her ikisinde de internet'e 80 numaralı bağlantı noktasını engelleyen bir kural bulunmalıdır.
- VM2: VM2'ye bağlı ağ arabirimiyle ilişkilendirilmiş bir ağ güvenlik grubu olmadığından tüm trafik ağ arabirimi aracılığıyla alt ağa gönderilir. NSG1'deki kurallar işlendi.
- VM3: NSG2 güvenlik kuralında 80 numaralı bağlantı noktasını reddederse trafiği reddeder. NSG2 bağlantı noktası 80'i reddetmezse, NSG2'dekiAllowInternetOutbound varsayılan güvenlik kuralı, Alt Ağ 2 ile ilişkilendirilmiş bir ağ güvenlik grubu olmadığından trafiğe izin verir.
- VM4: Bir ağ güvenlik grubu sanal makineye bağlı ağ arabirimiyle veya Alt Ağ 3'e bağlı olmadığından VM4'ten gelen tüm ağ trafiğine izin verilir.
Alt ağ içi trafik
Alt ağ ile ilişkilendirilmiş bir NSG'deki güvenlik kurallarının içindeki VM'ler arasındaki bağlantıyı etkileyebileceğini unutmayın. Varsayılan olarak, aynı alt ağdaki sanal makineler alt ağ içi trafiğe izin veren varsayılan NSG kuralına göre iletişim kurabilir. NSG1'e tüm gelen ve giden trafiği reddeden bir kural eklerseniz, VM1 ve VM2 birbiriyle iletişim kuramaz.
Ağ arabirimi için geçerli güvenlik kurallarını görüntüleyerek ağ arabirimine uygulanan toplama kurallarını kolayca görüntüleyebilirsiniz. Ağ arabirimine veya ağ arabiriminden iletişime izin verilip verilmeyeceğini belirlemek için Azure Ağ İzleyicisi'ndeki IP akışı doğrulama özelliğini de kullanabilirsiniz. Bir iletişime izin verilip verilmediğini belirlemek için IP akışı doğrulamasını kullanabilirsiniz. Ayrıca, trafiğe izin vermek veya trafiği reddetmek için sorumlu ağ güvenlik kuralının kimliğini ortaya çıkarabilmek için IP akışı doğrulamasını kullanın.
Ağ güvenlik grupları, alt ağlarla veya klasik dağıtım modelinde dağıtılan sanal makinelerle ve bulut hizmetleriyle ve Resource Manager dağıtım modelindeki alt ağlarla veya ağ arabirimleriyle ilişkilendirilir.
Belirli bir nedeniniz yoksa, bir ağ güvenlik grubunu bir alt ağ veya ağ arabirimiyle ilişkilendirmenizi öneririz, ancak ikisini birden ilişkilendirmemenizi öneririz. Alt ağ ile ilişkilendirilmiş bir ağ güvenlik grubundaki kurallar, ağ arabirimiyle ilişkili bir ağ güvenlik grubundaki kurallarla çakışabileceğinden, sorun giderme gerektiren beklenmeyen iletişim sorunlarıyla karşılaşabilirsiniz.
Uygulama Güvenlik Grupları (ASG)
Uygulama güvenlik grupları ağ güvenliğini uygulamanın yapısının doğal bir uzantısı olarak yapılandırmanıza imkan vererek sanal makineleri gruplamanızı ve ağ güvenlik ilkelerini bu gruplara göre tanımlamanızı sağlar. Açık IP adreslerinin bakımını el ile yapmanıza gerek kalmadan güvenlik ilkesini farklı ölçeklerde yeniden kullanabilirsiniz. Platform, açık IP adreslerinin ve birden çok kural kümesinin karmaşıklığını ele alır ve iş mantığınıza odaklanmanıza olanak sağlar. Uygulama güvenlik gruplarını daha iyi anlamak için aşağıdaki örneği göz önünde bulundurun:
Önceki resimde NIC1 ve NIC2 , AsgWeb uygulama güvenlik grubunun üyeleridir. NIC3 , AsgLogic uygulama güvenlik grubunun bir üyesidir. NIC4 , AsgDb uygulama güvenlik grubunun bir üyesidir. Bu örnekteki her ağ arabirimi (NIC) yalnızca bir ağ güvenlik grubunun üyesi olsa da, ağ arabirimi Azure Sınırları'na kadar birden çok uygulama güvenlik grubunun üyesi olabilir. Ağ arabirimlerinin hiçbiri bir ağ güvenlik grubuyla ilişkilendirilmemiştir. NSG1 her iki alt ağ ile de ilişkilidir ve aşağıdaki kuralları içerir:
HTTP'ye İzin Ver-Inbound-Internet
İnternet'ten web sunucularına gelen trafiğe izin vermek için bu kural gereklidir. İnternet'ten gelen trafik DenyAllInbound varsayılan güvenlik kuralı tarafından reddedildiğinden, AsgLogic veya AsgDb uygulama güvenlik grupları için ek kural gerekmez.
| Öncelik | Kaynak | Kaynak bağlantı noktaları | Hedef | Hedef bağlantı noktaları | Protokol | Erişim |
|---|---|---|---|---|---|---|
| 100 | İnternet | * | AsgWeb | 80 | TCP | İzin Ver |
Veritabanı-Tümü-Reddet
AllowVNetInBound varsayılan güvenlik kuralı aynı sanal ağdaki kaynaklar arasındaki tüm iletişimlere izin verdiğinden, tüm kaynaklardan gelen trafiği reddetmek için bu kural gereklidir.
| Öncelik | Kaynak | Kaynak bağlantı noktaları | Hedef | Hedef bağlantı noktaları | Protokol | Erişim |
|---|---|---|---|---|---|---|
| 120 | * | * | AsgDb | 1433 | Herhangi biri | Reddet |
İzin Ver-Database-BusinessLogic
Bu kural , AsgLogic uygulama güvenlik grubundan AsgDb uygulama güvenlik grubuna gelen trafiğe izin verir. Bu kuralın önceliği Deny-Database-All kuralının önceliğine göre daha yüksektir. Sonuç olarak, bu kural Deny-Database-All kuralından önce işlenir, bu nedenle AsgLogic uygulama güvenlik grubundan gelen trafiğe izin verilirken diğer tüm trafik engellenir.
| Öncelik | Kaynak | Kaynak bağlantı noktaları | Hedef | Hedef bağlantı noktaları | Protokol | Erişim |
|---|---|---|---|---|---|---|
| 110 | AsgLogic | * | AsgDb | 1433 | TCP | İzin Ver |
Uygulama güvenlik grubunun üyesi olan ağ arabirimleri, bunu kaynak veya hedef olarak belirten kuralları uygular. Kurallar diğer ağ arabirimlerini etkilemez. Ağ arabirimi bir uygulama güvenlik grubunun üyesi değilse, ağ güvenlik grubu alt ağ ile ilişkili olsa bile kural ağ arabirimine uygulanmaz.
Uygulama güvenlik grupları aşağıdaki kısıtlamalara sahiptir:
Bir abonelikte sahip olabileceğiniz uygulama güvenlik gruplarının sayısı ve uygulama güvenlik gruplarıyla ilgili diğer sınırlar vardır.
Bir uygulama güvenlik grubuna atanan tüm ağ arabirimlerinin, uygulama güvenlik grubuna atanan ilk ağ arabiriminin bulunduğu sanal ağda bulunması gerekir. Örneğin, AsgWeb adlı bir uygulama güvenlik grubuna atanan ilk ağ arabirimi VNet1 adlı sanal ağdaysa, ASGWeb'e atanan sonraki tüm ağ arabirimlerinin VNet1'de mevcut olması gerekir. Farklı sanal ağlardan ağ arabirimlerini aynı uygulama güvenlik grubuna ekleyemezsiniz.
Bir güvenlik kuralında kaynak ve hedef olarak bir uygulama güvenlik grubu belirtirseniz, her iki uygulama güvenlik grubundaki ağ arabirimleri aynı sanal ağda bulunmalıdır.
- AsgLogic'inVNet1'den ağ arabirimleri, AsgDb'nin ise VNet2'den ağ arabirimleri olması buna örnek olabilir. Bu durumda, asgLogic'i kaynak olarak, AsgDb'yi de bir kuralda hedef olarak atamak mümkün değildir. Hem kaynak hem de hedef uygulama güvenlik gruplarının tüm ağ arabirimlerinin aynı sanal ağda bulunması gerekir.
İhtiyacınız olan güvenlik kurallarının sayısını ve kuralları değiştirme gereksinimini en aza indirmek için, ihtiyacınız olan uygulama güvenlik gruplarını planlayın ve mümkün olduğunca tek tek IP adresleri veya IP adresi aralıkları yerine hizmet etiketlerini veya uygulama güvenlik gruplarını kullanarak kurallar oluşturun.