El nivel premium de Assured Open Source Software (Assured OSS) te permite mejorar la seguridad de tu código con los paquetes de OSS que Google usa para sus propios flujos de trabajo de desarrollador. Cuando usas Assured OSS, tus desarrolladores pueden aprovechar la experiencia y los conocimientos de seguridad que Google aplica para proteger sus propias dependencias de código abierto.
Cuando integras Assured OSS en Security Command Center, puedes hacer lo siguiente:
- Elige entre miles de paquetes seleccionados y populares de Java, Python y Go, incluidos proyectos comunes de aprendizaje automático y de inteligencia artificial, como TensorFlow, Pandas y Scikit-learn.
- Configura un proxy seguro para descargar todos los paquetes de Java, Python, Go y JavaScript con certificaciones de Assured OSS, lo que convierte a Google en un proveedor conocido y de confianza.
- Usa las SBOM y los VEX en Assured OSS que se proporcionan en formatos estándar de la industria, como SPDX y CycloneDX, para obtener más información sobre tus ingredientes.
- Aumenta la confianza en la integridad de los paquetes que usas a través de la procedencia firmada y evidente de Google.
- Reduce el riesgo de seguridad, ya que Google analiza, detecta y corrige activamente las vulnerabilidades nuevas en los paquetes seleccionados.
Antes de comenzar
Completa estas tareas antes de completar las tareas restantes de esta página.
Activa el nivel Enterprise de Security Command Center
Verifica que el nivel Enterprise de Security Command Center esté activado a nivel de la organización.
Configura permisos a nivel de la organización
Debes configurar los permisos a nivel de la organización y del proyecto.
-
Asegúrate de tener los siguientes roles en la organización: Administrador de Security Center, administrador de la organización
Verifica los roles
-
En la consola de Google Cloud , dirígete a la página IAM.
Ir a IAM - Selecciona la organización.
-
En la columna Principal, busca todas las filas que te identifiquen a ti o a un grupo en el que se te incluya. Para saber en qué grupos estás incluido, comunícate con tu administrador.
- Para todas las filas en las que se te especifique o se te incluya, verifica la columna Rol para ver si la lista de roles incluye los roles necesarios.
Otorga los roles
-
En la consola de Google Cloud , dirígete a la página IAM.
Ir a IAM - Selecciona la organización.
- Haz clic en Otorgar acceso.
-
En el campo Principales nuevas, ingresa tu identificador de usuario. Esta suele ser la dirección de correo electrónico de una Cuenta de Google.
- Haz clic en Seleccionar un rol y, luego, busca el rol.
- Para otorgar roles adicionales, haz clic en Agregar otro rol y agrega uno más.
- Haz clic en Guardar.
-
Configura permisos a nivel del proyecto
-
Asegúrate de tener los siguientes roles en el proyecto: Administrador de Service Usage, Administrador de cuentas de servicio, Administrador de IAM de proyecto
Verifica los roles
-
En la consola de Google Cloud , dirígete a la página IAM.
Ir a IAM - Selecciona el proyecto.
-
En la columna Principal, busca todas las filas que te identifiquen a ti o a un grupo en el que se te incluya. Para saber en qué grupos estás incluido, comunícate con tu administrador.
- Para todas las filas en las que se te especifique o se te incluya, verifica la columna Rol para ver si la lista de roles incluye los roles necesarios.
Otorga los roles
-
En la consola de Google Cloud , dirígete a la página IAM.
Ir a IAM - Selecciona el proyecto.
- Haz clic en Otorgar acceso.
-
En el campo Principales nuevas, ingresa tu identificador de usuario. Esta suele ser la dirección de correo electrónico de una Cuenta de Google.
- Haz clic en Seleccionar un rol y, luego, busca el rol.
- Para otorgar roles adicionales, haz clic en Agregar otro rol y agrega uno más.
- Haz clic en Guardar.
-
Configura Google Cloud CLI
En la consola de Google Cloud , activa Cloud Shell.
En la parte inferior de la consola de Google Cloud , se inicia una sesión de Cloud Shell que muestra una ventana emergente con una línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.
Configurar Assured OSS
Console
En la consola de Google Cloud , ve a la Guía de configuración de Security Command Center.
Verifica que estés viendo la organización en la que activaste el nivel Security Command Center Enterprise.
Expande el panel de resumen Revisa las funciones de seguridad.
Haz clic en Seguridad del código > Configurar.
En el panel Configurar la seguridad del código, haz clic en Configuración de AOSS.
Selecciona una cuenta de servicio nueva o las cuentas de servicio existentes a las que deseas agregar los permisos de Assured Open Source Software.
Selecciona el proyecto Google Cloud en el que deseas ubicar los recursos de Assured OSS.
Haz clic en Configurar Assured OSS.
El proceso de configuración completa automáticamente las siguientes acciones:
- Si se selecciona, se crea la nueva cuenta de servicio
assuredoss@PROJECT_ID.gservicesaccount.com. - Asigna el rol de usuario de Assured OSS a la cuenta de servicio designada para usar con Assured OSS.
- Asigna el rol de administrador de Assured OSS a la cuenta de usuario con la que se accedió para que la cuenta pueda configurar el servicio.
- Habilita la API de Assured Open Source Software y, si aún no está habilitada, la API de Artifact Registry.
- Configura el servicio de proxy de Assured OSS en una instancia de Artifact Registry en el proyecto que seleccionaste. Se aprovisiona un repositorio para cada lenguaje (Java, Python, Go y JavaScript). Estos repositorios pueden extraer automáticamente paquetes de la cartera seleccionada. Si un paquete no está disponible como parte de la cartera seleccionada, los repositorios redireccionan la solicitud a los repositorios canónicos. El servicio de proxy solo admite la región de EE.UU. Para obtener más información, consulta Opciones de repositorios de Assured OSS.
- Te otorga a ti y a la cuenta de servicio permisos para acceder a los metadatos del paquete y a las notificaciones de los proyectos que son propiedad de Google.
- Si se selecciona, se crea la nueva cuenta de servicio
Crea una clave de cuenta de servicio para cada cuenta de servicio designada de Assured OSS y descarga la clave en formato JSON.
En la línea de comandos de tu máquina local, ejecuta el siguiente comando en el archivo de clave descargado para obtener la cadena codificada en base64:
base64 KEY_FILENAME.json
Reemplaza
KEY_FILENAME.jsonpor el nombre de la clave de la cuenta de servicio que descargaste.Necesitas la cadena codificada en base64 cuando configuras un repositorio remoto para Assured OSS.
Para descargar los paquetes, usa los extremos que Assured OSS aprovisiona para cada idioma. Toma nota de estos extremos para usarlos más adelante.
- Java:
https://us-maven.pkg.dev/PROJECT_ID/assuredoss-java
- Python:
https://us-python.pkg.dev/
PROJECT_ID/assuredoss-python - JavaScript:
https://us-npm.pkg.dev/
PROJECT_ID/assuredoss-javascript - Go:
https://us-go.pkg.dev/
PROJECT_ID/assuredoss-go
Reemplaza
PROJECT_IDpor el ID del proyecto que elegiste cuando configuraste Assured OSS.- Java:
Haz clic en Siguiente. Configura Assured OSS con el administrador de repositorios de artefactos de tu organización, como JFrog Artifactory o Sonatype Nexus.
gcloud
Autentícate en Google Cloud con una cuenta de usuario que quieras usar para habilitar Assured OSS:
gcloud auth revoke gcloud auth application-default revoke gcloud auth login
Busca el proyecto en el que deseas ubicar los recursos de OSS asegurado:
gcloud alpha projects search --query="displayName=PROJECT_NAME"
Reemplaza
PROJECT_NAMEpor el nombre del proyecto.Configura el proyecto en el que deseas ubicar los recursos de Assured OSS:
gcloud config set project PROJECT_ID
Reemplaza
PROJECT_IDpor el identificador del proyecto.Otorga roles a la cuenta de usuario para configurar Assured OSS:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=user:email@domain.com \ --role=roles/assuredoss.admin gcloud projects add-iam-policy-binding PROJECT_ID \ --member=user:email@domain.com \ --role=roles/serviceusage.serviceUsageAdmin gcloud projects add-iam-policy-binding PROJECT_ID \ --member=user:email@domain.com \ --role=roles/iam.serviceAccountAdmin
Aquí,
email@domain.comes la dirección de correo electrónico de tu cuenta de usuario.Habilita Assured OSS en el proyecto. Habilitar Assured OSS también habilita la API de Artifact Registry.
gcloud services enable assuredoss.googleapis.com
Para crear una cuenta de servicio nueva para Assured OSS en lugar de usar las cuentas de servicio existentes, completa los siguientes pasos:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \ --description="Service account for using Assured OSS" --display-name="Assured OSS service account"
Reemplaza
SERVICE_ACCOUNT_NAMEpor el nombre de la cuenta de servicio (por ejemplo,assuredoss).Configura las cuentas de servicio para Assured OSS:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \ --role roles/assuredoss.user
Reemplaza lo siguiente:
SERVICE_ACCOUNT_NAME: Es el nombre de la cuenta de servicio (por ejemplo,assuredoss).PROJECT_ID: Es el identificador del proyecto.
- Para acceder al repositorio de metadatos de seguridad después de configurar Assured OSS Premium con gcloud, envía un correo electrónico a customer-support-aoss@google.com con las cuentas de servicio que habilitaste para Assured OSS.
Configura el servicio de proxy de Assured OSS en una instancia de Artifact Registry creando repositorios de Assured OSS. Debes crear repositorios para todos los idiomas. El servicio de proxy de OSS garantizado que aprovisiona los repositorios solo admite la región de EE.UU.
alias gcurlj='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -X' gcurlj POST https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories\?repositoryId\=assuredoss-java -d '{"format": "MAVEN", "mode": "AOSS_REPOSITORY"}' gcurlj POST https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories\?repositoryId\=assuredoss-javascript -d '{"format": "NPM", "mode": "AOSS_REPOSITORY"}' gcurlj POST https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories\?repositoryId\=assuredoss-python -d '{"format": "PYTHON", "mode": "AOSS_REPOSITORY"}' gcurlj POST https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories\?repositoryId\=assuredoss-go -d '{"format": "GO", "mode": "AOSS_REPOSITORY"}'Reemplaza
PROJECT_IDpor el ID del proyecto que elegiste cuando configuraste Assured OSS.Estos repositorios pueden extraer automáticamente paquetes de la cartera seleccionada. Si un paquete no está disponible como parte de la cartera seleccionada, los repositorios redireccionan la solicitud a los repositorios canónicos.
Crea una clave de cuenta de servicio para cada cuenta de servicio de OSS asegurado y descarga la clave en formato JSON.
En la línea de comandos, ejecuta el siguiente comando en el archivo de clave descargado para obtener la cadena codificada en Base64:
base64 KEY_FILENAME.json
Reemplaza
KEY_FILENAME.jsonpor el nombre de la clave de la cuenta de servicio que descargaste.Necesitas la cadena codificada en base64 cuando configuras un repositorio remoto para Assured OSS.
Para descargar los paquetes, usa los extremos aprovisionados por Assured OSS para cada idioma. Toma nota de estos extremos:
- Java:
https://us-maven.pkg.dev/PROJECT_ID/assuredoss-java
- Python:
https://us-python.pkg.dev/
PROJECT_ID/assuredoss-python - JavaScript:
https://us-npm.pkg.dev/
PROJECT_ID/assuredoss-javascript - Go:
https://us-go.pkg.dev/
PROJECT_ID/assuredoss-go
Reemplaza
PROJECT_IDpor el ID del proyecto que elegiste cuando configuraste Assured OSS.- Java:
Configura Assured OSS para descargar paquetes con el administrador de repositorios de artefactos de tu organización, como JFrog Artifactory o Sonatype Nexus.
De manera opcional, consulta los paquetes disponibles de Java, Python, Go y JavaScript:
gcloud auth revoke gcloud auth application-default revoke gcloud auth login --cred-file=KEY_FILENAME.json
Reemplaza
KEY_FILENAME.jsonpor el nombre de la clave de la cuenta de servicio que descargaste.export GOOGLE_APPLICATION_CREDENTIALS=KEY_FILENAME.json
Reemplaza
KEY_FILENAME.jsonpor el nombre de la clave de la cuenta de servicio que descargaste.gcurlj GET "https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-java/packages" gcurlj GET "https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-python/packages" gcurlj GET "https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-javascript/packages" gcurlj GET "https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-go/packages"
Reemplaza
PROJECT_IDpor el ID del proyecto que elegiste cuando configuraste Assured OSS.
¿Qué sigue?
- Configura la compatibilidad con los Controles del servicio de VPC
- Valida tu conexión
- Descarga paquetes de Go
- Descarga paquetes de Java
- Descarga paquetes de Python
- Configura un repositorio remoto
- Verifica los metadatos de seguridad
- Configura las notificaciones para las actualizaciones de paquetes