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 zulassen
push
- nicht zulassen
build
- 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.