View a markdown version of this page

Amazon Inspector SBOM-Generator - Amazon Inspector

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Amazon Inspector SBOM-Generator

Eine Softwareliste (SBOM) ist eine formal strukturierte Liste von Komponenten, Bibliotheken und Modulen, die für die Erstellung einer Software erforderlich sind. Der Amazon Inspector SBOM Generator (Sbomgen) ist ein Tool, das eine SBOM für Archive, Container-Images, Verzeichnisse, lokale Systeme sowie kompilierte und Binärdateien erstellt. Go Rust Sbomgenscannt nach Dateien, die Informationen über installierte Pakete enthalten. Wenn Sbomgen eine relevante Datei gefunden wird, werden Paketnamen, Versionen und andere Metadaten extrahiert. Sbomgenwandelt dann Paketmetadaten in eine CycloneDX SBOM um. Sie können Sbomgen es verwenden, um die CycloneDX SBOM als Datei oder in STDOUT zu generieren und SBOMs zur Schwachstellenerkennung an Amazon Inspector zu senden. Sie können es auch Sbomgen als Teil der CI/CD Integration verwenden, bei der Container-Images im Rahmen Ihrer Bereitstellungspipeline automatisch gescannt werden.

Amazon Inspector Sbomgen verwendet mehrere verwaltete Scanfunktionen. Wenn Amazon Inspector mithilfe der Amazon EBS-Volumenanalyse Amazon ECR-Container-Images , AWS Lambda-Funktionsscans und agentenlose Scans von Amazon Elastic Compute Cloud-Instances durchführt, wird im Sbomgen Hintergrund das Software-Inventar generiert, das für die Schwachstellenanalyse verwendet wird. Das auf dieser Seite beschriebene eigenständige Sbomgen Tool bietet dieselbe zugrunde liegende Technologie, sodass Sie die SBOM-Generierung direkt in Ihre Workflows integrieren können.

Unterstützte Pakettypen

Sbomgensammelt Inventar für die folgenden Pakettypen:

  • Alpine APK

  • Debian/Ubuntu DPKG

  • Red Hat RPM

  • C#

  • Go

  • Java

  • Node.js

  • PHP

  • Python

  • Ruby

  • Rust

Unterstützte Überprüfungen der Container-Image-Konfiguration

Sbomgenkann eigenständige Dockerfiles scannen und den Verlauf aus vorhandenen Images nach Sicherheitsproblemen erstellen. Weitere Informationen finden Sie unter Amazon Inspector Dockerfile-Checks.

Installation Gebomgen

Sbomgenist nur für Linux-Betriebssysteme verfügbar.

Sie müssen es Docker installiert haben, wenn Sie lokal zwischengespeicherte Bilder analysieren möchtenSbomgen. Dockerist nicht erforderlich, um Bilder zu analysieren, die als .tar Dateien exportiert wurden, oder Bilder, die in Remote-Container-Registern gehostet werden.

Amazon Inspector empfiehlt, dass Sie Sbomgen auf einem System mit mindestens den folgenden Hardwarespezifikationen arbeiten:

  • 4-Core-CPU

  • 8 GB RAM

Um zu installieren Sbomgen
  1. Laden Sie die neueste Sbomgen Zip-Datei von der richtigen URL für Ihre Architektur herunter:

    Linux AMD64: https://amazon-inspector-sbomgen.s3.amazonaws.com/latest/linux/amd64/inspector-sbomgen.zip

    Linux ARM64: https://amazon-inspector-sbomgen.s3.amazonaws.com/latest/linux/arm64/inspector-sbomgen.zip

    Alternativ können Sie frühere Versionen der Amazon Inspector SBOM Generator-ZIP-Datei herunterladen.

  2. Entpacken Sie den Download mit dem folgenden Befehl:

    unzip inspector-sbomgen.zip

  3. Suchen Sie im entpackten Verzeichnis nach den folgenden Dateien:

    • inspector-sbomgen— Dies ist das Tool, das Sie ausführen werden, um SBOMs zu generieren.

    • README.txt— Dies ist die Dokumentation zur VerwendungSbomgen.

    • LICENSE.txt— Diese Datei enthält die Softwarelizenz fürSbomgen.

    • licenses— Dieser Ordner enthält Lizenzinformationen für Pakete von Drittanbietern, die von verwendet werdenSbomgen.

    • checksums.txt— Diese Datei enthält Hashes des Sbomgen Tools.

    • sbom.json— Dies ist eine CycloneDX SBOM für das Tool. Sbomgen

    • WhatsNew.txt— Diese Datei enthält ein zusammengefasstes Änderungsprotokoll, sodass Sie wichtige Änderungen und Verbesserungen zwischen den Sbomgen Versionen schnell einsehen können.

  4. (Optional) Überprüfen Sie die Authentizität und Integrität des Tools mithilfe des folgenden Befehls:

    sha256sum < inspector-sbomgen

    1. Vergleichen Sie die Ergebnisse mit dem Inhalt der checksums.txt Datei.

  5. Gewähren Sie dem Tool mithilfe des folgenden Befehls die ausführbaren Berechtigungen:

    chmod +x inspector-sbomgen

  6. Stellen Sie mit Sbomgen dem folgenden Befehl sicher, dass die Installation erfolgreich abgeschlossen wurde:

    ./inspector-sbomgen --version

    Sie sollten eine Ausgabe sehen, die der folgenden ähnelt:

    Version: 1.X.X

Verwenden Sbomgen

In diesem Abschnitt werden verschiedene Verwendungsmöglichkeiten beschrieben. Sbomgen Anhand der integrierten Beispiele erfahren Sie mehr Sbomgen über die Verwendung. Führen Sie den folgenden list-examples Befehl aus, um sich diese Beispiele anzusehen:

./inspector-sbomgen list-examples

Generieren Sie eine SBOM für ein Container-Image und geben Sie das Ergebnis aus

Sie können Sbomgen es verwenden, um SBOMs für Containerbilder zu generieren und das Ergebnis in einer Datei auszugeben. Diese Funktion kann mit dem container Unterbefehl aktiviert werden.

Beispielbefehl

Im folgenden Snippet können Sie es image:tag durch die ID Ihres Bildes und output_path.json durch den Pfad zur Ausgabe, die Sie speichern möchten, ersetzen.

# generate SBOM for container image ./inspector-sbomgen container --image image:tag -o output_path.json
Anmerkung

Die Scanzeit und die Leistung hängen von der Bildgröße und der geringen Anzahl der Ebenen ab. Kleinere Bilder verbessern nicht nur die Sbomgen Leistung, sondern reduzieren auch die potenzielle Angriffsfläche. Kleinere Bilder verkürzen auch die Zeiten für die Erstellung, den Download und den Upload von Bildern.

Bei Verwendung von Sbomgen with ScanSbom verarbeitet die Amazon Inspector Scan API keine SBOMs, die mehr als 5.000 Pakete enthalten. In diesem Szenario gibt die Amazon Inspector Scan API eine HTTP 400-Antwort zurück.

Wenn ein Bild Massenmediendateien oder -verzeichnisse enthält, sollten Sie erwägen, diese von der Sbomgen Verwendung des --skip-files Arguments auszuschließen.

Beispiel: Häufige Fehlerfälle

Das Scannen von Container-Images kann aufgrund der folgenden Fehler fehlschlagen:

  • InvalidImageFormat— Tritt auf, wenn falsch formatierte Container-Images mit beschädigten TAR-Headern, Manifestdateien oder Konfigurationsdateien gescannt werden.

  • ImageValidationFailure— Tritt auf, wenn die Prüfsummen- oder Inhaltslängenvalidierung für Container-Image-Komponenten fehlschlägt, z. B. nicht übereinstimmende Content-Length Header, falsche Manifest-Digests oder fehlgeschlagene SHA256-Prüfsummenüberprüfung.

  • ErrUnsupportedMediaType— Tritt auf, wenn Image-Komponenten nicht unterstützte Medientypen enthalten. Informationen zu den unterstützten Medientypen finden Sie unter Unterstützte Betriebssysteme und Medientypen.

Amazon Inspector unterstützt den application/vnd.docker.distribution.manifest.list.v2+json Medientyp nicht. Amazon Inspector unterstützt jedoch Manifestlisten. Beim Scannen von Bildern, die Manifestlisten verwenden, können Sie mit dem --platform Argument explizit angeben, welche Plattform verwendet werden soll. Wenn das --platform Argument nicht angegeben wird, wählt der Amazon Inspector SBOM Generator das Manifest automatisch auf der Grundlage der Plattform aus, auf der es ausgeführt wird.

Generieren Sie eine SBOM aus Verzeichnissen und Archiven

Sie können es verwendenSbomgen, um SBOMs aus Verzeichnissen und Archiven zu generieren. Diese Funktion kann mit den archive Unterbefehlen directory oder aktiviert werden. Amazon Inspector empfiehlt, diese Funktion zu verwenden, wenn Sie eine SBOM aus einem Projektordner generieren möchten, z. B. aus einem heruntergeladenen Git-Repository.

Beispiel für Befehl 1

Der folgende Ausschnitt zeigt einen Unterbefehl, der eine SBOM aus einer Verzeichnisdatei generiert.

# generate SBOM from directory ./inspector-sbomgen directory --path /path/to/dir -o /tmp/sbom.json
Beispiel für Befehl 2

Der folgende Ausschnitt zeigt einen Unterbefehl, der eine SBOM aus einer Archivdatei generiert. Die einzigen unterstützten Archivformate sind, und. .zip .tar .tar.gz

# generate SBOM from archive file (tar, tar.gz, and zip formats only) ./inspector-sbomgen archive --path testData.zip -o /tmp/sbom.json

Generieren Sie eine SBOM aus Go oder Rust kompilierte Binärdateien

Sie können es verwendenSbomgen, um SBOMs aus kompilierten Go und Rust Binärdateien zu generieren. Sie können diese Funktion mit dem folgenden Unterbefehl aktivieren: binary

./inspector-sbomgen binary --path /path/to/your/binary

Generieren Sie eine SBOM aus bereitgestellten Volumes

Sie können den Amazon Inspector SBOM Generator verwenden, um SBOMs aus bereitgestellten Volumes zu generieren. Diese Funktion kann mit dem Unterbefehl aktiviert werden. volume Wir empfehlen, diese Funktion zu verwenden, wenn Sie Speichervolumes analysieren möchten, z. B. Amazon EBS-Volumes, die in Ihr System eingebunden wurden. Im Gegensatz zum Unterbefehl directory erkennt das Scannen von bereitgestellten Volumes Betriebssystempakete und Betriebssysteminformationen.

Sie können ein Amazon EBS-Volume scannen, indem Sie es an eine Amazon EC2-Instance anhängen, auf der Amazon Inspector SBOM Generator installiert ist, und es auf dieser Instance mounten. Für Amazon EBS-Volumes, die derzeit von anderen Amazon EC2-Instances verwendet werden, können Sie einen Amazon EBS-Snapshot des Volumes erstellen und dann aus diesem Snapshot ein neues Amazon EBS-Volume zu Scanzwecken erstellen. Weitere Informationen zu Amazon EBS finden Sie unter Was ist Amazon EBS? im Amazon Elastic Block Store-Benutzerhandbuch.

Beispielbefehl

Der folgende Ausschnitt zeigt einen Unterbefehl, der eine SBOM aus einem bereitgestellten Volume generiert. Das --path Argument sollte das Stammverzeichnis angeben, in dem das Volume gemountet ist.

# generate SBOM from mounted volume ./inspector-sbomgen volume --path /mount/point/of/volume/root
Beispielbefehl

Der folgende Ausschnitt zeigt einen Unterbefehl, der eine SBOM aus einem bereitgestellten Volume generiert und dabei bestimmte Dateipfade mit dem Argument ausschließt. --exclude-suffix Das --exclude-suffix Argument ist besonders nützlich, wenn ein Volume Massendateien (wie Logdateien oder Mediendateien) enthält. Dateien und Verzeichnisse, deren Pfade mit den angegebenen Suffixen enden, werden vom Scannen ausgeschlossen, was die Scanzeit und den Speicherverbrauch reduzieren kann.

# generate SBOM from mounted volume with exclusions ./inspector-sbomgen volume --path /mount/point/of/volume/root \ --exclude-suffix .log \ --exclude-suffix cache

Alle Dateipfade auf dem Zielvolume werden auf ihre ursprünglichen Pfade normalisiert. Wenn zum Beispiel ein Volume gescannt wird/mnt/volume, das eine Datei unter enthält/mnt/volume/var/lib/rpm/rpmdb.sqlite, wird der Pfad /var/lib/rpm/rpmdb.sqlite in der generierten SBOM normalisiert.

Senden Sie eine SBOM zur Identifizierung der Sicherheitslücke an Amazon Inspector

Zusätzlich zur Generierung einer SBOM können Sie eine SBOM mit einem einzigen Befehl von der Amazon Inspector Scan API zum Scannen senden. Amazon Inspector überprüft den Inhalt der SBOM auf Sicherheitslücken, bevor die Ergebnisse an ihn zurückgesendet werden. Sbomgen Abhängig von Ihren Eingaben können die Ergebnisse angezeigt oder in eine Datei geschrieben werden.

Anmerkung

Sie müssen über eine aktive Datei AWS-Konto mit Leseberechtigungen verfügen, InspectorScan-ScanSbom um diese Funktion nutzen zu können.

Um diese Funktion zu aktivieren, übergeben Sie das --scan-sbom Argument an die Sbomgen CLI. Sie können das --scan-sbom Argument auch an einen der folgenden Sbomgen Unterbefehle übergeben:archive,,binary, containerdirectory,localhost.

Anmerkung

Die Amazon Inspector Scan API verarbeitet keine SBOMs mit mehr als 5.000 Paketen. In diesem Szenario gibt die Amazon Inspector Scan API eine HTTP 400-Antwort zurück.

Sie können sich über ein AWS Profil oder eine IAM-Rolle mit den folgenden AWS CLI Argumenten bei Amazon Inspector authentifizieren:

--aws-profile profile --aws-region region --aws-iam-role-arn role_arn

Sie können sich auch bei Amazon Inspector authentifizieren, indem Sie die folgenden Umgebungsvariablen angeben. Sbomgen

AWS_ACCESS_KEY_ID=$access_key \ AWS_SECRET_ACCESS_KEY=$secret_key \ AWS_DEFAULT_REGION=$region \ ./inspector-sbomgen arguments

Verwenden Sie das --scan-sbom-output-format cyclonedx Argument oder --scan-sbom-output-format inspector das Argument, um das Antwortformat anzugeben.

Beispiel für Befehl 1

Dieser Befehl erstellt eine SBOM für die neueste Alpine Linux Version, scannt die SBOM und schreibt die Ergebnisse der Sicherheitslücke in eine JSON-Datei.

./inspector-sbomgen container --image alpine:latest \ --scan-sbom \ --aws-profile your_profile \ --aws-region your_region \ --scan-sbom-output-format cyclonedx \ --outfile /tmp/inspector_scan.json
Beispiel für Befehl 2

Dieser Befehl authentifiziert sich bei Amazon Inspector mithilfe von AWS Anmeldeinformationen als Umgebungsvariablen.

AWS_ACCESS_KEY_ID=$your_access_key \ AWS_SECRET_ACCESS_KEY=$your_secret_key \ AWS_DEFAULT_REGION=$your_region \ ./inspector-sbomgen container --image alpine:latest \ -o /tmp/sbom.json \ --scan-sbom \ --scan-sbom-output-format inspector
Beispiel für Befehl 3

Dieser Befehl authentifiziert sich bei Amazon Inspector mithilfe des ARN für eine IAM-Rolle.

./inspector-sbomgen container --image alpine:latest \ --scan-sbom \ --aws-profile your_profile \ --aws-region your_region \ --outfile /tmp/inspector_scan.json --aws-iam-role-arn arn:aws:iam::123456789012:role/your_role

Verwenden Sie zusätzliche Scanner, um die Erkennungsfunktionen zu verbessern

Der Amazon Inspector SBOM Generator wendet vordefinierte Scanner auf der Grundlage des verwendeten Befehls an.

Standard-Scanner-Gruppen

Jeder Amazon Inspector SBOM Generator-Unterbefehl wendet die folgenden Standard-Scannergruppen automatisch an.

  • Für den directory Unterbefehl: Binär, Programmiersprachenpakete, Dockerfile-Scanner-Gruppen

  • Für den localhost Unterbefehl: os, programming language-packages, extra-ecosystems scanner groups

  • Für den container Unterbefehl: os, programming-language-packages, extra-ecosystems, dockerfile, binary scanner groups

Spezielle Scanner

Verwenden Sie die --additional-scanners Option, gefolgt vom Namen des Scanners, der hinzugefügt werden soll, um Scanner einzubeziehen, die nicht zu den Standard-Scannergruppen gehören. Das Folgende ist ein Beispielbefehl, der zeigt, wie das geht.

# Add WordPress installation scanner to directory scan ./inspector-sbomgen directory --path /path/to/directory/ --additional-scanners wordpress-installation -o output.json

Im Folgenden finden Sie einen Beispielbefehl, der zeigt, wie Sie mehrere Scanner mit einer durch Kommas getrennten Liste hinzufügen.

./inspector-sbomgen container --image image:tag --additional-scanners scanner1,scanner2 -o output.json

Optimieren Sie Container-Scans, indem Sie die maximale zu scannende Dateigröße anpassen

Wenn Sie ein Container-Image analysieren und verarbeiten, werden standardmäßig Dateien Sbomgen gescannt, die 200 MB oder weniger groß sind. Dateien, die größer als 200 MB sind, enthalten selten Paketmetadaten. Fehler können auftreten, wenn Sie eine Go oder eine Rust Binärdatei inventarisieren, die 200 MB überschreitet. Verwenden Sie das --max-file-size Argument, um die Größenbeschränkung anzupassen. Auf diese Weise können Sie das Limit erhöhen, um große Dateien einzubeziehen, und das Limit verringern, um den Ressourcenverbrauch zu reduzieren, indem Sie große Dateien ausschließen.

Beispiel

Das folgende Beispiel zeigt, wie das --max-file-size Argument verwendet wird, um die Dateigröße zu erhöhen.

# Increase the file size limit to scan files up to 300 MB ./inspector-sbomgen container --image alpine:latest \ --outfile /tmp/sbom.json \ --max-file-size 300000000

Durch Anpassen dieser Einstellung können Sie die Festplattennutzung, den Speicherverbrauch und die Gesamtdauer des Scans kontrollieren.

Beschränken Sie die Pull-Größe des Container-Images

Wenn Sie ein Container-Image scannen, können Sie ein übergroßes Bild ablehnen, bevor Sie eine Ebene Sbomgen herunterladen. Sbomgenliest die komprimierte Größe jeder Ebene aus dem Image-Manifest und vergleicht sie mit den von Ihnen festgelegten Grenzwerten. Ein Bild, das einen Grenzwert überschreitet, wird also abgelehnt, ohne dass die Ebenen heruntergeladen werden. Verwenden Sie die --layer-max-pull-size Argumente --image-max-pull-size und, um diese Grenzwerte in Byte festzulegen.

  • --image-max-pull-size— Lehnt das Bild ab, wenn die komprimierten Größen aller Ebenen zusammen die angegebene Anzahl von Byte überschreiten.

  • --layer-max-pull-size— Lehnt das Bild ab, wenn die komprimierte Größe einer einzelnen Ebene die angegebene Anzahl von Byte überschreitet.

Anmerkung

Beide Argumente gelten nur für Container-Scans und sind unabhängig voneinander. Jedes Argument ist standardmäßig auf gesetzt0, wodurch das Limit deaktiviert wird.

Beispiel

Im folgenden Beispiel wird das Bild zurückgewiesen, wenn die komprimierten Größen seiner Ebenen insgesamt mehr als 50 GiB (53687091200Byte) betragen oder wenn die komprimierte Größe einer einzelnen Ebene 10 GiB (10737418240Byte) überschreitet.

# Reject an oversized image before downloading any layer ./inspector-sbomgen container --image image:tag \ --outfile /tmp/sbom.json \ --image-max-pull-size 53687091200 \ --layer-max-pull-size 10737418240

Erkennt Scratch-Bilder mithilfe von Dateisystemheuristiken

Wenn Sbomgen Sie das Betriebssystem eines Container-Images nicht identifizieren können, können Sie das --enable-scratch-heuristics Argument verwenden, um das Dateisystem auf Signale zu untersuchen, die auf ein Image hinweisen. scratch Wenn mindestens zwei Signale vorhanden sind, Sbomgen kennzeichnet stattdessen die Betriebssystemkomponente. scratch unknown Ein identifiziertes Betriebssystem wird niemals neu beschriftet.

Anmerkung

Dieses Argument ist experimentell, gilt nur für Container-Scans und ist standardmäßig deaktiviert.

Sbomgenwertet die folgenden Signale aus und zeichnet jedes erkannte Signal als amazon:inspector:sbom_generator:scratch:heuristic:* Eigenschaft der Betriebssystemkomponente auf:

  • missing_lib_dir— Das Verzeichnis fehlt/lib.

  • missing_bin_dir— Das /bin Verzeichnis fehlt.

  • missing_var_dir— Das /var Verzeichnis fehlt.

  • missing_shell— Es ist keine interaktive Shell vorhanden (keine von shbash,ash,dash,zsh, oder busybox gefunden unter /bin oder/usr/bin).

Beispiel

Das folgende Beispiel zeigt, wie das --enable-scratch-heuristics Argument verwendet wird.

# enable scratch image detection heuristics ./inspector-sbomgen container --image image:tag \ --outfile /tmp/sbom.json \ --enable-scratch-heuristics
Anmerkung

Dieses Verhalten ist heuristisch und kann zu falsch positiven Ergebnissen führen. Es ändert nur die Betriebssystemkomponente.

Erfassen Sie Metadaten laufender Prozesse

Wenn Sie einen Localhost scannen, können Sie das --collect-processes Argument verwenden, um Komponenten mit Metadaten über die laufenden Prozesse zu kennzeichnen, die Sbomgen vom Host erfasst werden. Dies hilft Ihnen, eine inventarisierte Komponente mit den Prozessen zu korrelieren, die von ihr aus ausgeführt werden.

Anmerkung

Dieses Argument ist optional, standardmäßig deaktiviert und gilt nur für Localhost-Scans. Wenn Sie es für einen anderen Scan-Typ angeben, wird eine Warnung Sbomgen protokolliert und ignoriert.

Wenn eine Komponente einem laufenden Prozess entspricht, Sbomgen fügt dieser Komponente die folgenden Eigenschaften hinzu, wobei sich die Prozess-ID pid befindet:

  • amazon:inspector:sbom_generator:host:process_id:pid:path— Zum Beispiel der Pfad der ausführbaren Datei des passenden laufenden Prozesses/usr/sbin/sshd.

  • amazon:inspector:sbom_generator:host:process_id:pid:started_at— Die Uhrzeit, zu der der Prozess gestartet wurde, zum Beispiel im RFC 3339-Format (UTC). 2026-08-26T15:43:40Z

Beispiel

Das folgende Beispiel zeigt, wie das Argument verwendet wird--collect-processes.

# Tag components with running process metadata ./inspector-sbomgen localhost \ --outfile /tmp/sbom.json \ --collect-processes

Deaktivieren Sie die Fortschrittsanzeige

Sbomgenzeigt eine sich drehende Fortschrittsanzeige an, die in CI/CD Umgebungen zu übermäßigen Schrägstrichen führen kann.

INFO[2024-02-01 14:58:46]coreV1.go:53: analyzing artifact | \ / | \ / INFO[2024-02-01 14:58:46]coreV1.go:62: executing post-processors

Sie können die Fortschrittsanzeige mit dem folgenden --disable-progress-bar Argument deaktivieren:

./inspector-sbomgen container --image alpine:latest \ --outfile /tmp/sbom.json \ --disable-progress-bar

Authentifizierung bei privaten Registern mit Bomgen

Indem Sie Ihre Anmeldeinformationen für die private Registrierung angeben, können Sie SBOMs aus Containern generieren, die in privaten Registern gehostet werden. Sie können diese Anmeldeinformationen mithilfe der folgenden Methoden bereitstellen:

Authentifizieren Sie sich mit zwischengespeicherten Anmeldeinformationen (empfohlen)

Für diese Methode authentifizieren Sie sich bei Ihrer Container-Registry. Wenn Sie es beispielsweise verwendenDocker, können Sie sich mit dem Docker Loging-Befehl: bei Ihrer Container-Registry authentifizieren. docker login

  1. Authentifizieren Sie sich bei Ihrer Container-Registry. Wenn Sie es verwendenDocker, können Sie sich beispielsweise mit dem folgenden Befehl bei Ihrer Registry authentifizieren: Docker login

  2. Nachdem Sie sich bei Ihrer Container-Registry authentifiziert haben, verwenden Sie Sbomgen es für ein Container-Image, das sich in der Registry befindet. Um das folgende Beispiel zu verwenden, image:tag ersetzen Sie es durch den Namen des zu scannenden Images:

./inspector-sbomgen container --image image:tag

Authentifizieren Sie sich mit der interaktiven Methode

Geben Sie für diese Methode Ihren Benutzernamen als Parameter an und Sie Sbomgen werden bei Bedarf zur sicheren Passworteingabe aufgefordert.

Um das folgende Beispiel zu verwenden, image:tag ersetzen Sie es durch den Namen des Bilds, das Sie scannen möchten, und your_username durch einen Benutzernamen, der Zugriff auf das Bild hat:

./inspector-sbomgen container --image image:tag --username your_username

Authentifizieren Sie sich mit der nicht interaktiven Methode

Speichern Sie für diese Methode Ihr Passwort oder Ihr Registrierungstoken in einer .txt Datei.

Anmerkung

Der aktuelle Benutzer sollte diese Datei nur lesen können. Die Datei sollte auch Ihr Passwort oder Token in einer einzigen Zeile enthalten.

Um das folgende Beispiel zu verwenden, your_username ersetzen Sie es durch Ihren Benutzernamen, password.txt durch die .txt Datei, die Ihr Passwort oder Token in einer einzelnen Zeile enthält, und image:tag durch den Namen des zu scannenden Bilds:

INSPECTOR_SBOMGEN_USERNAME=your_username \ INSPECTOR_SBOMGEN_PASSWORD=`cat password.txt` \ ./inspector-sbomgen container --image image:tag

Beispielausgaben von Sbomgen

Im Folgenden finden Sie ein Beispiel für eine SBOM für ein Container-Image, das mithilfe von inventarisiert wurde. Sbomgen

{ "bomFormat": "CycloneDX", "specVersion": "1.5", "serialNumber": "urn:uuid:828875ef-8c32-4777-b688-0af96f3cf619", "version": 1, "metadata": { "timestamp": "2023-11-17T21:36:38Z", "tools": [ { "vendor": "Amazon Web Services, Inc. (AWS)", "name": "Amazon Inspector SBOM Generator", "version": "1.0.0", "hashes": [ { "alg": "SHA-256", "content": "10ab669cfc99774786301a745165b5957c92ed9562d19972fbf344d4393b5eb1" } ] } ], "component": { "bom-ref": "comp-1", "type": "container", "name": "fedora:latest", "properties": [ { "name": "amazon:inspector:sbom_generator:image_id", "value": "sha256:c81c8ae4dda7dedc0711daefe4076d33a88a69a28c398688090c1141eff17e50" }, { "name": "amazon:inspector:sbom_generator:layer_diff_id", "value": "sha256:eddd0d48c295dc168d0710f70364581bd84b1dda6bb386c4a4de0b61de2f2119" } ] } }, "components": [ { "bom-ref": "comp-2", "type": "library", "name": "dnf", "version": "4.18.0", "purl": "pkg:pypi/dnf@4.18.0", "properties": [ { "name": "amazon:inspector:sbom_generator:source_file_scanner", "value": "python-pkg" }, { "name": "amazon:inspector:sbom_generator:source_package_collector", "value": "python-pkg" }, { "name": "amazon:inspector:sbom_generator:source_path", "value": "/usr/lib/python3.12/site-packages/dnf-4.18.0.dist-info/METADATA" }, { "name": "amazon:inspector:sbom_generator:is_duplicate_package", "value": "true" }, { "name": "amazon:inspector:sbom_generator:duplicate_purl", "value": "pkg:rpm/fedora/python3-dnf@4.18.0-2.fc39?arch=noarch&distro=39&epoch=0" } ] }, { "bom-ref": "comp-3", "type": "library", "name": "libcomps", "version": "0.1.20", "purl": "pkg:pypi/libcomps@0.1.20", "properties": [ { "name": "amazon:inspector:sbom_generator:source_file_scanner", "value": "python-pkg" }, { "name": "amazon:inspector:sbom_generator:source_package_collector", "value": "python-pkg" }, { "name": "amazon:inspector:sbom_generator:source_path", "value": "/usr/lib64/python3.12/site-packages/libcomps-0.1.20-py3.12.egg-info/PKG-INFO" }, { "name": "amazon:inspector:sbom_generator:is_duplicate_package", "value": "true" }, { "name": "amazon:inspector:sbom_generator:duplicate_purl", "value": "pkg:rpm/fedora/python3-libcomps@0.1.20-1.fc39?arch=x86_64&distro=39&epoch=0" } ] } ] }