- Wenn Anwendungen als Docker-Images erstellt und bereitgestellt werden, kann die Verwendung schwergewichtiger Basis-Images dazu führen, dass schon ein einzelner Download lange dauert oder dass sensible Daten enthalten sind, was Sicherheitsprobleme verursachen kann
- Methoden, um Docker-Images schlanker und sicherer zu machen
- Image-Größe reduzieren
- Je schlanker ein Docker-Image ist, desto schneller werden Anwendungen gebaut und bereitgestellt
- Dadurch kann häufiger und mehr deployt werden, was die Produktivität von Entwicklern erhöht
- Methoden
- Multi-Stage-Technik: Es werden mehrere Stages erstellt und jeweils separat gebaut, anschließend werden die Ergebnisse in das schlankste Image integriert
- Möglichst wenige
RUN-Befehle verwenden: RUN-Befehle erzeugen jeweils eigene Images. Um ihre Anzahl zu minimieren, werden in einem RUN-Befehl möglichst viele Skripte ausgeführt
- Unnötigen Source Code mit
.dockerignore ausschließen
README.md oder Testcode sind für den eigentlichen Build der Anwendung nicht erforderlich
.env-Dateien mit sensiblen Informationen wie API-Authentifizierungs-Tokens, .pem-Private-Key-Dateien und das .git-Verzeichnis mit der Git-Commit-Historie dürfen nicht in Docker-Images enthalten sein
- Damit solche Dateien nicht in Docker-Images aufgenommen werden, wird eine
.dockerignore-Datei erstellt
- Sichere Images erstellen
- Wenn Docker-Images Root-Rechte haben, kann das im Fall eines Angriffs gefährlich sein
- Methoden
- Exakte Image-Versionen verwenden: Wenn keine Version angegeben wird, wird automatisch die
latest-Version bezogen, sodass sich das Laufzeitverhalten je nach Situation unterscheiden kann
- Schreibrechte auf
/etc entfernen: /etc ist das Verzeichnis mit Systemkonfigurationsdateien und Skripten. Anwendungen müssen es in der Regel nicht verändern, daher ist es sinnvoll, Schreibrechte zu entziehen
- Alle ausführbaren Dateien entfernen: Bei Go reicht eine einzige ausführbare Datei zum Starten aus, daher werden alle anderen potenziell riskanten ausführbaren Dateien gelöscht
- Zu einem normalen Benutzer wechseln: Das Root-Konto kann alles im System ändern und kontrollieren. Deshalb wird ein Benutzer mit minimalen Rechten erstellt, sodass die Anwendung nur unter diesem Benutzer ausgeführt wird
- Schlanke Docker-Images entfalten Synergien, wenn CI/CD-Pipelines und agile Methoden zusammenkommen
- Mit sicheren Docker-Images lässt sich das Geschäft schützen und Risiken können im Vorfeld verhindert werden
Noch keine Kommentare.