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 di tua proprietà.
Questa pagina spiega come connetterti al repository Artifact Registry per Assured OSS per accedere direttamente e scaricare i pacchetti Python.
Questo documento si applica solo al livello premium di Assured OSS. Per il livello gratuito, consulta Scaricare i pacchetti Python utilizzando l'accesso diretto al repository per il livello gratuito.
Prima di iniziare
Convalida la connettività ad Assured OSS per gli account di servizio richiesti.
Installa la versione più recente di Google Cloud CLI.
Se hai già installato Google Cloud CLI, assicurati di avere la versione più recente eseguendo il comando:
gcloud components update
Configura l'autenticazione
Puoi eseguire l'autenticazione nel repository del pacchetto Python di Assured OSS utilizzando uno dei seguenti metodi:
- Eseguire l'autenticazione con un portachiavi
- Eseguire l'autenticazione con una chiave dell'account di servizio
Le sezioni seguenti descrivono come configurare questi metodi di autenticazione.
Esegui l'autenticazione con il portachiavi
Per utilizzare il keyring di Python per autenticarti in Artifact Registry, consulta la sezione sull'autenticazione con keyring e le informazioni sull'ordine di ricerca delle credenziali. Ti consigliamo di utilizzare il portachiavi Python per l'autenticazione.
Per configurare il portachiavi per l'autenticazione:
Installa la libreria
keyring
:pip install keyring
Installa il backend di Artifact Registry:
pip install keyrings.google-artifactregistry-auth
Elenca i backend per confermare l'installazione:
keyring --list-backends
L'elenco deve includere quanto segue:
ChainerBackend(priority:10)
GooglePythonAuth(priority:9)
Per informazioni sulla configurazione delle credenziali predefinite dell'applicazione, consulta Configurare l'autenticazione.
Questo passaggio garantisce che lo strumento di assistenza per le credenziali Assured OSS obtains your key when connecting with the repositories.
Eseguire l'autenticazione con una chiave dell'account di servizio
Effettua l'autenticazione con una chiave dell'account di servizio quando l'applicazione richiede l'autenticazione con un nome utente e una password.
Sostituisci l'URL del repository del pacchetto
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 quanto segue:
- Sostituisci
PROJECT_ID
con l'ID del progetto selezionato quando hai configurato Assured Open Source Software. Sostituisci
BASE64_KEY
con il file JSON della chiave dell'account di servizio codificato in base64. Per convertire l'intero file JSON della chiave dell'account di servizio in codifica base64, utilizza il seguente comando:BASE64_KEY=$(cat KEY_FILE_LOCATION | base64 -w 0)
Sostituisci
KEY_FILE_LOCATION
con la posizione del file JSON della chiave dell'account di servizio.
Installa i pacchetti
Le istruzioni riportate di seguito presuppongono che tu stia utilizzando PyPI come repository per scaricare le dipendenze. Se utilizzi un altro repository, devi seguire procedure diverse per scaricare le dipendenze.
Installare i pacchetti esistenti in Assured OSS
Per specificare i pacchetti Python Assured OSS che vuoi scaricare, crea due file requirements.txt
. I file di esempio sono:
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 quanto segue:
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:
- Il valore
--require-hashes
è facoltativo. Se inclusi, gli hash vengono specificati per tutti i pacchetti e per tutte le versioni dei pacchetti nel filerequirements.txt
. - Sostituisci
BASE64_KEY
con il file JSON dell'account di servizio codificato in base64. - Il valore
-v
è facoltativo. Se specificato, il comando fornisce più output.
- Il valore
Per scaricare i pacchetti richiesti che non sono presenti nell'Artifact Registry per Assured OSS, esegui quanto segue:
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 Elenca tutti i pacchetti Python disponibili in Assured OSS.
Generazione del 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 elementi.
Scarica un file dei requisiti separato per ogni elemento.
Le sezioni seguenti forniscono ulteriori informazioni su queste opzioni.
Opzione 1: utilizza uno script per generare un singolo file dei requisiti per tutti gli elementi
Utilizza lo script generator.sh
per generare un unico
requirements-google.txt
file per tutti i pacchetti Python
(insieme ai relativi hash) disponibili con Assured OSS per il sistema operativo Linux. I
pacchetti devono soddisfare vincoli quali la versione di Python, l'architettura della macchina
e il sistema operativo. Puoi quindi eliminare le versioni del pacchetto che non ti occorrono 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 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 Google Cloud CLI.
Per scaricare lo script e il file README.md
:
Esegui l'autenticazione con il account di servizio per accedere al bucket Cloud Storage utilizzando il seguente comando:
gcloud auth activate-service-account --key-file KEY_FILE
Sostituisci
KEY_FILE
con il percorso del file contenente le credenziali dell'account di servizio fornite durante la configurazione.Scarica
generator.sh
sulla tua macchina utilizzando il seguente comando: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.Scarica il file
README.md
utilizzando il seguente comando: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 fileREADME.md
contiene istruzioni su come utilizzare lo script.
Per eseguire lo script, utilizza i comandi seguenti:
Per generare il file
requirements-google.txt
, esegui il seguente comando:chmod +x generator.sh ./generator.sh
Per ottenere le informazioni del pacchetto in un file CSV, esegui il seguente comando:
chmod +x generator.sh ./generator.sh -i
Opzione 2: scarica requirements.txt
per ogni elemento richiesto
Puoi anche scaricare un file requirements.txt
(contenente l'hash) distinto per ogni elemento Python e poi combinarli in un unico file requirements.txt
.
Gli hash degli elementi sono disponibili in un bucket Cloud Storage che può essere scaricato utilizzando l'interfaccia a riga di comando gcloud. Gli hash per ogni
package e una versione si trovano nella gs://cloud-aoss/python/PACKAGE_NAME/VERSION
località del bucket Cloud Storage.
Per scaricare il file requirements.txt
:
Esegui l'autenticazione con il account di servizio per accedere al bucket Cloud Storage utilizzando il seguente comando:
gcloud auth activate-service-account --key-file KEY_FILE
Sostituisci
KEY_FILE
con il percorso del file contenente le credenziali dell'account di servizio.Scarica il
requirements.txt
di un pacchetto e di una versione specifici sulla tua macchina locale utilizzando il seguente comando:gcloud storage cp gs://cloud-aoss/python/PACKAGE_NAME/VERSION PATH_TO_LOCAL_STORE --recursive
Sostituisci quanto segue:
PACKAGE_NAME
: il nome del pacchettoVERSION
: la versione del pacchettoPATH_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
--recursiveFile
requirements.txt
di esempio:bleach==5.0.0 \ --hash=sha256:6d286e765bfd3e309209cfa1d063e4d46afa966dea8cb97431c02b1e3067d812
I contenuti di ogni file
requirements.txt
possono essere combinati in un unico filerequirements-google.txt
.
Passaggi successivi
- Scaricare i pacchetti Java utilizzando l'accesso diretto al repository nel livello Premium
- Accedere ai metadati di sicurezza e verificare i pacchetti nel livello premium