So verwenden Sie den docker scout policy-Befehl zur Bewertung von Image-Policies

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 den Befehl docker scout policy verwenden, um Image-Policies (Bildrichtlinien) zu evaluieren. Sie werden verschiedene Szenarien für die Policy-Evaluation untersuchen, darunter die Bewertung von Policies für ein bestimmtes Image, die Bewertung von Policies für eine bestimmte Organisation, die Bewertung von Policies für ein Image mit einer bestimmten Plattform und der Vergleich von Policy-Ergebnissen für ein Repository in einer bestimmten Umgebung.

Durch praktische Übungen gewinnen Sie praktische Erfahrungen in der Verwendung von docker scout policy, um die Compliance und die Sicherheitslage Ihrer Docker-Images auf der Grundlage definierter Policies zu bewerten.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/ImageOperationsGroup -.-> docker/images("List Images") subgraph Lab Skills docker/pull -.-> lab-555208{{"So verwenden Sie den docker scout policy-Befehl zur Bewertung von Image-Policies"}} docker/images -.-> lab-555208{{"So verwenden Sie den docker scout policy-Befehl zur Bewertung von Image-Policies"}} end

Bewertung von Policies für ein bestimmtes Image

In diesem Schritt lernen Sie, wie Sie Policies für ein bestimmtes Docker-Image bewerten. Dies ist eine grundlegende Operation bei der Arbeit mit Image-Sicherheit und -Compliance. Wir werden ein einfaches Beispiel-Image verwenden, um den Prozess zu demonstrieren.

Zunächst laden wir ein Beispiel-Image herunter, das wir für die Bewertung verwenden werden. Wir verwenden das hello-world-Image von Docker Hub. Dies ist ein sehr kleines Image, das einfach "Hello from Docker!" ausgibt und dann beendet.

docker pull hello-world

Sie sollten eine Ausgabe sehen, die anzeigt, dass das Image heruntergeladen wird.

Using default tag: latest
latest: Pulling from library/hello-world
...
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest

Jetzt, da wir das Image haben, können wir Policies für es bewerten. Der genaue Befehl und das Tool für die Policy-Bewertung hängen vom von Ihnen verwendeten Policy-Engine (Richtlinienmotor) ab. Zu Zwecken dieses Labs gehen wir davon aus, dass Sie ein hypothetisches Policy-Bewertungstool namens policy-eval verwenden.

Um Policies für das hello-world-Image zu bewerten, würden Sie normalerweise einen ähnlichen Befehl wie diesen ausführen:

## Dies ist ein hypothetischer Befehl und wird in dieser Umgebung nicht funktionieren.
## Er wird hier nur zur Veranschaulichung gezeigt.
## policy-eval evaluate --image hello-world:latest

Da in dieser Umgebung kein spezielles Policy-Bewertungstool installiert ist, simulieren we den Prozess, indem wir überprüfen, ob das Image lokal vorhanden ist, was eine Voraussetzung für die Bewertung ist.

Um zu überprüfen, ob das hello-world-Image auf Ihrem System vorhanden ist, können Sie den Befehl docker images verwenden und die Ausgabe filtern.

docker images | grep hello-world

Wenn das Image erfolgreich heruntergeladen wurde, sollten Sie eine ähnliche Ausgabe wie diese sehen, die das Repository, das Tag, die Image-ID, die Erstellungszeit und die Größe des hello-world-Images anzeigt.

hello-world   latest    <image_id>   <creation_time>   <size>

Dies bestätigt, dass das Image für die Policy-Bewertung verfügbar ist. In einer realen Situation wäre der nächste Schritt, den eigentlichen Policy-Bewertungsbefehl mit Ihrem gewählten Tool auszuführen.

Bewertung von Policies für ein Image einer bestimmten Organisation

In diesem Schritt lernen Sie, wie Sie Policies für ein Docker-Image bewerten, das einer bestimmten Organisation gehört. Im Kontext von Docker Hub und anderen Container-Registries werden Images oft unter Benutzer- oder Organisations-Namespaces (Namensräumen) organisiert. Dies ermöglicht eine bessere Verwaltung und Zugangskontrolle.

Um dies zu demonstrieren, laden wir ein Image von einer bestimmten Organisation auf Docker Hub herunter. Wir verwenden das ubuntu-Image, das von der library-Organisation (die offiziellen Images) gepflegt wird.

docker pull ubuntu

Sie sollten eine Ausgabe sehen, die den Downloadfortschritt anzeigt.

Using default tag: latest
latest: Pulling from library/ubuntu
...
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest

Beachten Sie, dass der Image-Name ubuntu ist, aber beim Herunterladen wird es oft als library/ubuntu bezeichnet. Dieser library-Teil repräsentiert die Organisation. Wenn Sie Policies für Images einer bestimmten Organisation bewerten, geben Sie normalerweise den vollständigen Image-Namen einschließlich des Organisationsnamens an.

Ähnlich wie im vorherigen Schritt hängt der genaue Befehl für die Policy-Bewertung von Ihrem Policy-Engine (Richtlinienmotor) ab. Ein hypothetischer Befehl könnte so aussehen:

## Dies ist ein hypothetischer Befehl und wird in dieser Umgebung nicht funktionieren.
## Er wird hier nur zur Veranschaulichung gezeigt.
## policy-eval evaluate --image library/ubuntu:latest --organization library

Da wir kein spezielles Policy-Bewertungstool haben, überprüfen wir erneut, ob das ubuntu-Image von der library-Organisation lokal vorhanden ist.

Verwenden Sie den Befehl docker images und filtern Sie nach ubuntu.

docker images | grep ubuntu

Sie sollten eine ähnliche Ausgabe wie diese sehen, die die Anwesenheit des ubuntu-Images bestätigt.

ubuntu        latest    <image_id>   <creation_time>   <size>

Dies zeigt an, dass das Image von der library-Organisation für die Policy-Bewertung verfügbar ist. Die Bewertung von Policies basierend auf der Organisation ist entscheidend für die Durchsetzung organisationsspezifischer Sicherheits- und Compliance-Anforderungen.

Bewertung von Policies für ein Image mit einer bestimmten Plattform

In diesem Schritt lernen Sie, wie Sie Policies für ein Docker-Image bewerten, das für eine bestimmte Plattform gebaut wurde. Docker-Images können für verschiedene Architekturen und Betriebssysteme (Plattformen) gebaut werden, wie z. B. linux/amd64, linux/arm64, windows/amd64 usw. Bei der Bewertung von Policies ist es wichtig, die Zielplattform des Images zu berücksichtigen, da Schwachstellen und Compliance-Anforderungen je nach Plattform variieren können.

Um dies zu demonstrieren, versuchen wir, ein Image für eine bestimmte Plattform herunterzuladen. Wir verwenden das alpine-Image, eine leichte Linux-Distribution, und geben die linux/arm64-Plattform an.

docker pull --platform linux/arm64 alpine

Sie sollten eine Ausgabe sehen, die den Downloadprozess für die angegebene Plattform anzeigt.

Using default tag: latest
latest: Pulling from library/alpine
...
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest

Auch wenn Sie linux/arm64 angegeben haben, kann Docker das Image für die Architektur Ihres Hosts herunterladen, wenn ein Multi-Architektur-Image verfügbar ist und die angegebene Plattform kein spezielles Manifest hat. Der Befehl zeigt jedoch, wie Sie versuchen würden, ein Image für eine bestimmte Plattform herunterzuladen.

Bei der Bewertung von Policies für eine bestimmte Plattform hat Ihr Policy-Bewertungstool normalerweise eine Option, um die Zielplattform anzugeben. Ein hypothetischer Befehl könnte so aussehen:

## Dies ist ein hypothetischer Befehl und wird in dieser Umgebung nicht funktionieren.
## Er wird hier nur zur Veranschaulichung gezeigt.
## policy-eval evaluate --image alpine:latest --platform linux/arm64

Um zu überprüfen, ob Sie lokal ein alpine-Image haben (unabhängig von der speziellen Architektur, die Docker heruntergeladen hat), können Sie den Befehl docker images verwenden und nach alpine filtern.

docker images | grep alpine

Sie sollten eine ähnliche Ausgabe wie diese sehen, die die Anwesenheit des alpine-Images bestätigt.

alpine        latest    <image_id>   <creation_time>   <size>

Die Bewertung von Policies basierend auf der Image-Plattform ist unerlässlich, um sicherzustellen, dass Ihre Images für die spezifischen Umgebungen, in denen sie deployed (deployt) werden, compliant (konform) und sicher sind. Verschiedene Plattformen können unterschiedliche Systembibliotheken und Konfigurationen haben, was zu plattformspezifischen Schwachstellen führt.

Vergleich von Policy-Ergebnissen für ein Repository in einer bestimmten Umgebung

In diesem Schritt lernen Sie das Konzept des Vergleichs von Policy-Ergebnissen für Images innerhalb eines Repositorys kennen, möglicherweise über verschiedene Umgebungen hinweg. Obwohl wir ohne eine dedizierte Policy-Engine (Richtlinienmotor) keine tatsächlichen Policy-Vergleiche durchführen können, können wir den Prozess und die Voraussetzungen verstehen.

Ein "Repository" in Docker bezieht sich auf eine Sammlung verwandter Images, oft mit verschiedenen Tags (z. B. latest, 1.0, dev usw.). Beispielsweise enthält das ubuntu-Repository auf Docker Hub verschiedene Versionen des Ubuntu-Images.

Der Vergleich von Policy-Ergebnissen für ein Repository in einer bestimmten Umgebung umfasst typischerweise:

  1. Die Bewertung von Policies für mehrere Images innerhalb dieses Repositorys.
  2. Die Berücksichtigung der Umgebung, in der die Images deployed (deployt) werden (z. B. Entwicklung, Staging, Produktion). Verschiedene Umgebungen können unterschiedliche Policy-Anforderungen haben.
  3. Die Analyse und der Vergleich der Policy-Bewertungsberichte für die Images im Kontext der Zielumgebung.

Um das Vorhandensein mehrerer Images aus einem Repository zu simulieren, laden wir ein weiteres Tag des ubuntu-Images herunter. Wir laden das 20.04-Tag herunter.

docker pull ubuntu:20.04

Sie sollten eine Ausgabe sehen, die den Download des ubuntu:20.04-Images anzeigt.

20.04: Pulling from library/ubuntu
...
Status: Downloaded newer image for ubuntu:20.04
docker.io/library/ubuntu:20.04

Jetzt haben Sie zwei Images aus dem ubuntu-Repository: ubuntu:latest (das wir in einem vorherigen Schritt heruntergeladen haben) und ubuntu:20.04.

Um beide Images anzuzeigen, können Sie alle ubuntu-Images auflisten:

docker images | grep ubuntu

Sie sollten eine ähnliche Ausgabe wie diese sehen, die beide Tags zeigt:

ubuntu        latest    <image_id_latest>   <creation_time_latest>   <size_latest>
ubuntu        20.04     <image_id_20.04>    <creation_time_20.04>    <size_20.04>

In einem realen Policy-Vergleichsszenario würden Sie Policies sowohl für ubuntu:latest als auch für ubuntu:20.04 bewerten. Das Policy-Bewertungstool würde für jedes Image Berichte generieren. Anschließend würden Sie diese Berichte vergleichen, möglicherweise die Ergebnisse basierend auf den Anforderungen einer bestimmten Umgebung filtern oder analysieren (z. B. "Policies für die Produktionsumgebung").

Ein hypothetischer Befehl zum Vergleich von Policy-Ergebnissen könnte so aussehen:

## Dies ist ein hypothetischer Befehl und wird in dieser Umgebung nicht funktionieren.
## Er wird hier nur zur Veranschaulichung gezeigt.
## policy-eval compare --repository ubuntu --environment production

Da wir keinen tatsächlichen Vergleich durchführen können, wird die Überprüfung für diesen Schritt darauf abzielen, sicherzustellen, dass Sie lokal sowohl das ubuntu:latest- als auch das ubuntu:20.04-Image haben, die die erforderlichen Images für einen solchen Vergleich sind.

Zusammenfassung

In diesem Lab haben wir den grundlegenden Prozess der Bewertung von Policies für ein bestimmtes Docker-Image kennengelernt. Wir haben begonnen, indem wir ein Beispiel-Image, hello-world, heruntergeladen haben, um die Voraussetzung zu demonstrieren, dass das Image lokal vorhanden sein muss, bevor die Policy-Bewertung durchgeführt werden kann. Anschließend haben wir den Policy-Bewertungsprozess simuliert, indem wir die Anwesenheit des Images mit docker images überprüft haben. Dieser erste Schritt hat die Grundlage für das Verständnis gelegt, wie man ein bestimmtes Image für Policy-Prüfungen anvisiert.

Aufbauend auf der grundlegenden Bewertung haben wir untersucht, wie man Policy-Prüfungen verfeinern kann, indem man Faktoren wie die Organisation, zu der das Image gehört, und die spezifische Plattform, für die es gebaut wurde, berücksichtigt. Schließlich haben wir gelernt, wie man Policy-Bewertungsergebnisse für ein Repository über verschiedene Umgebungen hinweg vergleicht, was die Wichtigkeit des Kontexts bei der Durchsetzung von Policies und der Einhaltung von Vorschriften unterstreicht.