Wie man den Befehl docker trust signer add verwendet, um einen Signaturgeber hinzuzufügen

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 für Docker-Repositories mithilfe von Docker Content Trust verwalten können. Wir beginnen damit, die aktuellen Signaturgeber eines Repositories zu untersuchen, um zu verstehen, wer autorisiert ist, Images zu signieren.

Nach der Untersuchung lernen Sie, wie Sie einen neuen Signaturgeber zu einem Repository hinzufügen können, indem Sie den Befehl docker trust signer add verwenden. Abschließend überprüfen Sie, ob der neue Signaturgeber erfolgreich hinzugefügt wurde, um sicherzustellen, dass eine weitere Entität nun Images für dieses Repository signieren kann.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") subgraph Lab Skills docker/inspect -.-> lab-555256{{"Wie man den Befehl docker trust signer add verwendet, um einen Signaturgeber hinzuzufügen"}} end

Untersuchung der aktuellen Signaturgeber 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 der von Ihnen verwendeten Images zu überprüfen. Signaturgeber sind Entitäten, die die Autorität haben, Images für ein bestimmtes Repository zu signieren.

Zunächst aktivieren wir Docker Content Trust. Dies geschieht, indem Sie die Umgebungsvariable DOCKER_CONTENT_TRUST auf 1 setzen.

export DOCKER_CONTENT_TRUST=1

Nachdem Content Trust aktiviert ist, wird Docker beim Herunterladen eines Images seine Signatur überprüfen. Wenn das Image nicht signiert ist oder die Signatur ungültig ist, wird der Downloadvorgang fehlschlagen.

Um die aktuellen Signaturgeber eines Repositories zu untersuchen, verwenden wir den Befehl docker trust signer. Wir werden die Signaturgeber für das library/ubuntu-Repository untersuchen, das ein bekanntes offizielles Image ist.

docker trust signer library/ubuntu

Dieser Befehl listet die Signaturgeber auf, die mit dem library/ubuntu-Repository verknüpft sind. Sie werden eine Ausgabe ähnlich der folgenden sehen, die den Namen des Signaturgebers und seine Schlüssel-ID anzeigt:

Signers for library/ubuntu

SIGNER              KEYS
DOCKER OFFICIAL     7000000000000000000000000000000000000000000000000000000000000000

Die Ausgabe zeigt, dass das library/ubuntu-Repository von "DOCKER OFFICIAL" mit einer bestimmten Schlüssel-ID signiert wird. Dies bestätigt, dass das Image, das Sie aus diesem Repository herunterladen, offiziell von Docker signiert ist.

Hinzufügen eines neuen Signaturgebers zum Repository

In diesem Schritt lernen wir, wie man einen neuen Signaturgeber zu einem Docker-Repository hinzufügt. Dies ist nützlich, wenn Sie einer anderen Partei oder einem anderen System erlauben möchten, Images für Ihr Repository zu signieren.

Bevor Sie einen Signaturgeber hinzufügen, müssen Sie einen Signierschlüssel haben. Wenn Sie keinen haben, können Sie ein neues Schlüsselpaar mit dem Befehl docker trust key generate generieren. In diesem Lab gehen wir davon aus, dass Sie ein Schlüsselpaar haben.

Um einen neuen Signaturgeber hinzuzufügen, verwenden wir den Befehl docker trust signer add. Dieser Befehl erfordert den Namen des neuen Signaturgebers, den Namen des Repositories und den Pfad zum öffentlichen Schlüssel des neuen Signaturgebers.

Erstellen wir zunächst eine Beispiel-Datei mit einem öffentlichen Schlüssel zu Demonstrationszwecken. In einer realen Situation würde dies der von dem neuen Signaturgeber bereitgestellte öffentliche Schlüssel sein.

echo "-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0AQICYQADggEPADRUb2tlbiBmb3IgYSB0ZXN0IHNpZ25lcg==
-----END PUBLIC KEY-----" > ~/project/new_signer.pub

Dieser Befehl erstellt eine Datei namens new_signer.pub in Ihrem ~/project-Verzeichnis mit einigen Beispiel-Inhalten für einen öffentlichen Schlüssel.

Fügen wir nun einen neuen Signaturgeber namens my-new-signer zu einem hypothetischen Repository your-dockerhub-user/my-image hinzu. Ersetzen Sie your-dockerhub-user durch Ihren Docker Hub-Benutzernamen, wenn Sie dies mit einem realen Repository tun würden. In diesem Lab verwenden wir einen Platzhalter.

docker trust signer add my-new-signer your-dockerhub-user/my-image --key ~/project/new_signer.pub

Sie werden aufgefordert, das Passwort für den Root-Schlüssel des Repositories einzugeben. Dies ist ein Sicherheitsmaßnahme, um sicherzustellen, dass nur autorisierte Benutzer Signaturgeber hinzufügen können. Da dies eine Lab-Umgebung ist und wir nicht mit einer realen Docker-Registrierung interagieren, können Sie ein Beispiel-Passwort eingeben.

Nachdem Sie das Passwort eingegeben haben, fügt der Befehl den neuen Signaturgeber zu den Vertrauensdaten des Repositories hinzu. Sie sollten eine Ausgabe sehen, die angibt, dass der Signaturgeber hinzugefügt wurde.

Adding signer "my-new-signer" to your-dockerhub-user/my-image...
Successfully added signer "my-new-signer" to your-dockerhub-user/my-image

Dieser Befehl aktualisiert die Vertrauensdaten für das angegebene Repository auf der Docker-Registrierung und fügt den öffentlichen Schlüssel des neuen Signaturgebers hinzu.

Überprüfen, ob der neue Signaturgeber hinzugefügt wurde

In diesem Schritt überprüfen wir, ob der neue Signaturgeber, den wir im vorherigen Schritt hinzugefügt haben, erfolgreich zu den Vertrauensdaten des Repositories hinzugefügt wurde.

Um dies zu tun, verwenden wir erneut den Befehl docker trust signer, genau wie wir es im ersten Schritt getan haben, um die ursprünglichen Signaturgeber zu untersuchen. Diesmal werden wir die Signaturgeber für das Repository untersuchen, zu dem wir den neuen Signaturgeber hinzugefügt haben.

Denken Sie daran, dass wir den Signaturgeber my-new-signer zu dem hypothetischen Repository your-dockerhub-user/my-image hinzugefügt haben. Lassen Sie uns die Signaturgeber für dieses Repository untersuchen. Denken Sie daran, your-dockerhub-user durch den Platzhalter zu ersetzen, den wir im vorherigen Schritt verwendet haben.

docker trust signer your-dockerhub-user/my-image

Dieser Befehl fragt die Docker-Registrierung nach den Vertrauensdaten, die mit dem your-dockerhub-user/my-image-Repository verknüpft sind, und listet alle Signaturgeber auf.

Sie sollten jetzt eine Ausgabe sehen, die sowohl den ursprünglichen Signaturgeber (falls es einen gab) als auch den neuen Signaturgeber my-new-signer, den Sie im vorherigen Schritt hinzugefügt haben, enthält. Die Ausgabe zeigt den Namen jedes Signaturgebers und seine entsprechende Schlüssel-ID.

Signers for your-dockerhub-user/my-image

SIGNER              KEYS
my-new-signer       <key ID of the new signer>

Das Vorhandensein von my-new-signer in der Ausgabe bestätigt, dass der Signaturgeber erfolgreich zu den Vertrauensdaten des Repositories hinzugefügt wurde. Dies bedeutet, dass Images, die mit dem öffentlichen Schlüssel, der mit my-new-signer verknüpft ist, signiert wurden, jetzt für dieses Repository als vertrauenswürdig angesehen werden, wenn Docker Content Trust aktiviert ist.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man Signaturgeber für Docker-Repositories mithilfe von Docker Content Trust verwaltet. Wir haben zunächst Docker Content Trust aktiviert, um die Integrität der Images und die Verifizierung der Herausgeber sicherzustellen. Anschließend haben wir geübt, die aktuellen Signaturgeber eines Repositories, insbesondere des library/ubuntu-Images, mit dem Befehl docker trust signer zu untersuchen. Dieser Befehl hat den vorhandenen Signaturgeber und seine Schlüssel-ID angezeigt.

Nach der Untersuchung haben wir uns dann dem Prozess des Hinzufügens eines neuen Signaturgebers zu einem Repository mit dem Befehl docker trust signer add gewidmet. Dieser Schritt ist entscheidend, um anderen Einheiten zu ermöglichen, Images für ein bestimmtes Repository zu signieren. Obwohl die vollständigen Details zum Hinzufügen eines Signaturgebers im Auszug nicht angegeben wurden, ist das Ziel des Labs, diese Fähigkeit zu demonstrieren. Der letzte Schritt, die Hinzufügung des neuen Signaturgebers zu überprüfen, würde darin bestehen, die Signaturgeber des Repositories erneut zu untersuchen, um zu bestätigen, dass der neu hinzugefügte Signaturgeber aufgeführt ist und so den erfolgreichen Abschluss des Prozesses sicherzustellen.