Zugriff auf System-Ressourcen mit Docker

Abgeschottet

Docker bietet die Isolation von Anwendungen in bestimmten Laufzeitumgebungen. Das erinnert häufig an Virtualisierung und dort verwendete virtuelle Maschinen. Da Docker jedoch ein anderes Prinzip zur Virtualisierung verwendet, können insbesondere Security-Aspekte in vielen Fällen nicht ohne weiteres eingehalten werden und falls doch, führt dies zu einer Einschränkung der Funktionalität des Containers. In unserem Security-Tipp beschreiben wir, wie Capabilities und Policies den Zugriff auf System-Ressourcen erlauben.
Container sind derzeit in aller Munde, allen voran Docker. In der September-Ausgabe beleuchtet IT-Administrator, was die Technologie für Admins im Unternehmen ... (mehr)

Docker und andere Container-Virtualisierer isolieren Prozesse mittels Control-Groups (CGroups) und Namespaces. Die Basis dieser Funktionalität wurde Anfang 2008 in den Linux-Kernel 2.6 integriert und seitdem immer wieder aktualisiert und erweitert. CGroups erlauben das Einschränken von Prozessen hinsichtlich Betriebssystem-Ressourcen sowie CPU- und IO-Nutzung. Zusätzlich gibt es Userspace-Tools in der Bibliothek "libcgroup" für das Management der CGroups, die Accounting und Zustandskontrolle der Prozesse erlauben.

CGroups werden ergänzt durch die Fähigkeiten des Linux-Kernels, Prozessen in Namespaces Zugriff auf Gruppen von Ressourcen zu ermöglichen. Namespaces gibt es beispielsweise für Benutzer und Gruppen, Prozess-IDs, Netzwerkzugriff inklusive IPTables und Routing, Dateisysteme und Verzeichnisstrukturen sowie Interprozesskommunikation. Wie Namespaces grundsätzlich funktionieren, können Sie mit den folgenden Befehlen beispielsweise für PIDs ausprobieren:

$ sudo unshare --pid --fork --mount-proc bash
...

Der komplette Artikel ist nur für Abonnenten des ADMIN Archiv-Abos verfügbar.

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023