Planowanie i implementowanie sieciowych grup zabezpieczeń i grup zabezpieczeń aplikacji (ASG)

Ukończone

Za pomocą sieciowej grupy zabezpieczeń platformy Azure można filtrować ruch sieciowy między zasobami platformy Azure w sieci wirtualnej platformy Azure. Sieciowa grupa zabezpieczeń zawiera reguły zabezpieczeń, które zezwalają na lub blokują przychodzący ruch sieciowy lub wychodzący ruch sieciowy dla kilku typów zasobów platformy Azure. Dla każdej reguły można określić źródło i miejsce docelowe, port i protokół.

Sieciowe grupy zabezpieczeń (NSG):

Reguły zabezpieczeń

Sieciowa grupa zabezpieczeń zawiera dowolną liczbę reguł w ramach limitów subskrypcji platformy Azure. Każda reguła określa następujące właściwości:

Właściwości Wyjaśnienie
Nazwisko Unikatowa nazwa w obrębie sieciowej grupy zabezpieczeń. Nazwa może mieć długość maksymalnie 80 znaków. Musi zaczynać się od znaku słowa i musi kończyć się znakiem słowa lub znakiem "_". Nazwa może zawierać znaki wyrazu lub '.', '-', '_'.
Priorytet Liczba z zakresu od 100 do 4096. Reguły są przetwarzane w kolejności priorytetów. Im niższy numer, tym wyższy priorytet, więc te o niższych numerach są przetwarzane przed tymi o wyższych numerach. Kiedy ruch jest zgodny z regułą, przetwarzanie zostaje zatrzymane. W związku z tym wszelkie reguły, które istnieją z niższymi priorytetami (wyższe liczby), które mają takie same atrybuty jak reguły o wyższych priorytetach, nie są przetwarzane.
Domyślne reguły zabezpieczeń platformy Azure mają najwyższą liczbę z najniższym priorytetem, aby upewnić się, że reguły niestandardowe są zawsze przetwarzane jako pierwsze.
Obiekt źródłowy lub docelowy Dowolny lub indywidualny adres IP, blok CIDR (na przykład 10.0.0.0/24), tag usługi lub grupa zabezpieczeń aplikacji. W przypadku określenia adresu dla zasobu platformy Azure należy określić prywatny adres IP przypisany do zasobu. W przypadku ruchu przychodzącego grupy zabezpieczeń sieci są przetwarzane po tym, jak platforma Azure przetłumaczy publiczny adres IP na prywatny adres IP, a w przypadku ruchu wychodzącego — zanim platforma Azure przetłumaczy prywatny adres IP na publiczny adres IP. W przypadku określenia zakresu, tagu usługi lub grupy zabezpieczeń aplikacji wymagana jest mniejsza liczba reguł zabezpieczeń. Możliwość określenia wielu pojedynczych adresów IP i zakresów (nie można określić wielu tagów usługi lub grup aplikacji) w regule jest określana jako rozszerzone reguły zabezpieczeń. Rozszerzone reguły zabezpieczeń można tworzyć tylko w grupach zabezpieczeń sieci utworzonych za pośrednictwem modelu wdrażania przy użyciu usługi Resource Manager. Nie można określić wielu adresów IP i zakresów adresów IP w sieciowych grupach zabezpieczeń utworzonych za pomocą klasycznego modelu wdrażania.
Protokół TCP, UDP, ICMP, ESP, AH lub Dowolny. Protokoły ESP i AH nie są obecnie dostępne za pośrednictwem witryny Azure Portal, ale mogą być używane za pośrednictwem szablonów usługi Azure Resource Manager.
Kierunek Określa, czy reguła ma zastosowanie do ruchu przychodzącego, czy wychodzącego.
Zakres portów Można określić pojedynczy port lub zakres portów. Na przykład można określić port 80 lub 10000–10005. Określenie zakresów umożliwia utworzenie mniejszej liczby reguł zabezpieczeń. Rozszerzone reguły zabezpieczeń można tworzyć tylko w grupach zabezpieczeń sieci utworzonych za pośrednictwem modelu wdrażania przy użyciu usługi Resource Manager. Nie można określić wielu portów ani zakresów portów w tej samej regule zabezpieczeń w sieciowych grupach zabezpieczeń utworzonych za pomocą klasycznego modelu wdrażania.
Akcja Zezwolić czy zabronić?

Reguły zabezpieczeń są oceniane i stosowane na podstawie pięciu krotki (1. źródło, 2. port źródłowy, 3. miejsce docelowe, 4. port docelowy i 5). Nie można utworzyć dwóch reguł zabezpieczeń z tym samym priorytetem i kierunkiem. Rekord przepływu tworzony jest dla istniejących połączeń. Komunikacja jest dozwolona lub zablokowana na podstawie stanu połączenia z rekordu przepływu. Dzięki rekordowi przepływu grupa zabezpieczeń sieci jest stanowa. Jeśli zostanie określona reguła zabezpieczeń dla ruchu wychodzącego do dowolnego adresu za pośrednictwem (na przykład) portu 80, nie trzeba określać żadnej reguły zabezpieczeń ruchu przychodzącego dla odpowiedzi na ruch wychodzący. Należy tylko określić regułę zabezpieczeń dla ruchu przychodzącego w przypadku, jeśli komunikacja jest inicjowana zewnętrznie. Jest to również prawdziwe w odwrotnym przypadku. Jeśli ruch przychodzący jest dozwolony przez port, nie trzeba określać reguły zabezpieczeń dla ruchu wychodzącego, aby odpowiadać na ruch przychodzący przez port.

Istniejące połączenia mogą nie zostać przerwane po usunięciu reguły zabezpieczeń, która zezwoliła na połączenie. Modyfikowanie reguł sieciowej grupy zabezpieczeń będzie miało wpływ tylko na nowe połączenia. Po utworzeniu nowej reguły lub zaktualizowaniu istniejącej reguły w sieciowej grupie zabezpieczeń będzie ona stosowana tylko do nowych połączeń. Istniejące połączenia nie są ponownie oceniane przy użyciu nowych reguł.

Jak sieciowe grupy zabezpieczeń filtrować ruch sieciowy

W sieci wirtualnej platformy Azure można wdrożyć zasoby z kilku usług platformy Azure. Z każdą siecią podsiecią i interfejsem sieciowym sieci wirtualnej na maszynie wirtualnej możesz skojarzyć zero lub jedną grupę zabezpieczeń sieci. Tę samą grupę zabezpieczeń sieci można zastosować do dowolnej liczby interfejsów sieciowych i podsieci. Na poniższej ilustracji przedstawiono różne scenariusze wdrażania sieciowych grup zabezpieczeń w celu umożliwienia ruchu sieciowego do i z Internetu przez port TCP 80:

Diagram przedstawiający przykład wdrażania sieciowych grup zabezpieczeń w celu umożliwienia ruchu sieciowego do i z Internetu za pośrednictwem portu TCP 80.

Zapoznaj się z obrazem wraz z następującym tekstem, aby dowiedzieć się, jak platforma Azure przetwarza reguły ruchu przychodzącego i wychodzącego dla sieciowych grup zabezpieczeń:

Ruch przychodzący

W przypadku ruchu przychodzącego platforma Azure przetwarza reguły w sieciowej grupie zabezpieczeń skojarzonej z podsiecią najpierw, jeśli istnieje, a następnie reguły w sieciowej grupie zabezpieczeń skojarzonej z interfejsem sieciowym, jeśli istnieje. Ten proces obejmuje również ruch wewnątrz podsieci.

  • VM1: reguły zabezpieczeń w sieciowej grupie zabezpieczeń1 są przetwarzane, ponieważ jest ona skojarzona z podsiecią Subnet 1 i vm1 znajduje się w podsieci Subnet 1. Chyba że utworzono regułę zezwalającą na ruch przychodzący na porcie 80, domyślna reguła zabezpieczeń DenyAllInbound blokuje ruch. Ruch nie jest oceniany przez sieciową grupę zabezpieczeń 2, ponieważ jest skojarzony z interfejsem sieciowym. Jeśli sieciowa grupa zabezpieczeń1 zezwala na port 80 w regule zabezpieczeń, sieciowa grupa zabezpieczeń 2 przetwarza ruch. Aby zezwolić na ruch przychodzący na porcie 80 do maszyny wirtualnej, obie grupy NSG1 i NSG2 muszą zawierać regułę zezwalającą ruch przychodzący na porcie 80 z Internetu.
  • VM2: reguły w sieciowej grupie zabezpieczeń1 są przetwarzane, ponieważ maszyna wirtualna VM2 znajduje się również w podsieci Subnet 1. Ponieważ maszyna wirtualna VM2 nie ma sieciowej grupy zabezpieczeń skojarzonej z interfejsem sieciowym, odbiera cały ruch dozwolony przez sieciową grupę zabezpieczeń1 lub odrzuca cały ruch zabroniony przez sieciową grupę zabezpieczeń1. Ruch jest dozwolony albo blokowany dla wszystkich zasobów w tej samej podsieci, gdy grupa zabezpieczeń sieci jest skojarzona z podsiecią.
  • VM3: ponieważ nie ma sieciowej grupy zabezpieczeń skojarzonej z podsiecią Subnet 2, ruch jest dozwolony do podsieci i przetwarzany przez sieciową grupę zabezpieczeń 2, ponieważ sieciowa grupa zabezpieczeń2 jest skojarzona z interfejsem sieciowym dołączonym do maszyny wirtualnej VM3.
  • VM4: Ruch do maszyny wirtualnej VM4 jest dozwolony , ponieważ sieciowa grupa zabezpieczeń nie jest skojarzona z podsiecią Subnet 3 ani interfejsem sieciowym na maszynie wirtualnej. Cały ruch sieciowy przez podsieć i interfejs sieciowy jest dozwolony, jeśli nie mają one skojarzonej żadnej sieciowej grupy zabezpieczeń.

Ruch wychodzący

W przypadku ruchu wychodzącego platforma Azure przetwarza reguły w sieciowej grupie zabezpieczeń skojarzonej z interfejsem sieciowym, jeśli istnieje, a następnie reguły w sieciowej grupie zabezpieczeń skojarzonej z podsiecią, jeśli istnieje. Ten proces obejmuje również ruch wewnątrz podsieci.

  • VM1: reguły zabezpieczeń w sieciowej grupie zabezpieczeń 2 są przetwarzane. Domyślna reguła zabezpieczeń AllowInternetOutbound w sieciowej grupie zabezpieczeń1 i sieciowej grupie zabezpieczeń 2 zezwala na ruch, chyba że zostanie utworzona reguła zabezpieczeń, która nie zezwala na ruch wychodzący na porcie 80 do Internetu. Jeśli sieciowa grupa zabezpieczeń 2 nie zezwala na port 80 w regule zabezpieczeń, odrzuca ruch, a sieciowa grupa zabezpieczeń 1 nigdy nie ocenia go. Aby zablokować port 80 na maszynie wirtualnej, jedna lub obie grupy zabezpieczeń sieci muszą zawierać regułę, która blokuje ruch do Internetu na porcie 80.
  • VM2: cały ruch jest wysyłany przez interfejs sieciowy do podsieci, ponieważ interfejs sieciowy dołączony do maszyny wirtualnej VM2 nie ma skojarzonej sieciowej grupy zabezpieczeń. Reguły w grupie NSG1 są przetwarzane.
  • VM3: Jeśli sieciowa grupa zabezpieczeń 2 odmawia portu 80 w regule zabezpieczeń, blokuje ruch. Jeśli sieciowa grupa zabezpieczeń 2 nie blokuje portu 80, domyślna reguła zabezpieczeń AllowInternetOutbound w sieciowej grupie zabezpieczeń grupy zabezpieczeń zezwala na ruch, ponieważ nie ma sieciowej grupy zabezpieczeń skojarzonej z podsiecią Subnet 2.
  • VM4: cały ruch sieciowy jest dozwolony z maszyny wirtualnej VM4, ponieważ sieciowa grupa zabezpieczeń nie jest skojarzona z interfejsem sieciowym dołączonym do maszyny wirtualnej ani z podsiecią Subnet 3.

Ruch wewnątrz podsieci

Należy pamiętać, że reguły zabezpieczeń w sieciowej grupie zabezpieczeń skojarzonej z podsiecią mogą mieć wpływ na łączność między maszynami wirtualnymi w niej. Domyślnie maszyny wirtualne w tej samej podsieci mogą komunikować się na podstawie domyślnej reguły sieciowej grupy zabezpieczeń zezwalającej na ruch wewnątrz podsieci. Jeśli dodasz regułę do sieciowej grupy zabezpieczeń1 , która blokuje cały ruch przychodzący i wychodzący, maszyny VM1 i VM2 nie będą mogły komunikować się ze sobą.

Reguły agregowane stosowane do interfejsu sieciowego można łatwo wyświetlić, wyświetlając obowiązujące reguły zabezpieczeń dla interfejsu sieciowego. Możesz również skorzystać z możliwości weryfikowania przepływu protokołu IP w celu ustalenia, czy komunikacja z lub do interfejsu sieciowego jest dozwolona. Możesz użyć funkcji weryfikacji przepływu adresów IP, aby określić, czy komunikacja jest dozwolona, czy blokowana. Ponadto użyj funkcji weryfikacji przepływu adresów IP, aby uwidocznieć tożsamość reguły zabezpieczeń sieci odpowiedzialnej za zezwolenie na ruch lub odmowę go.

Sieciowe grupy zabezpieczeń są skojarzone z podsieciami lub maszynami wirtualnymi i usługami w chmurze wdrożonych w klasycznym modelu wdrażania oraz do podsieci lub interfejsów sieciowych w modelu wdrażania usługi Resource Manager.

Jeśli nie masz określonego powodu, zalecamy skojarzenie sieciowej grupy zabezpieczeń z podsiecią lub interfejsem sieciowym, ale nie obu tych elementów. Ponieważ reguły w grupie zabezpieczeń sieci skojarzonej z podsiecią mogą powodować konflikt z regułami w grupie zabezpieczeń sieci skojarzonej z interfejsem sieciowym, możesz napotkać nieoczekiwane problemy z komunikacją, co będzie wymagać rozwiązywania problemów.

Grupy zabezpieczeń aplikacji (ASG)

Grupy zabezpieczeń aplikacji umożliwiają skonfigurowanie zabezpieczeń sieci jako naturalnego rozszerzenia struktury aplikacji, co pozwala na grupowanie maszyn wirtualnych i definiowanie zasad zabezpieczeń sieci na podstawie tych grup. Możesz ponownie używać zasad zabezpieczeń na dużą skalę bez ręcznej obsługi jawnych adresów IP. Platforma obsługuje złożoność jawnych adresów IP i wiele zestawów reguł, co pozwala skupić się na logice biznesowej. Aby lepiej zrozumieć grupy zabezpieczeń aplikacji, rozważmy następujący przykład:

Diagram przedstawiający przykład sieciowych grup zabezpieczeń platformy Azure i grup zabezpieczeń aplikacji.

Na poprzedniej ilustracji interfejsy sieciowe NIC1 i NIC2 są elementami członkowskimi grupy zabezpieczeń aplikacji AsgWeb. Interfejs sieciowy NIC3 jest elementem członkowskim grupy zabezpieczeń aplikacji AsgLogic. Interfejs sieciowy NIC4 jest elementem członkowskim grupy zabezpieczeń aplikacji AsgDb. Chociaż każdy interfejs sieciowy (NIC) w tym przykładzie jest członkiem tylko jednej sieciowej grupy zabezpieczeń, interfejs sieciowy może być członkiem wielu grup zabezpieczeń aplikacji, do limitów platformy Azure. Żaden z interfejsów sieciowych nie ma skojarzonej grupy zabezpieczeń sieci. Grupa NSG1 jest skojarzona z obiema podsieciami i zawiera następujące reguły:

Allow-HTTP-Inbound-Internet

Ta reguła jest potrzebna w celu zezwolenia na ruch z Internetu do serwerów internetowych. Ponieważ ruch przychodzący z Internetu jest blokowany przez domyślną regułę zabezpieczeń DenyAllInbound, nie jest wymagana dodatkowa reguła dla grup zabezpieczeń aplikacji AsgLogic lub AsgDb .

Priorytet Source Porty źródłowe Lokalizacja docelowa Porty docelowe Protokół Uzyskaj dostęp
100 Internet * AsgWeb 80 TCP Zezwalaj

Deny-Database-All

Ponieważ domyślna reguła zabezpieczeń AllowVNetInBound zezwala na całą komunikację między zasobami w tej samej sieci wirtualnej, ta zasada jest potrzebna w celu blokowania ruchu ze wszystkich zasobów.

Priorytet Source Porty źródłowe Lokalizacja docelowa Porty docelowe Protokół Uzyskaj dostęp
120 * * AsgDb 1433 Dowolne Zablokuj

Allow-Database-BusinessLogic

Ta reguła zezwala na ruch z grupy zabezpieczeń aplikacji AsgLogic do grupy zabezpieczeń aplikacji AsgDb. Priorytet tej reguły jest wyższy niż priorytet reguły Deny-Database-All. W rezultacie ta reguła jest przetwarzana przed regułą Deny-Database-All, a więc ruch z grupy zabezpieczeń aplikacji AsgLogic jest dozwolony, natomiast cały pozostały ruch jest blokowany.

Priorytet Source Porty źródłowe Lokalizacja docelowa Porty docelowe Protokół Uzyskaj dostęp
110 AsgLogic * AsgDb 1433 TCP Zezwalaj

Interfejsy sieciowe, które są członkami grupy zabezpieczeń aplikacji, stosują reguły określające je jako źródło lub miejsce docelowe. Reguły nie mają wpływu na inne interfejsy sieciowe. Jeśli interfejs sieciowy nie jest członkiem grupy zabezpieczeń aplikacji, reguła nie jest stosowana do interfejsu sieciowego, mimo że sieciowa grupa zabezpieczeń jest skojarzona z podsiecią.

Grupy zabezpieczeń aplikacji mają następujące ograniczenia:

  • Istnieją ograniczenia liczby grup zabezpieczeń aplikacji, które można mieć w subskrypcji, oraz inne limity związane z grupami zabezpieczeń aplikacji.

  • Wszystkie interfejsy sieciowe przypisane do grupy zabezpieczeń aplikacji muszą istnieć w tej samej sieci wirtualnej, co pierwszy interfejs sieciowy przypisany do danej grupy zabezpieczeń aplikacji. Na przykład jeśli pierwszy interfejs sieciowy przypisany do grupy zabezpieczeń aplikacji o nazwie AsgWeb istnieje w sieci wirtualnej o nazwie VNet1, wszystkie kolejne interfejsy sieciowe przypisane do grupy AsgWeb muszą istnieć w sieci VNet1. Nie można dodawać interfejsów sieciowych z różnych sieci wirtualnych do tej samej grupy zabezpieczeń aplikacji.

  • Jeśli określisz grupy zabezpieczeń aplikacji jako źródło i obiekt docelowy w regule zabezpieczeń, interfejsy sieciowe w obu grupach zabezpieczeń aplikacji muszą istnieć w tej samej sieci wirtualnej.

    • Przykładem może być to, że firma AsgLogic miała interfejsy sieciowe z sieci VNet1 i AsgDb miały interfejsy sieciowe z sieci VNet2. W takim przypadku nie można przypisać środowiska AsgLogic jako źródła i bazy danych AsgDb jako miejsca docelowego w regule. Wszystkie interfejsy sieciowe dla źródłowych i docelowych grup zabezpieczeń aplikacji muszą istnieć w tej samej sieci wirtualnej.

Jeśli to możliwe, aby zminimalizować liczbę niezbędnych reguł zabezpieczeń i konieczność zmiany reguł, zaplanuj potrzebne grupy zabezpieczeń aplikacji i utwórz reguły przy użyciu tagów usług lub grup zabezpieczeń aplikacji, a nie pojedynczych adresów IP lub zakresów adresów IP.