W tej chwili Ansible jest WIELKIE, podobnie jak inne rozwiązania do zarządzania konfiguracją, takie jak Puppet, SaltStack i tak dalej. W mojej firmie zarządzamy ponad 500 serwerami, a niektórzy wdrażają rozwiązanie Ansible, aby zminimalizować koszty zarządzania konfiguracją.
Jestem paranoikiem i zacząłem myśleć o tym, co właściwie można zrobić z serwera Ansible, jeśli ktoś nie ma racji.
Szukałem w Internecie, szukając najlepszych praktyk, zaostrzania bezpieczeństwa na serwerach Ansible i przeważnie znajduję artykuły o tym, w jaki sposób Ansible można wykorzystać do hartowania innych serwerów (oczywiście), a także znajduję ogólne zalecenia dotyczące hartowania serwera Linux, ponieważ Ansible działa w systemie Linux. To sprawiło, że pomyślałem, że ogólny pomysł posiadania scentralizowanego serwera zarządzania konfiguracją wiąże się z pewnym ryzykiem; czy jako haker lub niezadowolony pracownik nie byłbym w stanie uruchomić polecenia rm -rf /
na wszystkich serwerach lub podobnych za pomocą serwera Ansible?
Zasadniczo przypuszczam, że posiadanie segmentowanej sieci, w której testy, dev, pre-prod i prod są niedostępne dla siebie, oznaczałoby, że NAJMNIEJ miałbyś zainstalowany serwer Ansible dla każdego z tych środowisk, więc nie masz serwera, na którym zapora ogniowa umożliwia dostęp do wszystkich systemów. Myślę, że to przynajmniej zdrowy rozsądek.
Jednak pomysł serwera, który może skonfigurować CAŁĄ SIEĆ serwerów, jest szalony, jeśli myślisz o kimś, kto nie powinien, uzyskując dostęp do serwera Ansible.
Czy stworzyłoby się jakieś MFA, które uruchamia się przed uruchomieniem poleceń, czy też serwer Ansible nie byłby w stanie stworzyć własnych podręczników, a następnie podręczniki zostałyby zamontowane z serwera tylko do odczytu w innym miejscu, więc możliwości post-exploita przynajmniej wymagają od ciebie kontrolować więcej niż tylko serwer Ansible?
Czy umieszczamy serwer Ansible w zamkniętej sieci zarządzania, do której dostęp mają nawet pracownicy z MFA, specjalne wymagania dostępu, brak VPN, dostęp tylko u klienta itd.?
Czy też akceptujemy ryzyko i przechowujemy dobre kopie zapasowe oraz odpowiednio chronimy sieć i akceptujemy fakt, że w przypadku naruszenia bezpieczeństwa serwera Ansible zniszczenie może być nieuchronne?
Czy też całkowicie się mylę co do destrukcyjnych możliwości Ansible?
rm
może zarówno dobrze wyczyścić rzeczy, jak i przypadkowo usunąć cały system. Pomaga pewna dyscyplina w recenzowaniu i testowaniu zabaw, zanim zostaną one wykorzystane w produkcji. Tower zapewnia jeden ze sposobów dawania użytkownikom predefiniowanych zadań, ale zadania te nadal muszą być napisane i przetestowane, aby były bezpieczne.