Openshift - SCC
Reading time: 2 minutes
Der ursprüngliche Autor dieser Seite ist Guillaume
Definition
Im Kontext von OpenShift steht SCC für Security Context Constraints. Security Context Constraints sind Richtlinien, die Berechtigungen für Pods, die auf OpenShift-Clustern ausgeführt werden, steuern. Sie definieren die Sicherheitsparameter, unter denen ein Pod ausgeführt werden darf, einschließlich der Aktionen, die er ausführen kann, und der Ressourcen, auf die er zugreifen kann.
SCCs helfen Administratoren, Sicherheitsrichtlinien im gesamten Cluster durchzusetzen, indem sichergestellt wird, dass Pods mit angemessenen Berechtigungen ausgeführt werden und den organisatorischen Sicherheitsstandards entsprechen. Diese Einschränkungen können verschiedene Aspekte der Podsicherheit spezifizieren, wie zum Beispiel:
- Linux-Fähigkeiten: Einschränkung der für Container verfügbaren Fähigkeiten, wie die Fähigkeit, privilegierte Aktionen auszuführen.
- SELinux-Kontext: Durchsetzung von SELinux-Kontexten für Container, die definieren, wie Prozesse mit Ressourcen im System interagieren.
- Nur-Lese-Root-Dateisystem: Verhinderung von Änderungen an Dateien in bestimmten Verzeichnissen durch Container.
- Erlaubte Hostverzeichnisse und -volumes: Spezifizierung, welche Hostverzeichnisse und -volumes ein Pod einbinden kann.
- Ausführen als UID/GID: Spezifizierung der Benutzer- und Gruppen-IDs, unter denen der Containerprozess läuft.
- Netzwerkrichtlinien: Steuerung des Netzwerkzugriffs für Pods, wie z.B. Einschränkung des Egress-Verkehrs.
Durch die Konfiguration von SCCs können Administratoren sicherstellen, dass Pods mit dem angemessenen Maß an Sicherheitsisolierung und Zugriffskontrollen ausgeführt werden, wodurch das Risiko von Sicherheitsanfälligkeiten oder unbefugtem Zugriff innerhalb des Clusters verringert wird.
Grundsätzlich wird jedes Mal, wenn eine Pod-Bereitstellung angefordert wird, ein Zulassungsprozess wie folgt ausgeführt:

Diese zusätzliche Sicherheitsschicht verbietet standardmäßig die Erstellung von privilegierten Pods, das Einbinden des Host-Dateisystems oder das Setzen von Attributen, die zu einer Privilegieneskalation führen könnten.
Liste SCC
Um alle SCC mit dem Openshift-Client aufzulisten:
$ 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
Alle Benutzer haben Zugriff auf die Standard-SCC "restricted" und "restricted-v2", die die strengsten SCCs sind.
Verwendung von SCC
Die für ein Pod verwendete SCC ist in einer Annotation definiert:
$ oc get pod MYPOD -o yaml | grep scc
openshift.io/scc: privileged
Wenn ein Benutzer Zugriff auf mehrere SCCs hat, verwendet das System diejenige, die mit den Sicherheitskontextwerten übereinstimmt. Andernfalls wird ein Fehler "verboten" ausgelöst.
$ 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