Nachdem Sie Assured Open Source Software in Security Command Center eingebunden haben, werden Assured Open Source Software-Pakete in einem Artifact Registry-Repository gehostet, das in einem von Ihnen verwalteten Projekt erstellt wird.
Auf dieser Seite wird erläutert, wie Sie eine Verbindung zum Artifact Registry-Repository für Assured OSS herstellen, um direkt auf die Python-Pakete zuzugreifen und sie herunterzuladen.
Dieses Dokument gilt nur für die Premium-Stufe von Assured OSS. Informationen zur kostenlosen Stufe finden Sie unter Python-Pakete mit direktem Repositoryzugriff für die kostenlose Stufe herunterladen.
Hinweise
Assurance-basiertes Betriebsunterstützungssystem in Security Command Center einbinden
Prüfen Sie die Verbindung zu Assured OSS für die angeforderten Dienstkonten.
Installieren Sie die neueste Version der Google Cloud CLI.
Wenn Sie die Google Cloud CLI bereits installiert haben, prüfen Sie, ob Sie die neueste Version haben. Führen Sie dazu den Befehl aus:
gcloud components update
Authentifizierung einrichten
Sie können sich mit einer der folgenden Methoden beim Assured OSS Python-Paket-Repository authentifizieren:
- Mit einem Schlüsselbund authentifizieren
- Mit einem Dienstkontoschlüssel authentifizieren
In den folgenden Abschnitten wird beschrieben, wie Sie diese Authentifizierungsmethoden einrichten.
Mit Schlüsselbund authentifizieren
Informationen zur Authentifizierung in der Artifact Registry mit dem Python-keyring finden Sie unter Authentifizierung mit keyring und in den Informationen zur Reihenfolge der Anmeldedatensuche. Wir empfehlen, für die Authentifizierung den Python-Schlüsselbund zu verwenden.
So richten Sie den Schlüsselbund für die Authentifizierung ein:
Installieren Sie die
keyring
-Bibliothek:pip install keyring
Installieren Sie das Artifact Registry-Backend:
pip install keyrings.google-artifactregistry-auth
Liste der Backends auflisten, um die Installation zu bestätigen:
keyring --list-backends
Die Liste sollte Folgendes enthalten:
ChainerBackend(priority:10)
GooglePythonAuth(priority:9)
Informationen zum Einrichten von Standardanmeldedaten für Anwendungen finden Sie unter Authentifizierung einrichten.
Dadurch wird sichergestellt, dass der Assured OSS-Anmeldedaten-Helper Ihren Schlüssel beim Herstellen einer Verbindung zu den Repositories abrufen kann.
Mit einem Dienstkontoschlüssel authentifizieren
Authentifizieren Sie sich mit einem Dienstkontoschlüssel, wenn die Anwendung eine Authentifizierung mit einem Nutzernamen und einem Passwort erfordert.
Ersetzen Sie die URL des Paket-Repositorys https://us-python.pkg.dev/PROJECT_ID/assuredoss-python/simple
durch die URL https://_json_key_base64:BASE64_KEY@us-python.pkg.dev/PROJECT_ID/assuredoss-python/simple
.
Ersetzen Sie Folgendes:
- Ersetzen Sie
PROJECT_ID
durch die ID des Projekts, das Sie beim Einrichten von Assured Open Source Software ausgewählt haben. Ersetzen Sie
BASE64_KEY
durch die Base64-codierte JSON-Schlüsseldatei des Dienstkontos. Führen Sie den folgenden Befehl aus, um die gesamte JSON-Schlüsseldatei des Dienstkontos in Base64-Codierung zu konvertieren:BASE64_KEY=$(cat KEY_FILE_LOCATION | base64 -w 0)
Ersetzen Sie
KEY_FILE_LOCATION
durch den Speicherort der JSON-Schlüsseldatei des Dienstkontos.
Pakete installieren
In der folgenden Anleitung wird davon ausgegangen, dass Sie PyPI als Repository zum Herunterladen Ihrer Abhängigkeiten verwenden. Wenn Sie ein anderes Repository verwenden, müssen Sie Abhängigkeiten auf andere Weise herunterladen.
In Assured OSS vorhandene Pakete installieren
Erstellen Sie zwei requirements.txt
-Dateien, um die Assured OSS-Python-Pakete anzugeben, die Sie herunterladen möchten. Die Beispieldateien sind:
requirements-google.txt
# Packages present in Google's Artifact Registry urllib3==1.26.11 --hash=sha256:1cffe1aa066363a75c856f261c8fce62d87f7c40ce0f46453ea12bf652b12a13 jsonschema==4.13.0 --hash=sha256:29895bfe55b93b75552fbdd1e09aa0c82b7c1c9395d4f267e10c7d43cd31a74e
requirements-pypi.txt
# Packages present in Google's Artifact Registry are mentioned here so that pip # downloads their dependencies from PyPI. urllib3==1.26.11 jsonschema==4.13.0 # Below this comment, add any package version which you need but is NOT # present in Google's Artifact Registry and therefore needs to be downloaded from # PyPI.
Führen Sie die folgenden Befehle aus, um die Pakete herunterzuladen:
Führen Sie den folgenden Befehl aus, um die erforderlichen Pakete herunterzuladen, die in der Artifact Registry für Assured OSS vorhanden sind:
pip install --require-hashes --requirement=requirements-google.txt \ --index-url https://_json_key_base64:BASE64_KEY@us-python.pkg.dev/PROJECT_ID/assuredoss-python repo/simple -v \ --no-deps
Berücksichtige Folgendes:
--require-hashes
ist optional. Falls enthalten, werden Hash-Werte für alle Pakete und für alle Paketversionen in der Dateirequirements.txt
angegeben.- Ersetzen Sie
BASE64_KEY
durch die base64-codierte JSON-Datei des Dienstkontos. -v
ist optional. Wenn Sie diesen Parameter angeben, liefert der Befehl mehr Ausgabe.
Führen Sie den folgenden Befehl aus, um die erforderlichen Pakete herunterzuladen, die nicht in der Artifact Registry für Assured OSS vorhanden sind:
pip install --requirement=requirements-pypi.txt --index-url https://pypi.org/simple -v
Mit diesem Befehl werden auch die fehlenden Abhängigkeiten der Pakete heruntergeladen, die Sie mit dem vorherigen Befehl heruntergeladen haben.
Liste aller in Assured OSS verfügbaren Python-Pakete
Informationen zum Abrufen einer Liste aller Python-Pakete im Artifact Registry-Repository mithilfe einer API finden Sie unter Alle in Assured OSS verfügbaren Python-Pakete auflisten.
requirements-google.txt
-Datei generieren
In diesem Abschnitt finden Sie zusätzliche Informationen zum Generieren der requirements-google.txt
-Datei, die Sie zum Herunterladen der Python-Pakete benötigen. Sie haben zwei Möglichkeiten, den Hashwert herunterzuladen und die requirements-google.txt
-Datei für Ihre Umgebung zu generieren:
Verwenden Sie ein Script, um eine einzelne Anforderungsdatei für alle Artefakte zu generieren.
Laden Sie für jedes Artefakt eine separate Anforderungsdatei herunter.
In den folgenden Abschnitten finden Sie weitere Informationen zu diesen Optionen.
Option 1: Mit einem Script eine einzelne Anforderungsdatei für alle Artefakte generieren
Verwenden Sie das generator.sh
-Script, um eine einzelne requirements-google.txt
-Datei für alle Python-Pakete (zusammen mit ihren Hashes) zu generieren, die mit Assured OSS für das Linux-Betriebssystem verfügbar sind. Die Pakete müssen Einschränkungen wie Python-Version, Maschinenarchitektur und Betriebssystem erfüllen. Sie können dann die Paketversionen löschen, die Sie nicht benötigen, und die resultierende Datei verwenden.
Das generator.sh
-Script bietet zwei Vorteile:
- Es generiert die aktuelle Liste der Python-Paketversionen, die mit Assured OSS verfügbar sind und auf Ihrem System installiert werden können.
- Es generiert die
requirements-google.txt
-Datei zusammen mit allen Hashes.
Das erforderliche Script und die zugehörige README.md
-Datei sind in einem Cloud Storage-Bucket (gs://cloud-aoss/utils/python-requirements-txt/v1.0
) verfügbar und können mit der Google Cloud CLI heruntergeladen werden.
So laden Sie das Script und die README.md
-Datei herunter:
Authentifizieren Sie sich mit dem Dienstkonto, um mit dem folgenden Befehl auf den Cloud Storage-Bucket zuzugreifen:
gcloud auth activate-service-account --key-file KEY_FILE
Ersetzen Sie
KEY_FILE
durch den Pfad zur Datei mit den Anmeldedaten des Dienstkontos, die Sie bei der Einrichtung angegeben haben.Laden Sie die
generator.sh
mit dem folgenden Befehl auf Ihren Computer herunter:gcloud storage cp gs://cloud-aoss/utils/python-requirements-txt/v1.0/generator.sh PATH_TO_LOCAL_STORE --recursive
Ersetzen Sie
PATH_TO_LOCAL_STORE
durch den lokalen Pfad, unter dem Sie die heruntergeladene Datei speichern möchten.Laden Sie die
README.md
-Datei mit dem folgenden Befehl herunter:gcloud storage cp gs://cloud-aoss/utils/python-requirements-txt/v1.0/README.md PATH_TO_LOCAL_STORE --recursive
Ersetzen Sie
PATH_TO_LOCAL_STORE
durch den lokalen Pfad, unter dem Sie die heruntergeladene Datei speichern möchten. Die DateiREADME.md
enthält eine Anleitung zur Verwendung des Scripts.
Führen Sie die folgenden Befehle aus, um das Script auszuführen:
Führen Sie den folgenden Befehl aus, um die
requirements-google.txt
-Datei zu generieren:chmod +x generator.sh ./generator.sh
Führen Sie den folgenden Befehl aus, um die Informationen zum Paket in einer CSV-Datei abzurufen:
chmod +x generator.sh ./generator.sh -i
Option 2: requirements.txt
für jedes erforderliche Artefakt herunterladen
Sie können auch für jedes Python-Artefakt eine separate requirements.txt
-Datei (mit dem Hash) herunterladen und dann in einer einzigen requirements.txt
-Datei kombinieren.
Die Artefakt-Hashes sind in einem Cloud Storage-Bucket verfügbar, der mit der gcloud CLI heruntergeladen werden kann. Die Hash-Werte für jedes Paket und jede Version befinden sich im Cloud Storage-Bucket gs://cloud-aoss/python/PACKAGE_NAME/VERSION
.
So laden Sie die requirements.txt
-Datei herunter:
Authentifizieren Sie sich mit dem Dienstkonto, um mit dem folgenden Befehl auf den Cloud Storage-Bucket zuzugreifen:
gcloud auth activate-service-account --key-file KEY_FILE
Ersetzen Sie
KEY_FILE
durch den Pfad zur Datei mit den Anmeldedaten für das Dienstkonto.Laden Sie die
requirements.txt
eines bestimmten Pakets und einer bestimmten Version mit dem folgenden Befehl auf Ihren lokalen Computer herunter:gcloud storage cp gs://cloud-aoss/python/PACKAGE_NAME/VERSION PATH_TO_LOCAL_STORE --recursive
Ersetzen Sie Folgendes:
PACKAGE_NAME
: der PaketnameVERSION
: die Version des PaketsPATH_TO_LOCAL_STORE
: Der lokale Pfad, unter dem Sie die Datei herunterladen möchten.
Beispielbefehl:
gcloud storage cp gs://cloud-aoss/python/bleach/5.0.0 /tmp/bleach
‑‑recursiveBeispieldatei
requirements.txt
:bleach==5.0.0 \ --hash=sha256:6d286e765bfd3e309209cfa1d063e4d46afa966dea8cb97431c02b1e3067d812
Der Inhalt jeder solchen
requirements.txt
-Datei kann in einer einzelnenrequirements-google.txt
-Datei kombiniert werden.
Nächste Schritte
- Java-Pakete mit direktem Repositoryzugriff in der Premium-Stufe herunterladen
- Auf Sicherheitsmetadaten zugreifen und Pakete in der Premium-Stufe prüfen