Python-Pakete über direkten Repository-Zugriff herunterladen

Nach der Integration von Assured OSS mit Security Command Center, Assured-Open-Source-Softwarepakete in einem Artifact Registry-Repository gehostet werden, das in einem von Ihnen Steuerung.

Auf dieser Seite wird erläutert, wie Sie eine Verbindung zum Artifact Registry-Repository für Assured OSS für den direkten Zugriff auf und das Herunterladen der Python-Pakete.

Dieses Dokument gilt nur für die kostenpflichtige Version von Assured OSS. Für Informationen zur kostenlosen Stufe finden Sie unter Python-Pakete mit direktem Repository-Zugriff herunterladen für kostenlose Stufe.

Hinweise

  1. Assured OSS integrieren mit Security Command Center.

  2. Konnektivität prüfen zu Assured OSS für die angeforderten Dienstkonten.

  3. Installieren Sie die neueste Version der Google Cloud CLI.

  4. Wenn Sie die Google Cloud CLI bereits installiert haben, benötigen Sie die mit dem folgenden Befehl aktualisieren:

    gcloud components update
    

Authentifizierung einrichten

Sie können sich beim Assured OSS-Python-Paket authentifizieren mit einer der folgenden Methoden:

  • 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

So verwenden Sie den Python-Schlüsselbund für: sich bei Artifact Registry authentifizieren zu müssen, siehe Authentifizierung mit Schlüsselbund und die Informationen zur Anmeldedatensuche Auftrag an. Wir empfehlen, dass Sie den Python-Schlüsselbund zur Authentifizierung verwenden.

So richten Sie den Schlüsselbund für die Authentifizierung ein:

  1. Installieren Sie die keyring-Bibliothek:

    pip install keyring
    
  2. Installieren Sie das Artifact Registry-Back-End:

    pip install keyrings.google-artifactregistry-auth
    
  3. Listen Sie die Back-Ends auf, um die Installation zu bestätigen:

    keyring --list-backends
    

    Die Liste sollte Folgendes enthalten:

    • ChainerBackend(priority:10)
    • GooglePythonAuth(priority:9)
  4. Informationen zum Einrichten von Standardanmeldedaten für Anwendungen Siehe Authentifizierung einrichten.

    Mit diesem Schritt wird sichergestellt, dass Assured OSS Credential Helper ruft Ihren Schlüssel ab, wenn eine Verbindung zu den Repositories hergestellt wird.

Mit einem Dienstkontoschlüssel authentifizieren

Mit einem Dienstkontoschlüssel authentifizieren, wenn für die Anwendung Authentifizierung mit einem Nutzernamen und einem Passwort.

URL des Paket-Repositorys ersetzen https://us-python.pkg.dev/PROJECT_ID/assuredoss-python/simple mit 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-Codierung der gesamten JSON-Schlüsseldatei des Dienstkontos. Verwenden Sie den folgenden Befehl, um die gesamte JSON-Schlüsseldatei des Dienstkontos in die base64-Codierung zu konvertieren:

    BASE64_KEY=$(cat KEY_FILE_LOCATION | base64)
    

    Ersetzen Sie KEY_FILE_LOCATION durch den Speicherort der JSON-Schlüsseldatei des Dienstkontos.

Pakete installieren

Bei der folgenden Anleitung wird davon ausgegangen, dass Sie PyPI als Repository zum Herunterladen Ihrer Abhängigkeiten. Wenn Sie ein anderes müssen Sie zum Herunterladen der Abhängigkeiten andere Schritte ausführen.

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 sehen so aus:

  • 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:

  • Um die erforderlichen Pakete herunterzuladen, die in der Artifact Registry für Assured OSS führen Sie folgenden Befehl aus:

     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
    

    Beachten Sie dabei Folgendes:

    • --require-hashes ist optional. Falls angegeben, werden Hashes für alle Pakete und für alle Paketversionen in der Datei requirements.txt.
    • -v ist optional. Wenn angegeben, liefert der Befehl mehr output.
  • Um die erforderlichen Pakete herunterzuladen, die nicht im Artifact Registry für Assured OSS führen Sie folgenden Befehl aus:

     pip install --requirement=requirements-pypi.txt --index-url https://pypi.org/simple -v
    

    Dieser Befehl lädt auch Die fehlenden Abhängigkeiten der heruntergeladenen Pakete mit dem vorherigen Befehl.

Alle in Assured OSS verfügbaren Python-Pakete auflisten

Um eine API um eine Liste aller Python-Pakete im Artifact Registry-Repository abzurufen, siehe Alle in Assured OSS verfügbaren Python-Pakete auflisten.

Datei requirements-google.txt wird generiert

Dieser Abschnitt enthält zusätzliche Informationen zum Generieren der requirements-google.txt-Datei, die Sie zum Herunterladen von Python benötigen. Pakete. So laden Sie den Hash herunter und generieren die Datei requirements-google.txt: für Ihre Umgebung können Sie eine der folgenden beiden Optionen verwenden:

  • 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 einzige Anforderungsdatei für alle Artefakte generieren

Verwenden Sie das Skript generator.sh, um ein einzelnes requirements-google.txt-Datei für alle Python-Pakete (zusammen mit ihren Hashes), die mit Assured OSS für das Linux-Betriebssystem verfügbar sind. Die müssen Paketen Einschränkungen wie Python-Version, Maschinenarchitektur, und Betriebssystem. Anschließend können Sie die Paketversionen löschen, und verwenden Sie die daraus resultierende Datei.

Das Skript generator.sh hilft auf zwei Arten:

  • Die neueste Liste der verfügbaren Python-Paketversionen wird generiert. mit Assured OSS, das erfolgreich auf Ihrem System installiert werden kann.
  • Dabei wird die Datei requirements-google.txt zusammen mit allen Hashes generiert.

Das erforderliche Skript und die zugehörige README.md-Datei sind in einem Cloud Storage-Bucket verfügbar (gs://cloud-aoss/utils/python-requirements-txt/v1.0) zum Download mit der Google Cloud CLI

So laden Sie das Skript und die Datei README.md herunter:

  1. Mit dem Dienstkonto authentifizieren, um auf den Cloud Storage-Bucket zuzugreifen mit dem folgenden Befehl:

    gcloud auth activate-service-account --key-file KEY_FILE
    

    Ersetzen Sie KEY_FILE durch den Pfad zur Datei, die Die Anmeldedaten des Dienstkontos, die Sie bei der Einrichtung angegeben haben.

  2. 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, wobei Sie die heruntergeladene Datei speichern möchten.

  3. Laden Sie die Datei README.md 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, wobei Sie die heruntergeladene Datei speichern möchten. Die Datei README.md enthä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.txt zu generieren:

     chmod +x generator.sh
     ./generator.sh
    
  • Um die Paketinformationen in einer CSV-Datei abzurufen, führen Sie den folgenden Befehl aus:

    chmod +x generator.sh
    ./generator.sh -i
    

Option 2: requirements.txt für jedes erforderliche Artefakt herunterladen

Sie können auch eine separate requirements.txt-Datei (mit dem Hash) herunterladen. für jedes Python-Artefakt und kombinieren sie dann zu einem einzigen requirements.txt -Datei.

Artefakt-Hashes sind in einem Cloud Storage-Bucket verfügbar, der heruntergeladen werden kann mit der gcloud CLI Hashes für jede Paket und eine Version befinden sich im gs://cloud-aoss/python/PACKAGE_NAME/VERSION. Speicherort des Cloud Storage-Bucket.

So laden Sie die Datei requirements.txt herunter:

  1. Mit dem Dienstkonto authentifizieren, um auf den Cloud Storage-Bucket zuzugreifen mit dem folgenden Befehl:

    gcloud auth activate-service-account --key-file KEY_FILE
    

    Ersetzen Sie KEY_FILE durch den Pfad zur Datei, die die Anmeldedaten des Dienstkontos.

  2. Laden Sie die requirements.txt eines bestimmten Pakets und einer bestimmten Version in Ihren mit dem folgenden Befehl:

    gcloud storage cp gs://cloud-aoss/python/PACKAGE_NAME/VERSION PATH_TO_LOCAL_STORE --recursive
    

    Ersetzen Sie Folgendes:

    • PACKAGE_NAME: der Paketname
    • VERSION: die Version des Pakets
    • PATH_TO_LOCAL_STORE: der lokale Pfad, unter dem Sie den um die Datei herunterzuladen

    Beispielbefehl:

    gcloud storage cp gs://cloud-aoss/python/bleach/5.0.0 /tmp/bleach – rekursiv

    Beispieldatei requirements.txt:

    bleach==5.0.0 \
     --hash=sha256:6d286e765bfd3e309209cfa1d063e4d46afa966dea8cb97431c02b1e3067d812
    

    Der Inhalt jeder solchen requirements.txt-Datei kann in einem einzelne requirements-google.txt-Datei.

Nächste Schritte