Nachdem Sie Assured OSS 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 beschrieben, 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-Dienststufe von Assured OSS. Informationen zur kostenlosen Dienststufe finden Sie unter Python-Pakete über direkten Repository-Zugriff für die kostenlose Dienststufe herunterladen.
Hinweis
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle „Administrator für Dienstkontoschlüssel“ (
roles/iam.serviceAccountKeyAdmin) für Ihre Organisation zuzuweisen. Sie benötigen diese Berechtigung, um den base64-codierten String des Dienstkontoschlüssels zu erhalten. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.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 verwenden. Führen Sie dazu den folgenden 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 Python-Keyring authentifizieren
- Mit einem Dienstkontoschlüssel authentifizieren
In den folgenden Abschnitten wird beschrieben, wie Sie diese Authentifizierungsmethoden einrichten.
Mit einem Python-Keyring authentifizieren
Informationen zur Authentifizierung bei Artifact Registry mit dem Python-Schlüsselbund finden Sie unter Mit dem Schlüsselbund authentifizieren und Reihenfolge der Anmeldedaten suche. Wir empfehlen, das Python-Keyring für die Authentifizierung zu verwenden.
So richten Sie das Python-Keyring für die Authentifizierung ein:
Installieren Sie die
keyring-Bibliothek:pip install keyringInstallieren Sie das Artifact Registry-Backend:
pip install keyrings.google-artifactregistry-authListen Sie die Backends auf, um die Installation zu bestätigen:
keyring --list-backendsDie Liste sollte Folgendes enthalten:
ChainerBackend(priority:10)GooglePythonAuth(priority:9)
Informationen zum Einrichten von Standardanmeldedaten für Anwendungen, finden Sie unter Authentifizierung einrichten.
So ist sichergestellt, dass der Assured OSS-Credential Helper Ihren Schlüssel beim Herstellen einer Verbindung zu den Repositories abruft.
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 Paket-Repository-URL
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 PROJECT_ID durch die ID des Projekts, das Sie
beim Einrichten von Assured Open Source Software ausgewählt haben.
Pakete installieren
Bei der folgenden Anleitung wird davon ausgegangen, dass Sie PyPI und requirements.txt verwenden, um Ihre Abhängigkeiten herunterzuladen und zu verwalten. Wenn Sie einen anderen Prozess zur Abhängigkeitsverwaltung verwenden, müssen Sie andere Schritte ausführen.
Pakete in Assured OSS 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:29895bfe55b93b75552fbdd1e09aa0c82b7c1c9395d4f267e10c7d43cd31a74erequirements-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 Folgendes aus, um die erforderlichen Pakete herunterzuladen, die sich in der Artifact Registry für Assured OSS befinden:
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-depsBerücksichtige Folgendes:
--require-hashesist optional. Wenn diese Option enthalten ist, werden Hashes für alle Pakete und für alle Paketversionen in der Dateirequirements.txtangegeben. Wir empfehlen, Abhängigkeiten mit SHA-256-Hashes in derrequirements.txtDatei zu fixieren, um Sicherheit und Reproduzierbarkeit zu gewährleisten.-vist optional. Wenn diese Option angegeben ist, gibt der Befehl mehr Ausgaben zurück.
Führen Sie Folgendes aus, um die erforderlichen Pakete herunterzuladen, die sich nicht in der Artifact Registry für Assured OSS befinden:
pip install --requirement=requirements-pypi.txt --index-url https://pypi.org/simple -vMit diesem Befehl werden auch die fehlenden Abhängigkeiten der Pakete heruntergeladen, die Sie mit dem vorherigen Befehl heruntergeladen haben.
Alle in Assured OSS verfügbaren Python-Pakete auflisten
Informationen zum Abrufen einer Liste aller Python-Pakete im Artifact Registry-Repository über eine API finden Sie unter Alle in Assured OSS verfügbaren Python-Pakete auflisten.
requirements-google.txt-Datei generieren
In diesem Abschnitt finden Sie weitere Informationen zum Generieren der Datei requirements-google.txt, die Sie zum Herunterladen der Python-Pakete benötigen. Sie haben zwei Möglichkeiten, den Hash herunterzuladen und die Datei requirements-google.txt für Ihre Umgebung zu generieren:
Verwenden Sie ein Skript, 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: Skript verwenden, um eine einzelne Anforderungsdatei für alle Artefakte zu generieren
Verwenden Sie das Skript generator.sh, um eine einzelne Datei requirements-google.txt 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. Anschließend können Sie die nicht benötigten Paketversionen löschen und die resultierende Datei verwenden.
Das Skript generator.sh hilft auf zwei Arten:
- Es generiert die aktuelle Liste der Python-Paketversionen, die mit Assured OSS verfügbar sind und erfolgreich auf Ihrem System installiert werden können.
- Es generiert die Datei
requirements-google.txtzusammen mit allen Hashes.
Das erforderliche Skript und die zugehörige Datei README.md sind in einem Cloud Storage-Bucket
(gs://cloud-aoss/utils/python-requirements-txt/v1.0) verfügbar, der mit der Google Cloud CLI heruntergeladen werden kann.
So laden Sie das Skript und die Datei README.md 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_FILEErsetzen Sie
KEY_FILEdurch den Pfad zur Datei mit den Anmeldedaten des Dienstkontos, die bei der Einrichtung angegeben wurden.Laden Sie
generator.shmit 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 --recursiveErsetzen Sie
PATH_TO_LOCAL_STOREdurch den lokalen Pfad, in dem Sie die heruntergeladene Datei speichern möchten.Laden Sie die Datei
README.mdmit dem folgenden Befehl herunter:gcloud storage cp gs://cloud-aoss/utils/python-requirements-txt/v1.0/README.md PATH_TO_LOCAL_STORE --recursiveErsetzen Sie
PATH_TO_LOCAL_STOREdurch den lokalen Pfad, in dem Sie die heruntergeladene Datei speichern möchten. Die DateiREADME.mdenthält eine Anleitung zur Verwendung des Skripts.
Verwenden Sie die folgenden Befehle, um das Skript auszuführen:
Führen Sie den folgenden Befehl aus, um die Datei
requirements-google.txtzu generieren:chmod +x generator.sh ./generator.shFühren Sie den folgenden Befehl aus, um die Informationen zum Paket in einer CSV-Datei zu erhalten:
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 Datei requirements.txt (mit dem Hash) herunterladen und sie dann zu einer einzelnen Datei requirements.txt kombinieren.
Artefakthashes sind in einem Cloud Storage-Bucket verfügbar, der heruntergeladen werden kann
mit der gcloud CLI. Hashes für jedes Paket und jede Version befinden sich im Cloud Storage-Bucket unter gs://cloud-aoss/python/PACKAGE_NAME/VERSION.
So laden Sie die Datei requirements.txt 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_FILEErsetzen Sie
KEY_FILEdurch den Pfad zur Datei mit den Anmeldedaten des Dienstkontos.Laden Sie die Datei
requirements.txteines 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 --recursiveErsetzen Sie Folgendes:
PACKAGE_NAME: der PaketnameVERSION: die Version des PaketsPATH_TO_LOCAL_STORE: der lokale Pfad, in den Sie die Datei herunterladen möchten
Befehlsbeispiel:
gcloud storage cp gs://cloud-aoss/python/bleach/5.0.0 /tmp/bleach --recursiveBeispieldatei
requirements.txt:bleach==5.0.0 \ --hash=sha256:6d286e765bfd3e309209cfa1d063e4d46afa966dea8cb97431c02b1e3067d812Die Inhalte jeder dieser Dateien
requirements.txtkönnen zu einer einzelnen Dateirequirements-google.txtkombiniert werden.
Nächste Schritte
- Java-Pakete über direkten Repository-Zugriff in der Premium-Dienststufe herunterladen
- Sicherheitsmetadaten aufrufen und Pakete in der Premium-Dienststufe prüfen