Czym są security groups?

    Czym są security groups?

    Security groups są komponentem bezpieczeństwa instancji - bezstanowym firewallem filtrującym ruch do maszyny wirtualnej na styku dowolnej sieci - zarówno typu internal (bez dostępu do internetu), jak i public (umożliwiającej dostęp do internetu).

    Są rozwiązaniem będącym połączeniem funkcjonalnego odpowiednika iptables oraz separacji sieciami (np. VLAN), ale działającym poza VM i konfigurowanym dla całych grup instancji. Dzięki temu pozwalają w prosty sposób, w jednym miejscu, zdefiniować wszystkie, a przynajmniej większość reguł dopuszczających ruch do i z danej grupy instancji.

    Koncept security groups

    Reguły dopuszczające

    Reguły security groups działają na zasadzie disallow all - allow some. Każda z reguł dopuszcza wybrany rodzaj ruchu. Przy braku jakichkolwiek reguł żaden ruch nie jest dopuszczony do instancji.

    Security groups na przykładzie

    Wyobraźmy sobie prostą aplikację webową, złożoną z trzech warstw:

    • Load balancing - instancje wystawione do sieci publicznej, rozrzucające ruch pomiędzy serwerami aplikacyjnymi i realizujące dodatkowo SSL-offload
    • Worker instances - instancje serwerów aplikacyjnych
    • Database instances - instancje serwerów baz danych, np. MySQL/Galera

    oraz dodatkowo

    • VPN gateway - dodatkowa instancja pozwalająca na dostęp SSH do środowiska

    Dla wszystkich warstw aplikacji możemy zdefiniować oddzielne security group zawierające reguły specyficzne dla każdej z group.

    Dodatkowo zdefiniujemy grupę Default, ponieważ chcemy, aby do każdej instancji był możliwy dostęp po SSH z instancji VPN gateway oraz ruch ICMP z dowolnej VM na potrzeby diagnostyki/monitoringu.

    W grupie Default dopuszczamy dowolny ruch wychodzący, natomiast w realnym zastosowaniu także jesteśmy w stanie go ograniczyć do ruchu który powinien wychodzić z instancji. W naszym przypadku reguły dla ruchu przychodzącego zablokują także nieporządany ruch wychodzący z innych instancji w środowisku.

    Przykład security groups

    ingress - ruch przychodzący

    egress - ruch wychodzący

    Load balancing

    Przykładowe reguły security group:

    • Dopuszczamy ruch przychodzący na porty 80 (HTTP) oraz 443 (HTTPS)
    • Dopuszczamy ruch przychodzący ICMP - np. na potrzeby monitoringu
    Worker instances

    Przykładowe reguły security group:

    • Dopuszczamy ruch przychodzący na porty 80 (HTTP) od instancji z grupy Load balancing - load balancery realizują także SSL-offload, stąd do instancji workerów nie powinien trafiać ruch HTTPS
    Database instances

    Przykładowe reguły security group:

    • Dopuszczamy ruch przychodzący na port 3306 - połączenia do baz danych MySQL/Galera od z instancji z grupy Worker instances
    • Dopuszczamy ruch przychodzący na port 4567 - replikację pomiędzy instancjami klastra bazodanowego MySQL/Galera od z instancji z grupy Database instances
    Default

    Przykładowe reguły security group:

    • Dopuszczamy ruch przychodzący na port 22 (SSH) od instancji z grupy VPN gateways
    • Dopuszczamy ruch przychodzący ICMP od instancji z grupy Default - czyli od wszystkich instancji w środowisku
    VPN gateways

    Przykładowe reguły security group:

    • Dopuszczamy ruch przychodzący na port 22 (SSH) od ze znanych nam adresacji, wskazując konkrente zakresy