Aby zapewnić bezpieczeństwo Kubernetesowi powinniśmy trzymać się zasady czterech C (4C).
Dostawca chmury / kolokacji (Cloud)
Wybierajmy sprawdzonych dostawców usług chmurowych czy serwerowych, czyli takich, którzy stawiają na pierwszym miejscu bezpieczeństwo usług. Stosujmy się do ich zaleceń związanych z ochroną przed zagrożeniami. Każdy z dostawców może nam zaoferować dodatkowe usługi, które podniosą bezpieczeństwo naszych zasobów.
Klaster Kubernetes (Cluster)
Zabezpieczanie dostępu do newralgicznych elementów klastra powinno być priorytetem. Dlatego stosujmy najlepsze praktyki, takie jak:
- kontrola dostępu poprzez role, ograniczanie dostępu (RBAC),
- autentykacja (najlepiej dwuetapowa lub w oparciu o zewnętrznego dostawcę),
- najlepsze praktyki związane z bezpieczeństwem podów,
- reguły sieciowe ograniczające ruch przychodzący i wychodzący w obrębie klastra do minimum,
- TLS (stosujmy szyfrowane połączenia pomiędzy komponentami jak i ruchem przychodzącym do klastra).
Kontener (Container)
Przy tworzeniu nowych obrazów powinniśmy dbać o to, by:
- nie podnosić niepotrzebnie uprawnień użytkowników do rangi super użytkowników,
- skanować stworzone obrazy w poszukiwaniu błędów bezpieczeństwa,
- podpisywać kryptograficznie stworzone obrazy,
- nie zezwalać na nadpisywanie obrazów w repozytorium.
Kod (Code)
Dbajmy o kod, który jest wdrażany na klaster:
- stosujmy TLS do nawiązywania wszystkich połączeń,
- wykonujmy statyczną analizę kodu,
- skanujmy kod w poszukiwaniu backdorów i błędów bezpieczeństwa,
- stosujmy podejście „zero trust”.