Skip to content

Czym jest SecurityContext w Kubernetes?

Jest to mechanizm nakładania określonych reguł bezpieczeństwa na uruchamiane Pody lub kontenery. Możemy określać na poziomie Poda lub kontenera, jaki przykładowo użytkownik ma uruchamiać kontener (ID usera), jakie Linux Capabilities ma mieć podpięte lub usunięte.

Definiujemy to na poziomie Poda, lub kontenera (lub oba razem), lecz zawsze konfiguracja na poziomie kontenera jest ważniejsza.

Definicja Poda z SecurityContext

W przypadku poniżej będzie definicja Poda, który uruchamiany jest z wykorzystaniem innego konta, niż root.

apiVersion: v1
kind: Pod
metadata:
    name: <pod_name>
spec:
    securityContext:
        runAsUser: <ID_usera>
        ...
    containers:
        - name: <nazwa_kontenera>
          image: <image_kontenera>
          securityContext:
              capabilities:
                  add:["MAC_ADDRESS"] # przykład

Dodatkowo: capabilities może być konfigurowane tylko na poziomie kontenera.

Warning

Jest to best-practice w Kubernetes, przy uruchamianiu aplikacji. Należy jednak pamiętać, że konfiguracja ta w konfiguracji obrazu Dockera (USER w konfiguracji Dockerfile lub inne) musi być także zawarta.