Reduzieren Sie die Fähigkeiten eines Docker-Daemons

Reduzieren Sie die Fähigkeiten eines Docker-Daemons

Ich möchte die Funktionen meiner Docker-Daemons, die zum Ausführen von Produktionscontainern verwendet werden, reduzieren, um ihre Angriffsfläche zu verringern.

Ich möchte:

  • Begrenzen Sie die Pull-Vorgänge aus einem einzigen Register
  • nicht zulassenpush
  • nicht zulassenbuild
  • wahrscheinlich viele andere Funktionen nicht zulassen

Hierbei handelt es sich vermutlich um die Blockierung einiger Routen der REST-API des Daemons.

Ich habe das gelesenDocker-Dokumentation zur Reduzierung der Daemon-Angriffsflächeaber es sagt nichts über das Deaktivieren von Daemon-Funktionen.

Ist das möglich? Wie kann ich das machen?

Antwort1

Erstens entspricht der Zugriff auf die Docker-API normalerweise dem Root-Zugriff auf dem Host. Geben Sie Benutzern, denen Sie andernfalls nicht vertrauen würden, dass sie Root-Benutzer sind, keinen Zugriff auf diese API. Es wird an Rootless-Support gearbeitet, der mit der Docker-Engine allgemein verfügbar wird. Sie sollten dies also untersuchen, anstatt zu versuchen, die API zu sperren.

Die meisten Versuche, die Engine einzuschränken, bestehen darin, die Docker-API mit einer API auf höherer Ebene zu umschließen. Beispielsweise bieten Kubernetes, Docker EE und andere Abstraktionen auf höherer Ebene granulares RBAC, ohne direkten Zugriff auf die Docker-API zu gewähren.

Das heißt, Sie können die Docker-API wie gewünscht einschränken, indem SieAuthz-Plugin. Die einzige mir bekannte Open Source-Implementierung stammte ursprünglich vonDrehverschluss. In jüngerer ZeitOPA hat eine eigene Implementierung bereitgestellt. Bedenken Sie jedoch, dass jeder Benutzer mit diesem API-Zugriff dieses Plugin möglicherweise mit dem Root-Zugriff, den er ansonsten bei Docker hat, deaktivieren oder umgehen kann.

verwandte Informationen