Wie man den Befehl docker trust signer remove verwendet, um Signaturgeber zu entfernen

DockerDockerBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie Signaturgeber (Signer) für Docker-Repositories mit dem Befehl docker trust signer remove verwalten können. Wir beginnen damit, die aktuellen Signaturgeber eines Repositories zu untersuchen, um die bestehenden Vertrauensbeziehungen zu verstehen.

Nach der Untersuchung üben Sie das Entfernen eines Signaturgebers aus einem einzelnen Repository und überprüfen dann, ob das Entfernen erfolgreich war. Abschließend lernen Sie, wie Sie einen Signaturgeber gleichzeitig aus mehreren Repositories entfernen und die Änderungen bestätigen können. In diesem Lab erhalten Sie praktische Erfahrungen in der Verwaltung des Inhaltsvertrauens (Content Trust) in Docker.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/ImageOperationsGroup -.-> docker/tag("Tag an Image") subgraph Lab Skills docker/inspect -.-> lab-555257{{"Wie man den Befehl docker trust signer remove verwendet, um Signaturgeber zu entfernen"}} docker/pull -.-> lab-555257{{"Wie man den Befehl docker trust signer remove verwendet, um Signaturgeber zu entfernen"}} docker/tag -.-> lab-555257{{"Wie man den Befehl docker trust signer remove verwendet, um Signaturgeber zu entfernen"}} end

Untersuchung der aktuellen Signaturgeber (Signer) eines Repositories

In diesem Schritt lernen wir, wie man die aktuellen Signaturgeber eines Docker-Repositories untersucht. Docker Content Trust ermöglicht es Ihnen, die Integrität und den Herausgeber aller von Ihnen verwendeten Images zu überprüfen. Wenn Content Trust aktiviert ist, stellt Docker sicher, dass die von Ihnen heruntergeladenen Images signiert sind.

Zunächst aktivieren wir Docker Content Trust. Dies können Sie tun, indem Sie die Umgebungsvariable DOCKER_CONTENT_TRUST auf 1 setzen.

export DOCKER_CONTENT_TRUST=1

Nachdem Content Trust aktiviert ist, wird Docker beim Umgang mit Images auf Signaturen prüfen. Um die Signaturgeber eines Repositories zu untersuchen, können Sie den Befehl docker trust inspect gefolgt vom Repository-Namen verwenden.

Lassen Sie uns die Signaturgeber für das ubuntu-Repository untersuchen.

docker trust inspect ubuntu

Sie sollten eine Ausgabe ähnlich der folgenden sehen, die die Signaturgeber und ihre Schlüssel anzeigt:

No signatures for ubuntu

Diese Ausgabe zeigt an, dass derzeit keine Signaturen für das ubuntu-Repository vorhanden sind. Dies ist für viele offizielle Images zu erwarten, es sei denn, sie haben Content Trust und Signaturen explizit aktiviert.

Versuchen wir es nun mit einem Repository, von dem bekannt ist, dass es Signaturen hat, wie z. B. docker/trusttest. Wir müssen das Image zuerst herunterladen, um sicherzustellen, dass wir die erforderlichen Metadaten haben.

docker pull docker/trusttest

Jetzt untersuchen wir die Signaturgeber für docker/trusttest.

docker trust inspect docker/trusttest

Sie sollten eine Ausgabe sehen, die die Signaturgeber und ihre Schlüssel auflistet, was darauf hinweist, dass dieses Repository signiert wurde. Die Ausgabe zeigt Informationen über die Targets- und Releases-Signaturgeber.

Signers of docker/trusttest:

ROLE         KEYS
----         ----
Releases     0a0d52c692a8b3459f3422732222222222222222222222222222222222222222: docker/trusttest

Signatures for docker/trusttest:

SIGNER     KEYS
------     ----
Releases   0a0d52c692a8b3459f3422732222222222222222222222222222222222222222: docker/trusttest

Diese Ausgabe bestätigt, dass das docker/trusttest-Repository signiert wurde und listet die mit den Signaturgebern verknüpften Schlüssel auf.

Entfernen eines Signaturgebers (Signer) aus einem einzelnen Repository

In diesem Schritt lernen wir, wie man einen Signaturgeber aus einem einzelnen Docker-Repository mithilfe von Docker Content Trust entfernt. Dies ist nützlich, wenn der Schlüssel eines Signaturgebers kompromittiert wurde oder ein Benutzer nicht länger autorisiert ist, Images für ein bestimmtes Repository zu signieren.

Um einen Signaturgeber zu entfernen, verwenden wir den Befehl docker trust signer remove. Dieser Befehl erfordert den Namen des zu entfernenden Signaturgebers und das Repository, aus dem er entfernt werden soll.

Lassen Sie uns den Releases-Signaturgeber aus dem docker/trusttest-Repository entfernen. Denken Sie an den vorherigen Schritt, in dem docker/trusttest einen Releases-Signaturgeber hatte.

docker trust signer remove Releases docker/trusttest

Wenn Sie diesen Befehl ausführen, werden Sie aufgefordert, die Entfernung zu bestätigen. Geben Sie y ein und drücken Sie die Eingabetaste, um fortzufahren.

Removing signer "Releases" from docker/trusttest. Are you sure you want to continue? (y/n): y

Nach der Bestätigung wird der Signaturgeber aus dem angegebenen Repository entfernt. Sie sollten eine Ausgabe sehen, die die erfolgreiche Entfernung anzeigt.

Successfully removed signer "Releases" from docker/trusttest

Dieser Befehl entfernt die Assoziation des öffentlichen Schlüssels des Releases-Signaturgebers mit dem docker/trusttest-Repository in den im Notary-Server gespeicherten Vertrauensdaten. Es wird nicht der Schlüssel des Signaturgebers selbst gelöscht, sondern nur seine Autorität, für dieses bestimmte Repository zu signieren.

Überprüfung der Entfernung des Signaturgebers

In diesem Schritt überprüfen wir, ob der Signaturgeber erfolgreich aus dem Repository entfernt wurde. Wir können dies tun, indem wir erneut den Befehl docker trust inspect verwenden, genau wie wir es im ersten Schritt getan haben.

Wir erwarten, dass nach der Entfernung des Releases-Signaturgebers aus docker/trusttest im vorherigen Schritt der Befehl docker trust inspect docker/trusttest Releases nicht mehr als Signaturgeber anzeigt.

Lassen Sie uns erneut die Signaturgeber für docker/trusttest untersuchen.

docker trust inspect docker/trusttest

Beobachten Sie die Ausgabe genau. Sie sollten jetzt feststellen, dass der Releases-Signaturgeber nicht mehr in der Signers-Sektion für docker/trusttest aufgeführt ist.

Signers of docker/trusttest:

ROLE         KEYS
----         ----
Targets      0a0d52c692a8b3459f3422732222222222222222222222222222222222222222: docker/trusttest

Signatures for docker/trusttest:

SIGNER     KEYS
------     ----
Releases   0a0d52c692a8b3459f3422732222222222222222222222222222222222222222: docker/trusttest

Beachten Sie, dass obwohl der Releases-Signaturgeber aus der Liste der autorisierten Signers entfernt wurde, die Signatures-Sektion möglicherweise immer noch Signaturen anzeigt, die von Releases erstellt wurden. Dies liegt daran, dass der remove-Befehl die Autorisierung des Signaturgebers, zukünftige Images zu signieren, entfernt, aber es nicht unbedingt sofort die vorhandenen Signaturen vom Notary-Server entfernt. Für den Zweck der Überprüfung der Entfernung der Rolle des Signaturgebers für das Repository reicht es jedoch aus, die Signers-Liste zu prüfen.

Das Fehlen von Releases in der Signers of docker/trusttest-Sektion bestätigt, dass der Signaturgeber erfolgreich aus diesem bestimmten Repository entfernt wurde.

Entfernen eines Signaturgebers aus mehreren Repositories

In diesem Schritt lernen wir, wie man mithilfe von Docker Content Trust einen Signaturgeber gleichzeitig aus mehreren Docker-Repositories entfernt. Dies ist effizient, wenn ein Signaturgeber für mehrere Repositories entmachtet werden muss.

Der Befehl docker trust signer remove ermöglicht es Ihnen, nach dem Namen des Signaturgebers mehrere Repositories anzugeben.

Nehmen wir an, wir haben ein weiteres Repository, sagen wir docker/another-trusttest, das ebenfalls den Releases-Signaturgeber hat. Um den Releases-Signaturgeber sowohl aus docker/trusttest als auch aus docker/another-trusttest mit einem einzigen Befehl zu entfernen, würden Sie beide Repository-Namen auflisten.

Zunächst laden wir das hello-world-Image herunter, um es als zweites Repository zu Demonstrationszwecken zu verwenden. Anschließend geben wir ihm einen Tag, um ein weiteres Repository zu simulieren.

docker pull hello-world
docker tag hello-world docker/another-trusttest

Jetzt entfernen wir den Releases-Signaturgeber sowohl aus docker/trusttest als auch aus docker/another-trusttest. Beachten Sie, dass docker/another-trusttest in der Realität möglicherweise nicht tatsächlich den Releases-Signaturgeber hat, aber dieser Befehl zeigt die Syntax für die Entfernung eines Signaturgebers aus mehreren Repositories.

docker trust signer remove Releases docker/trusttest docker/another-trusttest

Sie werden aufgefordert, die Entfernung für jedes Repository zu bestätigen. Geben Sie für jede Bestätigung y ein und drücken Sie die Eingabetaste.

Removing signer "Releases" from docker/trusttest. Are you sure you want to continue? (y/n): y
Successfully removed signer "Releases" from docker/trusttest
Removing signer "Releases" from docker/another-trusttest. Are you sure you want to continue? (y/n): y
Successfully removed signer "Releases" from docker/another-trusttest

Die Ausgabe bestätigt, dass der Releases-Signaturgeber aus beiden angegebenen Repositories entfernt wurde. Dieser Befehl ist eine bequeme Möglichkeit, die Signaturgeber-Autorisierungen für mehrere Repositories mit einer einzigen Aktion zu verwalten.

Überprüfung der Entfernung des Signaturgebers aus mehreren Repositories

In diesem Schritt überprüfen wir, ob der Signaturgeber erfolgreich aus beiden Repositories entfernt wurde, die im vorherigen Schritt angegeben wurden. Wir verwenden erneut den Befehl docker trust inspect für jedes Repository.

Zunächst untersuchen wir die Signaturgeber für docker/trusttest. Wir erwarten, dass der Releases-Signaturgeber immer noch nicht in der Signers-Liste aufgeführt ist, da wir ihn in einem vorherigen Schritt entfernt und die Entfernung bestätigt haben.

docker trust inspect docker/trusttest

Die Ausgabe sollte zeigen, dass Releases nicht unter Signers of docker/trusttest aufgeführt ist.

Signers of docker/trusttest:

ROLE         KEYS
----         ----
Targets      0a0d52c692a8b3459f3422732222222222222222222222222222222222222222: docker/trusttest

Signatures for docker/trusttest:

SIGNER     KEYS
------     ----
Releases   0a0d52c692a8b3459f3422732222222222222222222222222222222222222222: docker/trusttest

Jetzt untersuchen wir die Signaturgeber für docker/another-trusttest. Da wir versucht haben, den Releases-Signaturgeber auch aus diesem Repository zu entfernen, erwarten wir, dass er auch nicht in der Signers-Liste für dieses Repository aufgeführt ist.

docker trust inspect docker/another-trusttest

Die Ausgabe für docker/another-trusttest sollte anzeigen, dass es keine Signaturgeber gibt, da hello-world (das wir als docker/another-trusttest getaggt haben) standardmäßig nicht signiert ist und wir versucht haben, den Releases-Signaturgeber zu entfernen (der ursprünglich für diesen bestimmten Tag nicht vorhanden war).

No signatures for docker/another-trusttest

Dies bestätigt, dass der Befehl docker trust signer remove, wenn er mit mehreren Repository-Namen verwendet wird, versucht, den angegebenen Signaturgeber aus jedem aufgeführten Repository zu entfernen. Die Überprüfung für docker/trusttest zeigt die erfolgreiche Entfernung aus einem Repository, das zuvor den Signaturgeber hatte, und die Überprüfung für docker/another-trusttest zeigt den Zustand eines Repositories, das den Signaturgeber nicht hatte (und somit der Entfernungsversuch ihn nicht hinzugefügt hat).

Zusammenfassung

In diesem Lab haben wir gelernt, wie man Signaturgeber für Docker-Repositories mit dem Befehl docker trust verwaltet. Wir haben begonnen, indem wir Docker Content Trust aktiviert und die aktuellen Signaturgeber eines Repositories mit docker trust inspect untersucht haben. Dies hat es uns ermöglicht, zu sehen, welche Schlüssel mit der Signierung von Images in einem bestimmten Repository verknüpft sind.

Anschließend haben wir geübt, einen Signaturgeber aus einem einzelnen Repository zu entfernen und die Entfernung erneut mit docker trust inspect überprüft. Schließlich haben wir dieses Wissen erweitert, um einen Signaturgeber gleichzeitig aus mehreren Repositories zu entfernen und die erfolgreiche Entfernung in allen angegebenen Repositories bestätigt. Diese praktische Erfahrung hat die praktische Anwendung des Befehls docker trust signer remove zur Verwaltung des Inhaltsvertrauens in einer Docker-Umgebung gezeigt.