Scaricare i pacchetti Python utilizzando l'accesso diretto al repository

Dopo aver integrato Assured OSS con Security Command Center, i pacchetti Assured Open Source Software vengono ospitati in un repository Artifact Registry creato in un progetto che controlli.

Questa pagina spiega come connetterti al repository Artifact Registry per Assured OSS per accedere e scaricare direttamente i pacchetti Python.

Questo documento si applica solo al livello Premium di Assured OSS. Per il livello senza costi, consulta Scaricare i pacchetti Python utilizzando l'accesso diretto al repository per il livello senza costi.

Prima di iniziare

  1. Chiedi all'amministratore di concederti il ruolo IAM Amministratore chiavi account di servizio (roles/iam.serviceAccountKeyAdmin) nella tua organizzazione. Questa autorizzazione è necessaria per ottenere la stringa con codifica base64 della chiave del account di servizio. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

  2. Integra Assured OSS con Security Command Center.

  3. Convalida la connettività ad Assured OSS per i service account richiesti.

  4. Installa l'ultima versione di Google Cloud CLI. Se hai già installato Google Cloud CLI, assicurati di avere l'ultima versione eseguendo questo comando:

    gcloud components update
    

Configura l'autenticazione

Puoi autenticarti nel repository di pacchetti Python di Assured OSS utilizzando uno dei seguenti metodi:

  • Autenticazione con un keyring Python
  • Autenticazione con una chiave del account di servizio

Le sezioni seguenti descrivono come configurare questi metodi di autenticazione.

Autenticazione con keyring Python

Per utilizzare il keyring Python per l' autenticazione in Artifact Registry, consulta Autenticazione con keyring e Ordine di ricerca delle credenziali. Ti consigliamo di utilizzare il keyring Python per l'autenticazione.

Per configurare il keyring Python per l'autenticazione:

  1. Installa la libreria keyring:

    pip install keyring
    
  2. Installa il backend di Artifact Registry:

    pip install keyrings.google-artifactregistry-auth
    
  3. Elenca i backend per confermare l'installazione:

    keyring --list-backends
    

    L'elenco deve includere quanto segue:

    • ChainerBackend(priority:10)
    • GooglePythonAuth(priority:9)
  4. Per informazioni su come configurare Credenziali predefinite dell'applicazione, consulta Configurare l'autenticazione.

    Questo passaggio garantisce che l'helper delle credenziali di Assured OSS ottenga la chiave quando si connette ai repository.

Autenticazione con una chiave del account di servizio

Esegui l'autenticazione con una chiave account di servizio quando l'applicazione richiede l'autenticazione con un nome utente e una password.

Sostituisci l'URL del repository di pacchetti https://us-python.pkg.dev/PROJECT_ID/assuredoss-python/simple con l'URL https://_json_key_base64:$BASE64_KEY@us-python.pkg.dev/PROJECT_ID/assuredoss-python/simple

Sostituisci PROJECT_ID con l'ID del progetto selezionato durante la configurazione di Assured Open Source Software.

Installa pacchetti

Le istruzioni riportate di seguito presuppongono che tu stia utilizzando PyPI e requirements.txt per scaricare e gestire le dipendenze. Se utilizzi un altro processo di gestione delle dipendenze, devi seguire passaggi diversi.

Installa pacchetti in Assured OSS

Per specificare i pacchetti Python di Assured OSS che vuoi scaricare, crea due requirements.txt file. I file di esempio sono i seguenti:

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

Per scaricare i pacchetti, esegui i seguenti comandi:

  • Per scaricare i pacchetti richiesti presenti in Artifact Registry per Assured OSS, esegui il comando seguente:

     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
    

    Considera quanto segue:

    • --require-hashes è facoltativo. Se incluso, gli hash vengono specificati per tutti i pacchetti e per tutte le versioni dei pacchetti nel file requirements.txt. Ti consigliamo di bloccare le dipendenze con gli hash SHA-256 nel file requirements.txt per garantire sicurezza e riproducibilità.
    • -v è facoltativo. Se specificato, il comando fornisce più output.
  • Per scaricare i pacchetti richiesti che non si trovano in Artifact Registry per Assured OSS, esegui il comando seguente:

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

    Questo comando scarica anche le dipendenze mancanti dei pacchetti che hai scaricato utilizzando il comando precedente.

Elenca tutti i pacchetti Python disponibili in Assured OSS

Per utilizzare un' API per ottenere un elenco di tutti i pacchetti Python nel repository Artifact Registry, consulta Elencare tutti i pacchetti Python disponibili in Assured OSS.

Generare il file requirements-google.txt

Questa sezione fornisce ulteriori informazioni sulla generazione del file requirements-google.txt necessario per scaricare i pacchetti Python. Per scaricare l'hash e generare il file requirements-google.txt per il tuo ambiente, puoi utilizzare una delle due opzioni seguenti:

  • Utilizza uno script per generare un singolo file dei requisiti per tutti gli artefatti.

  • Scarica un file dei requisiti separato per ogni artefatto.

Le sezioni seguenti forniscono ulteriori informazioni su queste opzioni.

Opzione 1: utilizza uno script per generare un singolo file dei requisiti per tutti gli artefatti

Utilizza lo script generator.sh per generare un singolo file requirements-google.txt per tutti i pacchetti Python (insieme ai relativi hash) disponibili con Assured OSS per il sistema operativo Linux. I pacchetti devono soddisfare vincoli come la versione di Python, l'architettura della macchina e il sistema operativo. Puoi quindi eliminare le versioni dei pacchetti di cui non hai bisogno e utilizzare il file risultante.

Lo script generator.sh è utile nei seguenti due modi:

  • Genera l'elenco più recente delle versioni dei pacchetti Python disponibili con Assured OSS che possono essere installate correttamente sul tuo sistema.
  • Genera il file requirements-google.txt insieme a tutti gli hash.

Lo script richiesto e il relativo file README.md sono disponibili in un bucket Cloud Storage (gs://cloud-aoss/utils/python-requirements-txt/v1.0) che può essere scaricato utilizzando la Google Cloud CLI.

Per scaricare lo script e il file README.md:

  1. Esegui l'autenticazione con il account di servizio per accedere al bucket Cloud Storage utilizzando il comando seguente:

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

    Sostituisci KEY_FILE con il percorso del file contenente le credenziali del account di servizio fornite durante la configurazione.

  2. Scarica generator.sh sul tuo computer utilizzando il comando seguente:

    gcloud storage cp gs://cloud-aoss/utils/python-requirements-txt/v1.0/generator.sh PATH_TO_LOCAL_STORE --recursive
    

    Sostituisci PATH_TO_LOCAL_STORE con il percorso locale in cui vuoi salvare il file scaricato.

  3. Scarica il file README.md utilizzando il comando seguente:

    gcloud storage cp gs://cloud-aoss/utils/python-requirements-txt/v1.0/README.md PATH_TO_LOCAL_STORE --recursive
    

    Sostituisci PATH_TO_LOCAL_STORE con il percorso locale in cui vuoi salvare il file scaricato. Il file README.md contiene le istruzioni su come utilizzare lo script.

Per eseguire lo script, utilizza i comandi seguenti:

  • Per generare il file requirements-google.txt, esegui il comando seguente:

     chmod +x generator.sh
     ./generator.sh
    
  • Per ottenere le informazioni del pacchetto in un file CSV, esegui il comando seguente:

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

Opzione 2: scarica requirements.txt per ogni artefatto richiesto

Puoi anche scaricare un file requirements.txt separato (contenente l'hash) per ogni artefatto Python e poi combinarli in un unico file requirements.txt.

Gli hash degli artefatti sono disponibili in un bucket Cloud Storage che può essere scaricato utilizzando la gcloud CLI. Gli hash per ogni pacchetto e versione si trovano nella località del bucket Cloud Storage gs://cloud-aoss/python/PACKAGE_NAME/VERSION.

Per scaricare il file requirements.txt:

  1. Esegui l'autenticazione con il account di servizio per accedere al bucket Cloud Storage utilizzando il comando seguente:

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

    Sostituisci KEY_FILE con il percorso del file contenente le credenziali del account di servizio.

  2. Scarica il file requirements.txt di un pacchetto e di una versione specifici sul tuo computer locale utilizzando il comando seguente:

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

    Sostituisci quanto segue:

    • PACKAGE_NAME: il nome del pacchetto
    • VERSION: la versione del pacchetto
    • PATH_TO_LOCAL_STORE: il percorso locale in cui vuoi scaricare il file

    Comando di esempio:

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

    File requirements.txt di esempio:

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

    I contenuti di ogni file requirements.txt possono essere combinati in un unico file requirements-google.txt.

Passaggi successivi