Bezpieczeństwo wirtualnych maszyn w chmurze reguluje model współdzielonej odpowiedzialności (Shared Responsibility Model). W tym ujęciu dostawca infrastruktury zabezpiecza fizyczne centra danych, serwery bazowe oraz hypervisor, podczas gdy użytkownik odpowiada za konfigurację systemu gościa, aplikacji i zarządzanie uprawnieniami dostępu. Kompleksowa ochrona instancji wirtualnych wymaga wdrożenia wielowarstwowej strategii bezpieczeństwa obejmującej zarówno system operacyjny, jak i architekturę sieciową oraz zarządzanie tożsamością.
Zarządzanie podatnościami i aktualizacje systemowe (Patch Management)
Utrzymanie wysokiego poziomu bezpieczeństwa systemu operacyjnego gościa wymaga systematycznego instalowania poprawek bezpieczeństwa. Niezałatane podatności w jądrze systemu (kernel) lub w usługach sieciowych stanowią najczęstszą przyczynę kompromitacji wirtualnych maszyn.
Proces powinien być w pełni zautomatyzowany za pomocą narzędzi do zarządzania konfiguracją. Wdrożenie centralnych systemów zarządzania pakietami umożliwia cykliczne skanowanie instancji pod kątem znanych podatności (CVE) oraz bezprzestojowe wdrażanie krytycznych aktualizacji jądra w locie (hot-patching).
Kontrola ruchu sieciowego i Firewalls
Ochrona wirtualnych maszyn przed nieautoryzowanym dostępem z sieci zewnętrznych opiera się na konfiguracji wielopoziomowych zapór sieciowych. Pierwszą barierę stanowią stanowe zapory sieciowe (Stateful Firewalls) dostarczane na poziomie platformy chmurowej, które filtrują ruch zanim dotrze on do interfejsu sieciowego maszyny.
Drugą warstwę zabezpieczeń stanowią lokalne zapory systemowe (np. iptables/nftables w systemach Linux lub Windows Defender Firewall). Reguły filtrowania należy projektować zgodnie z zasadą najmniejszych uprawnień (Least Privilege), blokując domyślnie cały ruch przychodzący i zezwalając wyłącznie na pakiety pochodzące ze znanych adresów IP na ściśle określonych portach protokołów.
Architektura i segmentacja sieci (Network Segmentation)
Izolacja środowisk o różnym stopniu krytyczności zapobiega niekontrolowanemu ruchowi poprzecznemu (lateral movement) intruza wewnątrz infrastruktury w przypadku przejęcia jednej z maszyn. Segmentację realizuje się poprzez wdrażanie dedykowanych, wirtualnych sieci prywatnych (VPC) oraz wirtualnych sieci lokalnych (VLAN).
Środowiska produkcyjne powinny być całkowicie odizolowane od środowisk deweloperskich i testowych. Maszyny wirtualne hostujące bazy danych nie powinny posiadać publicznych adresów IP – ich komunikacja ze światem zewnętrznym musi odbywać się wyłącznie za pośrednictwem serwerów pośredniczących (Reverse Proxy), bram NAT lub bezpiecznych połączeń VPN.
Retencja danych i bezagentowe kopie zapasowe (Backup)
Zabezpieczenie przed utratą danych w wyniku awarii sprzętowych, błędów ludzkich lub ataków szyfrujących typu ransomware wymaga regularnego wykonywania kopii zapasowych. Archiwizacja maszyn wirtualnych powinna być realizowana bezagentowo na poziomie hypervisora, co eliminuje narzut wydajnościowy na system gościa.
Kopie zapasowe należy wykonywać w sposób spójny aplikacyjnie (application-consistent backup) i przesyłać w formie zaszyfrowanej do odizolowanych repozytoriów obiektowych (np. S3). Integralną częścią polityki kopii zapasowych są regularne testy odzyskiwania danych (disaster recovery drills), które weryfikują rzeczywisty czas przywrócenia systemów do pracy.
Zarządzanie tożsamością i dostępem (Identity and Access Management – IAM)
Nadawanie uprawnień do zarządzania wirtualnymi maszynami na poziomie platformy chmurowej powinno być precyzyjnie kontrolowane przez systemy IAM. Dostęp do konsoli administracyjnej, interfejsów API oraz uprawnień do modyfikacji zasobów (tworzenie, usuwanie, zmiana parametrów maszyn) musi opierać się na rolach (Role-Based Access Control – RBAC).
Każdemu użytkownikowi i aplikacji integrującej się poprzez API należy przydzielać wyłącznie minimalny zakres uprawnień niezbędny do wykonania określonych zadań, eliminując stosowanie wspólnych kont administracyjnych.
Uwierzytelnianie wieloskładnikowe (MFA) i bezpieczny dostęp zdalny
Dostęp administracyjny do panelu zarządzania chmurą oraz bezpośrednie logowanie do maszyn wirtualnych wymaga stosowania silnych metod uwierzytelniania. Obowiązkowe wdrożenie uwierzytelniania wieloskładnikowego (MFA) dla wszystkich kont użytkowników w systemie IAM minimalizuje ryzyko przejęcia kontroli nad infrastrukturą w wyniku wycieku haseł.
Do bezpośredniego zarządzania maszynkami wirtualnymi poprzez protokoły SSH lub RDP nie należy używać haseł tekstowych – standardem jest uwierzytelnianie oparte na parach kluczy kryptograficznych oraz realizacja połączeń wyłącznie poprzez dedykowane serwery przesiadkowe (Bastion Hosts) lub tunele VPN.
Szyfrowanie danych w spoczynku i w locie (Encryption)
Ochrona poufności danych wymaga stosowania algorytmów kryptograficznych na każdym etapie ich przetwarzania. Szyfrowanie danych w locie (in-transit) chroni pakiety przed podsłuchem w sieci i realizowane jest za pomocą protokołów TLS oraz IPsec.
Szyfrowanie danych w spoczynku (at-rest) zabezpiecza fizyczne nośniki danych przed nieautoryzowanym odczytem w przypadku ich utraty lub kradzieży. W tym celu stosuje się pełne szyfrowanie wirtualnych dysków (np. dm-crypt/LUKS w systemach Linux lub BitLocker w Windows) bądź szyfrowanie wolumenów na poziomie rozproszonej macierzy pamięci masowej chmury z wykorzystaniem kluczy zarządzanych centralnie przez systemy KMS.
Nawigacja po przewodniku
← Poprzedni rozdział: 9. Jak dobrać odpowiednią wirtualną maszynę?
Następny rozdział: 11. Wirtualna maszyna w chmurze – naturalny kierunek rozwoju infrastruktury IT →
