Openshift - SCC

Oryginalnym autorem tej strony jest Guillaume

Definicja

W kontekście OpenShift, SCC oznacza Security Context Constraints. Security Context Constraints to zasady kontrolujące uprawnienia dla podów uruchamianych na klastrach OpenShift. Określają one parametry bezpieczeństwa, na podstawie których pod może być uruchomiony, w tym jakie czynności może wykonywać i do jakich zasobów ma dostęp.

SCC pomagają administratorom egzekwować polityki bezpieczeństwa w całym klastrze, zapewniając, że pod'y są uruchamiane z odpowiednimi uprawnieniami i przestrzegają standardów bezpieczeństwa organizacyjnego. Te ograniczenia mogą określać różne aspekty bezpieczeństwa poda, takie jak:

  1. Linux capabilities: Ograniczanie dostępnych możliwości kontenerów, takich jak zdolność do wykonywania uprzywilejowanych czynności.

  2. Kontekst SELinux: Wymuszanie kontekstów SELinux dla kontenerów, które określają, w jaki sposób procesy współdziałają z zasobami w systemie.

  3. System plików tylko do odczytu: Zapobieganie modyfikacji plików w określonych katalogach przez kontenery.

  4. Dozwolone katalogi i woluminy hosta: Określanie, które katalogi i woluminy hosta może zamontować pod.

  5. Uruchamianie jako UID/GID: Określanie identyfikatorów użytkownika i grupy, pod którymi działa proces kontenera.

  6. Polityki sieciowe: Kontrolowanie dostępu do sieci dla podów, takie jak ograniczanie ruchu wychodzącego.

Konfigurując SCC, administratorzy mogą zapewnić, że pod'y są uruchamiane z odpowiednim poziomem izolacji bezpieczeństwa i kontroli dostępu, zmniejszając ryzyko podatności na ataki lub nieautoryzowany dostęp w klastrze.

W zasadzie za każdym razem, gdy żądane jest wdrożenie poda, wykonywany jest proces przyjęcia, jak pokazano poniżej:

Ta dodatkowa warstwa bezpieczeństwa domyślnie zabrania tworzenia uprzywilejowanych podów, montowania systemu plików hosta lub ustawiania jakichkolwiek atrybutów, które mogłyby prowadzić do eskalacji uprawnień.

Pod Escape Privileges

Lista SCC

Aby wyświetlić wszystkie SCC za pomocą klienta Openshift:

$ oc get scc #List all the SCCs

$ oc auth can-i --list | grep securitycontextconstraints #Which scc user can use

$ oc describe scc $SCC #Check SCC definitions

Wszyscy użytkownicy mają dostęp do domyślnych SCC "restricted" i "restricted-v2", które są najbardziej restrykcyjnymi SCCs.

Użyj SCC

SCC używane dla poda jest zdefiniowane wewnątrz adnotacji:

$ oc get pod MYPOD -o yaml | grep scc
openshift.io/scc: privileged

Gdy użytkownik ma dostęp do wielu SCC, system będzie korzystał z tego, który jest zgodny z wartościami kontekstu bezpieczeństwa. W przeciwnym razie spowoduje to błąd zakazany.

$ oc apply -f evilpod.yaml #Deploy a privileged pod
Error from server (Forbidden): error when creating "evilpod.yaml": pods "evilpod" is forbidden: unable to validate against any security context constrain

Pomijanie SCC

OpenShift - SCC bypass

Odnośniki

Last updated