En el nivel gratuito, los paquetes de Assured Open Source Software se alojan en un repositorio de Artifact Registry administrado por Google.
En esta página, se explica cómo puedes conectarte al repositorio de Artifact Registry para Assured OSS y acceder directamente a los paquetes de Python y descargarlos.
Este documento solo se aplica al nivel gratuito. En el caso del nivel Premium, consulta Descarga paquetes de Python con acceso directo al repositorio.
Antes de comenzar
Solicita a tu administrador que te otorgue el rol de IAM de Administrador de claves de cuentas de servicio (
roles/iam.serviceAccountKeyAdmin) en tu organización. Necesitas este permiso para obtener la cadena codificada en Base64 de la clave de la cuenta de servicio. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.Configura Assured OSS. Para el nivel gratuito, envía el formulario de habilitación del cliente para habilitar el acceso a Assured OSS.
Valida la conectividad a Assured OSS para las cuentas de servicio solicitadas.
Habilita la API de Artifact Registry para el proyecto principal Google Cloudde las cuentas de servicio que se usan para acceder a Assured OSS.
Instala la versión más reciente de la Google Cloud CLI. Si ya instalaste la Google Cloud CLI, ejecuta este comando para asegurarte de tener la versión más reciente:
gcloud components update
Configura la autenticación
Puedes autenticarte en el repositorio de paquetes de Python de Assured OSS con uno de los siguientes métodos:
- Autentica con keyring de Python
- Autentica con una clave de cuenta de servicio
En las secciones siguientes, se describe cómo configurar estos métodos de autenticación.
Autentica con keyring de Python
Para autenticarte en Artifact Registry con Python, te recomendamos que uses Python keyring. Para obtener más información, consulta Cómo autenticarse con keyring y orden de búsqueda de credenciales.
Para configurar el llavero de Python para la autenticación, haz lo siguiente:
Instala la biblioteca de
keyring:pip install keyringInstala el backend de Artifact Registry:
pip install keyrings.google-artifactregistry-authEnumera los backends para confirmar la instalación:
keyring --list-backendsLa lista debe incluir lo siguiente:
ChainerBackend(priority:10)GooglePythonAuth(priority:9)
Para obtener información sobre cómo configurar las credenciales predeterminadas de la aplicación, consulta Configura la autenticación.
Este paso garantiza que el auxiliar de credenciales de Assured OSS obtenga tu clave cuando se conecte con los repositorios.
Autentica con una clave de cuenta de servicio
Autentica con una clave de cuenta de servicio cuando la aplicación requiera autenticación con un nombre de usuario y una contraseña.
Reemplaza la URL del repositorio de paquetes https://us-python.pkg.dev/cloud-aoss/cloud-aoss-python/simple por la URL https://_json_key_base64:$BASE64_KEY@us-python.pkg.dev/cloud-aoss/cloud-aoss-python/simple.
Cómo instalar paquetes
En las siguientes instrucciones, se supone que usas PyPI y requirements.txt para descargar y administrar tus dependencias. Si usas otro proceso de administración de dependencias, debes seguir otros pasos.
Cómo instalar paquetes en Assured OSS
Para especificar los paquetes de Python de Assured OSS que deseas descargar, crea dos archivos requirements.txt. Los archivos de ejemplo 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: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.
Para descargar los paquetes, ejecuta los siguientes comandos:
Para descargar los paquetes necesarios que se encuentran en Artifact Registry para Assured OSS, ejecuta el siguiente comando:
pip install --require-hashes --requirement=requirements-google.txt \ --index-url https://_json_key_base64:$BASE64_KEY@us-python.pkg.dev/cloud-aoss/cloud-aoss-python/simple -v \ --no-depsTen en cuenta lo siguiente:
--require-hasheses opcional. Si se incluyen, los hashes se especifican para todos los paquetes y para todas las versiones de paquetes en el archivorequirements.txt.-ves opcional. Si se especifica, el comando proporciona más resultados. Te recomendamos que fijes las dependencias con hashes SHA-256 en tu archivorequirements.txtpara garantizar la seguridad y la reproducibilidad.
Para descargar los paquetes necesarios que no se encuentran en Artifact Registry para Assured OSS, ejecuta el siguiente comando:
pip install --requirement=requirements-pypi.txt --index-url https://pypi.org/simple -vEste comando también descarga las dependencias faltantes de los paquetes que descargaste con el comando anterior.
Accede a los paquetes que no están disponibles en el repositorio de Artifact Registry para Assured OSS
Assured OSS está preconfigurado con Assured OSS como repositorio preferido y con repositorios públicos canónicos, como Maven Central o PyPI, como repositorios secundarios.
Para usar esta función (vista previa), puedes apuntar a una sola URL:
https://us-python.pkg.dev/cloud-aoss/python/simple
Enumera todos los paquetes de Python disponibles en Assured OSS
Para usar una API y obtener una lista de todos los paquetes de Python en el repositorio de Artifact Registry, consulta Crea una lista de todos los paquetes de Python disponibles en Assured OSS.
Genera el archivo requirements-google.txt
En esta sección, se proporciona información adicional para generar el archivo requirements-google.txt que necesitas para descargar los paquetes de Python. 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 para generar un solo archivo de requisitos para todos los artefactos.
Descarga un archivo de requisitos independiente para cada artefacto.
En las siguientes secciones, se proporciona más información sobre estas opciones.
Opción 1: Usa una secuencia de comandos para 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 del paquete 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 pueden instalar correctamente en tu sistema.
- Genera el archivo
requirements-google.txtjunto 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 la CLI de Google Cloud.
Para descargar la secuencia de comandos y el archivo README.md, 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_FILEReemplaza KEY_FILE por la ruta de acceso al archivo que contiene las credenciales de la cuenta de servicio.
Descarga
generator.shen 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 --recursiveReemplaza PATH_TO_LOCAL_STORE por la ruta de acceso local en la que deseas guardar el archivo descargado.
Descarga el archivo
README.mdcon el siguiente comando:gcloud storage cp gs://cloud-aoss/utils/python-requirements-txt/v1.0/README.md PATH_TO_LOCAL_STORE --recursiveReemplaza PATH_TO_LOCAL_STORE por la ruta de acceso local en la que deseas guardar el archivo descargado. El archivo
README.mdcontiene instrucciones para usar la secuencia de comandos.
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.shPara 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 requerido
También puedes descargar un archivo requirements.txt (que contiene el hash) independiente para cada artefacto de Python y, luego, combinarlos en un solo archivo requirements.txt.
Los hashes de artefactos están disponibles en un bucket de Cloud Storage, que se puede descargar con la CLI de gcloud. Los hashes 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_FILEReemplaza KEY_FILE por la ruta de acceso al archivo que contiene las credenciales de la cuenta de servicio.
Descarga el
requirements.txtde un paquete y una versión específicos en tu máquina local con el siguiente comando:gcloud storage cp gs://cloud-aoss/python/PACKAGE_NAME/VERSION PATH_TO_LOCAL_STORE --recursiveReemplaza 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 deseas descargar el archivo.
Comando de ejemplo:
gcloud storage cp gs://cloud-aoss/python/bleach/5.0.0 /tmp/bleach--recursiveArchivo
requirements.txtde muestra:bleach==5.0.0 \ --hash=sha256:6d286e765bfd3e309209cfa1d063e4d46afa966dea8cb97431c02b1e3067d812El contenido de cada uno de estos archivos
requirements.txtse puede combinar en un solo archivorequirements-google.txt.
¿Qué sigue?
- Configura el acceso al repositorio virtual
- Paquetes Java y Python compatibles
- Cómo acceder a los metadatos de seguridad con Cloud Storage
- Cómo acceder a los metadatos de seguridad con la API de Artifact Analysis
- Cómo suscribirse a las notificaciones