Después de Integrar Assured OSS con Security Command Center, Los paquetes de Assured Open Source Software alojado en un repositorio de Artifact Registry que se crea en un proyecto que control.
En esta página, se explica cómo puedes conectarte al repositorio de Artifact Registry para Assured OSS para acceder directamente a los paquetes de Python y descargarlos
Este documento se aplica solo al nivel premium de Assured OSS. Para el nivel gratuito, consulta Descargar paquetes de Python con acceso directo al repositorio para el nivel gratuito.
Antes de comenzar
Valida la conectividad a Assured OSS para las cuentas de servicio solicitadas.
Instala la versión más reciente de Google Cloud CLI.
Si instalaste Google Cloud CLI anteriormente, asegúrate de tener el a la última versión ejecutando el siguiente comando:
gcloud components update
Configura la autenticación
Puedes autenticarte en el paquete de Assured OSS para Python a través de uno de los siguientes métodos:
- Autenticar con un llavero de claves
- Autentica con una clave de cuenta de servicio
En las siguientes secciones, se describe cómo configurar estos métodos de autenticación.
Cómo autenticar con el llavero
Para usar el llavero de claves de Python, haz lo siguiente: autentica en Artifact Registry, consulta Autenticación con el llavero de claves y el información sobre la búsqueda de credenciales por orden. Te recomendamos que uses el llavero de Python para la autenticación.
Para configurar el llavero de claves para la autenticación, haz lo siguiente:
Instala la biblioteca
keyring
:pip install keyring
Instala el backend de Artifact Registry:
pip install keyrings.google-artifactregistry-auth
Muestra una lista de backends para confirmar la instalación:
keyring --list-backends
La lista debe incluir lo siguiente:
ChainerBackend(priority:10)
GooglePythonAuth(priority:9)
Para obtener información sobre la configuración de las credenciales predeterminadas de la aplicación, consulta Configura la autenticación.
Este paso garantiza que el auxiliar de credenciales de Assured OSS obtiene tu clave cuando te conectas con los repositorios.
Autentica con una clave de cuenta de servicio
Autenticar con una clave de cuenta de servicio cuando la aplicación requiera la autenticación con un nombre de usuario y una contraseña.
Reemplaza la URL del repositorio de paquetes
https://us-python.pkg.dev/PROJECT_ID/assuredoss-python/simple
con
la URL
https://_json_key_base64:BASE64_KEY@us-python.pkg.dev/PROJECT_ID/assuredoss-python/simple
Reemplaza lo siguiente:
- Reemplaza
PROJECT_ID
por el ID del proyecto seleccionado cuando configuras Assured Open Source Software. Reemplaza
BASE64_KEY
por el archivo de claves JSON de la cuenta de servicio codificado en base64. Para convertir todo el archivo de claves JSON de la cuenta de servicio a codificación base64, usa el siguiente comando:BASE64_KEY=$(cat KEY_FILE_LOCATION | base64 -w 0)
Reemplaza
KEY_FILE_LOCATION
por la ubicación del servicio. de claves JSON.
Instalar paquetes
En las siguientes instrucciones, se supone que usas PyPI como el repositorio para descargar tus dependencias. Si utilizas otro debes seguir diferentes pasos para descargar las dependencias.
Instala paquetes existentes en Assured OSS
Para especificar los paquetes de Assured OSS para Python que deseas descargar, crea dos archivos requirements.txt
. Los archivos de muestra son los siguientes:
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.
Para descargar los paquetes, ejecuta los siguientes comandos:
Para descargar los paquetes requeridos que se encuentran en el Ejecuta lo siguiente con Artifact Registry para Assured OSS:
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
Ten en cuenta lo siguiente:
--require-hashes
es opcional. Si se incluyen, se especifican los hashes paquetes y para todas las versiones de paquetes en el archivorequirements.txt
.- Reemplaza
BASE64_KEY
por el servicio codificado en base64 en el archivo JSON de la cuenta. -v
es opcional. Si se especifica, el comando muestra más resultados.
Para descargar los paquetes necesarios que no están presentes en el Artifact Registry de Assured OSS, ejecuta lo siguiente:
pip install --requirement=requirements-pypi.txt --index-url https://pypi.org/simple -v
Este comando también descarga las dependencias faltantes de los paquetes que descargaste con el comando anterior.
Enumerar todos los paquetes de Python disponibles en Assured OSS
Para usar un API para obtener una lista de todos los paquetes de Python en el repositorio de Artifact Registry, consulta Enumera todos los paquetes de Python disponibles en Assured OSS.
Genera el archivo requirements-google.txt
En esta sección, se proporciona información adicional sobre cómo generar el
requirements-google.txt
que necesitas para descargar Python
paquetes. Para descargar el hash y generar el archivo requirements-google.txt
para tu entorno, puedes usar una de las siguientes dos opciones:
Usa una secuencia de comandos a fin de generar un solo archivo de requisitos para todos los artefactos.
Descarga un archivo de requisitos separado para cada artefacto.
En las siguientes secciones, se proporciona más información sobre estas opciones.
Opción 1: Usa una secuencia de comandos a fin de generar un solo archivo de requisitos para todos los artefactos
Usa la secuencia de comandos generator.sh
para generar un solo
Archivo requirements-google.txt
para todos los paquetes de Python
(junto con sus hashes) disponibles con Assured OSS para el sistema operativo Linux. Los paquetes deben satisfacer restricciones, como la versión de Python, la arquitectura de la máquina y el sistema operativo. Luego, puedes borrar las versiones de paquetes que no necesites y usar el archivo resultante.
La secuencia de comandos generator.sh
ayuda de las siguientes dos maneras:
- Genera la lista más reciente de versiones de paquetes de Python disponibles con Assured OSS que se puede instalar correctamente en tu sistema.
- Genera el archivo
requirements-google.txt
junto con todos los hashes.
La secuencia de comandos requerida y su archivo README.md
están disponibles en un bucket de Cloud Storage (gs://cloud-aoss/utils/python-requirements-txt/v1.0
) que se puede descargar con Google Cloud CLI.
Para descargar la secuencia de comandos y el archivo README.md
, sigue estos pasos:
Autentica con la cuenta de servicio para acceder al bucket de Cloud Storage con el siguiente comando:
gcloud auth activate-service-account --key-file KEY_FILE
Reemplaza
KEY_FILE
por la ruta de acceso al archivo que contiene. las credenciales de la cuenta de servicio que se proporcionaron durante la configuración.Descarga
generator.sh
en tu máquina con el siguiente comando:gcloud storage cp gs://cloud-aoss/utils/python-requirements-txt/v1.0/generator.sh PATH_TO_LOCAL_STORE --recursive
Reemplaza
PATH_TO_LOCAL_STORE
por la ruta de acceso local en la que deseas guardar el archivo descargado.Descarga el archivo
README.md
con el siguiente comando:gcloud storage cp gs://cloud-aoss/utils/python-requirements-txt/v1.0/README.md PATH_TO_LOCAL_STORE --recursive
Reemplaza
PATH_TO_LOCAL_STORE
por la ruta de acceso local en la que deseas guardar el archivo descargado. El archivoREADME.md
contiene instrucciones sobre cómo usar el guion.
Para ejecutar la secuencia de comandos, usa los siguientes comandos:
Para generar el archivo
requirements-google.txt
, ejecuta el siguiente comando:chmod +x generator.sh ./generator.sh
Para obtener la información del paquete en un archivo CSV, ejecuta el siguiente comando:
chmod +x generator.sh ./generator.sh -i
Opción 2: Descarga requirements.txt
para cada artefacto obligatorio
También puedes descargar un archivo requirements.txt
separado (que contiene el hash).
para cada artefacto de Python y, luego, combinarlos en un solo requirements.txt
.
Los hash de artefactos están disponibles en un bucket de Cloud Storage que se puede descargar.
con la CLI de gcloud. Los valores hash de cada paquete y una versión se encuentran en la ubicación del bucket de Cloud Storage gs://cloud-aoss/python/PACKAGE_NAME/VERSION
.
Para descargar el archivo requirements.txt
, sigue estos pasos:
Autentícate con la cuenta de servicio para acceder al bucket de Cloud Storage con el siguiente comando:
gcloud auth activate-service-account --key-file KEY_FILE
Reemplaza
KEY_FILE
por la ruta de acceso al archivo que contiene. las credenciales de la cuenta de servicio.Descarga el archivo
requirements.txt
de un paquete y una versión específicos en tu con el siguiente comando:gcloud storage cp gs://cloud-aoss/python/PACKAGE_NAME/VERSION PATH_TO_LOCAL_STORE --recursive
Reemplaza lo siguiente:
PACKAGE_NAME
: Es el nombre del paquete.VERSION
: Es la versión del paquete.PATH_TO_LOCAL_STORE
: Es la ruta de acceso local en la que desees. para descargar el archivo
Comando de muestra:
gcloud storage cp gs://cloud-aoss/python/bleach/5.0.0 /tmp/bleach
--recursivoArchivo
requirements.txt
de muestra:bleach==5.0.0 \ --hash=sha256:6d286e765bfd3e309209cfa1d063e4d46afa966dea8cb97431c02b1e3067d812
El contenido de cada uno de esos archivos
requirements.txt
se puede combinar en un solo archivorequirements-google.txt
.
¿Qué sigue?
- Descarga paquetes de Java con acceso directo al repositorio en el nivel premium
- Accede a los metadatos de seguridad y verifica los paquetes en el nivel premium