Wiele grup zabezpieczeń EC2 - dopuszczających czy ograniczających?

27

Co się stanie, gdy przypiszę wiele grup zabezpieczeń do instancji? Czy jest to dozwolone w tym sensie, że ruch jest dozwolony, jeśli którakolwiek z grup zabezpieczeń na to zezwala. LUB czy jest to ograniczenie w tym sensie, że każda grupa bezpieczeństwa musi zezwalać na ruch, aby mógł zostać przekazany?

Załóżmy na przykład, że mam klasę instancji, które będą rozmawiać tylko z innymi instancjami na tym samym koncie. Mam również klasę instancji, które akceptują ruch tylko przez HTTP (port 80).

Czy można ograniczyć dostęp do instancji wewnętrznych i tylko przez HTTP, tworząc i stosując dwie grupy zabezpieczeń:

  1. „Wewnętrzna” grupa bezpieczeństwa. Zezwól na cały ruch z innych członków tej grupy zabezpieczeń na wszystkich portach dla wszystkich transportów (TCP, UDP, ICMP)
  2. Utwórz grupę zabezpieczeń „http”. Zezwól na cały ruch do portu 80 przez TCP z dowolnego źródła.

LUB czy jestem zmuszony utworzyć pojedynczą grupę zabezpieczeń, która zezwala na ruch z portu 80, w którym samo źródło jest?

SFun28
źródło

Odpowiedzi:

5

Jeśli instancja ma wiele grup zabezpieczeń, ma sumę wszystkich reguł w różnych grupach.

Załóżmy na przykład, że mam klasę instancji, które będą rozmawiać tylko z innymi instancjami na tym samym koncie. Mam także klasę instancji, które akceptują ruch tylko przez http (port 80).

Jest to idealna sytuacja dla wirtualnej chmury prywatnej AWS. Umieść instancje wewnętrzne w podsieciach prywatnych, a instancje publiczne w podsieciach publicznych.

ceejayoz
źródło
ceejayoz - Więc to jest „restrykcyjny” przypadek? Czy rozwiązanie dwóch grup bezpieczeństwa zadziałałoby? Uzgodniono rozwiązanie VPC; mój przykład miał lepiej zrozumieć, jak działa wiele grup. Przy okazji, gdzie znalazłeś odpowiedź?
SFun28
Chcesz jednej grupy zabezpieczeń dla instancji wewnętrznych, a drugiej dla instancji publicznych. Dodanie publicznie dostępnej grupy 80: 0.0.0.0/0 do instancji wewnętrznych umożliwiłoby ich udostępnienie w publicznym Internecie.
ceejayoz
1
Żeby było super jasne, mówisz, że ruch jest dozwolony, jeśli którakolwiek z indywidualnych grup zabezpieczeń na to pozwala? Jestem pod wrażeniem twojego komentarza na temat „sumy wszystkich zasad”, ponieważ kiedy myślę o sumie, myślę ORAZ zamiast OR.
SFun28
2
Tak, jeśli którakolwiek z grup zastosowanych do instancji na to pozwala, jest to dozwolone. Reguły grupowe są ORedowane razem, a nie ANDed.
ceejayoz
7
dlaczego ludzie nie mogą po prostu odpowiedzieć na zadane pytanie, zamiast wstawić swój pomysł na to, co należy zrobić. Jeśli masz zamiar to zrobić, przynajmniej najpierw odpowiedz poprawnie na pytanie. Jeez
Bill Rosmus
28

Puszczalski.

Według AWS tutaj: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html#security-group-rules

Jeśli dla określonego portu istnieje więcej niż jedna reguła, stosujemy najbardziej dopuszczalną regułę. Na przykład, jeśli masz regułę zezwalającą na dostęp do portu TCP 22 (SSH) z adresu IP 203.0.113.1 i inną regułę zezwalającą na dostęp do portu TCP 22 każdemu, każdy ma dostęp do portu TCP 22.

euphoria83
źródło
3

Oto odpowiedź od obsługi dokumentacji AWS. Powiedzieli, że zaktualizują dokumentację:

Znalazłem kilka postów na forum dyskusyjnym, które dotyczą podobnych problemów ze sprzecznymi regułami w jednej lub kilku grupach zabezpieczeń:

https://forums.aws.amazon.com/thread.jspa?messageID=221768

https://forums.aws.amazon.com/thread.jspa?messageID=349244吼

Gdy do instancji zastosowano wiele grup zabezpieczeń, reguły są agregowane w celu utworzenia jednego dużego zestawu reguł. W EC2 reguły grup zabezpieczeń są dozwolone tylko, innymi słowy, nie można dodawać żadnych ODRZUCONYCH reguł. Oznacza to, że zawsze będzie obowiązywać najbardziej liberalna reguła. Na przykład jeśli masz grupę zabezpieczeń, która umożliwia dostęp do portu 22 z adresu IP 10.10.10.10, i inną grupę zabezpieczeń, która umożliwia dostęp do portu 22 od wszystkich, wszyscy będą mieli dostęp do portu 22 w instancji.

SFun28
źródło
0

Po określeniu grupy zabezpieczeń jako źródła lub miejsca docelowego reguły reguła wpływa na wszystkie instancje powiązane z grupą zabezpieczeń. Ruch przychodzący jest dozwolony na podstawie prywatnych adresów IP instancji powiązanych ze źródłową grupą zabezpieczeń (a nie publicznych adresów IP lub elastycznych adresów IP). Aby uzyskać więcej informacji o adresach IP, zobacz Adresowanie IP wystąpienia Amazon EC2. Jeśli reguła grupy zabezpieczeń odwołuje się do grupy zabezpieczeń w równorzędnym VPC, a powiązana grupa zabezpieczeń lub połączenie równorzędne VPC jest usuwana, reguła jest oznaczana jako nieaktualna. Aby uzyskać więcej informacji, zobacz Praca z regułami Stale Security Group w Przewodniku komunikacji równorzędnej Amazon VPC.

Jeśli dla określonego portu istnieje więcej niż jedna reguła, stosujemy najbardziej dopuszczalną regułę. Na przykład, jeśli masz regułę zezwalającą na dostęp do portu TCP 22 (SSH) z adresu IP 203.0.113.1 i inną regułę zezwalającą na dostęp do portu TCP 22 każdemu, każdy ma dostęp do portu TCP 22.

Po powiązaniu wielu grup zabezpieczeń z instancją reguły z każdej grupy zabezpieczeń są skutecznie agregowane w celu utworzenia jednego zestawu reguł. Korzystamy z tego zestawu reguł, aby ustalić, czy zezwolić na dostęp.

Przestroga Ponieważ do instancji można przypisać wiele grup zabezpieczeń, instancja może mieć setki reguł, które mają zastosowanie. Może to powodować problemy podczas uzyskiwania dostępu do instancji. Dlatego zalecamy maksymalnie skondensowane zasady.

użytkownik377934
źródło