Heim > Artikel > Betrieb und Instandhaltung > Was sind die Sicherheitsfunktionen von Docker?
Docker-Sicherheitsfunktionen umfassen: 1. Verschlüsselte Knoten-ID; 2. TLS-basierter Authentifizierungsmechanismus; 4. CA-Konfiguration, die die automatische Erneuerung von Zertifikaten unterstützt; 6. Verschlüsselungsnetzwerk; 7. Docker-Sicherheitsscan; 8. Docker-Inhaltsvertrauen; 9. Docker-Schlüssel usw.
Die Betriebsumgebung dieses Tutorials: Linux5.9.8-System, Docker-1.13.1-Version, Dell G3-Computer.
Die Docker-Plattform führt auch eine Vielzahl eigener Sicherheitstechnologien ein. Der Schwarmmodus basiert auf TLS und ist äußerst einfach und flexibel zu konfigurieren. Sicherheitsscans scannen Bilder auf binärer Quellcodeebene und liefern detaillierte Berichte über bekannte Schwachstellen.
Mit Docker Content Trust können Benutzer Inhalte signieren und zertifizieren, und Schlüssel sind jetzt erstklassige Bürger in Docker. Docker legt angemessene Standardwerte für diese Sicherheitstechnologien fest, Benutzer können jedoch auch die Konfiguration ändern oder diese Sicherheitstechnologien deaktivieren.
Schwarmmodus
Der Schwarmmodus ist der zukünftige Trend von Docker. Im Schwarmmodus können Benutzer mehrere Docker-Hosts in einem Cluster verwalten und Anwendungen deklarativ bereitstellen.
Jeder Schwarm besteht aus Manager- und Worker-Knoten, und die Knoten können Linux oder Windows sein. Der Managerknoten bildet die Kontrollschicht im Cluster und ist für die Clusterkonfiguration und Arbeitslastverteilung verantwortlich. Worker-Knoten sind Container, die Anwendungscode ausführen.
Wie erwartet enthält der Schwarmmodus viele Sicherheitsfunktionen von Haus aus und legt gleichzeitig sinnvolle Standardeinstellungen fest. Zu diesen Sicherheitsfunktionen gehören die folgenden.
Verschlüsselte Knoten-ID.
TLS-basierter Authentifizierungsmechanismus.
Sicheres Zugriffstoken.
Unterstützt die CA-Konfiguration für die regelmäßige automatische Aktualisierung von Zertifikaten.
Verschlüsselter Clusterspeicher (Konfigurations-DB).
Verschlüsseltes Netzwerk.
Docker Security Scan
Die Fähigkeit, Codefehler schnell zu finden, ist entscheidend. Docker Security Scanning erleichtert das Erkennen bekannter Schwachstellen in Docker-Images.
Docker-Sicherheitsscans sind jetzt für private Repository-Images auf Docker Hub verfügbar. Gleichzeitig kann diese Technologie auch als Teil der Bereitstellungslösung für die Lokalisierung vertrauenswürdiger Docker-Dienste verwendet werden. Schließlich wurden alle offiziellen Docker-Images einem Sicherheitsscan unterzogen und Scanberichte sind in ihren Repositorys verfügbar.
Der Docker-Sicherheitsscan scannt Docker-Images auf Binärcodeebene und vergleicht die darin enthaltene Software mit einer Datenbank bekannter Schwachstellen (CVE-Datenbank). Nach Abschluss des Scans wird ein detaillierter Bericht erstellt.
Öffnen Sie einen Browser, um Docker Hub zu besuchen und nach dem Alpine-Repository zu suchen. Das Bild unten zeigt die Registerkarte „Tags“ des offiziellen Alpine-Repositorys.
Das Alpine-Lager ist ein offizielles Lager, was bedeutet, dass das Lager automatisch entsprechende Berichte scannt und erstellt. Wie Sie sehen können, haben die Bilder mit den Bild-Tags „edge“, „lates“ und „3.6“ alle die Prüfung auf bekannte Fehler bestanden. Allerdings weist das Bild alpine:3.5 bekannte Mängel auf (rot markiert).
Wenn Sie das Bild alpine:3.5 öffnen, finden Sie die detaillierten Informationen wie unten dargestellt.
Dies ist eine einfache Möglichkeit, die Details bekannter Fehler in Ihrer eigenen Software zu ermitteln.
Docker Trusted Registry (DTR) ist Teil des lokalisierten Image Warehouse-Dienstes in der Docker Enterprise Edition. Es bietet die gleichen Funktionen und ermöglicht Benutzern außerdem die Steuerung des Timings und der Scanmethoden für das Scannen von Bildern.
Mit DTR können Benutzer beispielsweise auswählen, ob das Bild beim Drücken automatisch das Scannen auslösen soll oder ob dies nur manuell ausgelöst werden kann. Gleichzeitig ermöglicht DTR Benutzern auch die manuelle Aktualisierung der CVE-Datenbank. Dies ist eine ideale Lösung für Szenarien, in denen DTL keine Verbindung zum Internet herstellen kann, um CVE-Daten automatisch zu aktualisieren.
Dies ist ein Docker-Sicherheitsscan, eine großartige Möglichkeit, genau zu erkennen, ob Docker-Images bekannte Sicherheitslücken aufweisen. Mit größerer Fähigkeit geht natürlich auch eine größere Verantwortung einher. Wenn Benutzer Mängel entdecken, müssen sie die Verantwortung für die Behebung der entsprechenden Mängel tragen.
Docker Content Trust
Dockr Content Trust (Docker Content Trust, DCT) erleichtert Benutzern die Bestätigung der Integrität heruntergeladener Bilder und ihrer Herausgeber. Dies ist wichtig, wenn Sie Bilder in einer nicht vertrauenswürdigen Netzwerkumgebung herunterladen.
Auf hoher Ebene ermöglicht DCT Entwicklern, im Docker Hub oder Docker Trusted Services veröffentlichte Bilder zu signieren. Wenn diese Bilder abgerufen werden, wird der Signaturstatus automatisch bestätigt. Das Bild unten veranschaulicht diesen Vorgang.
DCT kann auch wichtigen Kontext bereitstellen, z. B. ob das Bild signiert wurde und in Produktionsumgebungen verwendet werden kann, ob das Bild durch eine neue Version ersetzt wurde und veraltet ist usw.
Der von DTC bereitgestellte Kontext steckt noch in den Kinderschuhen und ist recht komplex zu konfigurieren. Um die DCT-Funktionalität auf einem Docker-Host zu aktivieren, müssen Sie lediglich die Variable DOCKER_CONTENT_TRUST in Ihrer Umgebung auf 1 setzen.
$ export DOCKER_CONTENT_TRUST=1
In tatsächlichen Umgebungen möchten Benutzer diese Funktion möglicherweise standardmäßig im System aktivieren.
Wenn Sie die einheitliche Docker-Konfigurationsschicht (Teil der Docker Enterprise Edition) verwenden, müssen Sie das Kontrollkästchen „Nur signierte Bilder ausführen“ aktivieren, wie in der Abbildung unten gezeigt. Dadurch werden alle Knoten im UCP-Cluster gezwungen, nur signierte Bilder auszuführen.
Wie aus der obigen Abbildung ersichtlich ist, wird UCP auf der Grundlage von DCT weiter gekapselt, um Sicherheitspräferenzinformationen für signierte Bilder bereitzustellen. Beispielsweise können Benutzer eine solche Anforderung haben: Nur von Secops signierte Bilder können in einer Produktionsumgebung verwendet werden.
Sobald die DCT-Funktion aktiviert ist, können nicht signierte Bilder nicht mehr abgerufen und verwendet werden. Die folgende Abbildung zeigt den Fehler, der gemeldet wird, wenn versucht wird, ein unsigniertes Image erneut über die Docker-CLI oder die UCP-Web-UI-Schnittstelle abzurufen, nachdem DCT aktiviert wurde (in beiden Beispielen wird versucht, das Image mit der Bezeichnung „unsigned“ abzurufen).
Das Bild unten zeigt, wie DCT verhindert, dass der Docker-Client ein manipuliertes Image abruft.
Das Bild unten zeigt, wie DCT verhindert, dass Clients alte Bilder abrufen.
Docker Content Trust ist eine sehr wichtige Technologie, die Benutzern dabei helfen kann, die vom Docker-Dienst abgerufenen Bilder zu überprüfen. Der Grundmodus dieser Technologie ist sehr einfach zu konfigurieren, aber einige erweiterte Funktionen wie der Kontext sind zu diesem Zeitpunkt noch sehr kompliziert zu konfigurieren.
Docker Key
Viele Anwendungen erfordern Schlüssel. Wie Passwörter, TLS-Zertifikate, SSH-Schlüssel usw.
Vor Docker-Version 1.13 gab es keine standardmäßige und sichere Möglichkeit, Schlüssel zwischen Anwendungen auszutauschen. Eine gängige Methode für Entwickler besteht darin, den Schlüssel als Text in eine Umgebungsvariable zu schreiben. Das ist alles andere als ideal.
Docker1.13 führt Docker-Schlüssel ein und macht Schlüssel zu erstklassigen Bürgern im Docker-Ökosystem. Beispielsweise wurde ein neuer Unterbefehl „Docker Secret“ zum Verwalten von Schlüsseln hinzugefügt. Es gibt auch einen speziellen Ort zum Erstellen und Verwalten von Schlüsseln in der UCP-Schnittstelle von Docker.
Im Hintergrund wird der Schlüssel nach der Erstellung und während der Übertragung verschlüsselt, bei Verwendung im Speicherdateisystem eingehängt und ist nur für autorisierte Dienste zugänglich. Dies ist wirklich eine umfassende End-to-End-Lösung.
Das Bild unten zeigt den Gesamtprozess.
Jeder Schritt des im Bild oben gezeigten Workflows wird der Reihe nach vorgestellt.
1) Der Schlüssel wird erstellt und an Swarm gesendet.
2) Der Schlüssel wird im Cluster-Speicher gespeichert und verschlüsselt (jeder Manager-Knoten kann auf den Cluster-Speicher zugreifen).
3) Dienst B wird erstellt und der Schlüssel verwendet.
4) Der Prozess der Schlüsselübertragung an den Task-Knoten (Container) des B-Dienstes ist verschlüsselt.
5) Der Container von Dienst B entschlüsselt den Schlüssel und mountet ihn im Pfad /run/secrets. Dabei handelt es sich um ein temporäres In-Memory-Dateisystem (dieser Schritt unterscheidet sich in Windows Docker, da es in Windows kein Konzept für ein In-Memory-Dateisystem gibt).
6) Sobald der Container (Serviceaufgabe) abgeschlossen ist, wird das Speicherdateisystem geschlossen und der Schlüssel gelöscht.
7) Container im Service A können nicht auf den Schlüssel zugreifen.
Benutzer können Schlüssel über den Docker-Secret-Unterbefehl verwalten und einen Schlüssel für einen Dienst angeben, indem sie beim Ausführen des Docker-Service-Create-Befehls --secret anhängen.
Empfohlenes Lernen: „Docker-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas sind die Sicherheitsfunktionen von Docker?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!