Realiza la integración con Assured OSS para la seguridad del código

El nivel premium de software de código abierto garantizado (Assured OSS) te permite mejorar la seguridad de tu código mediante el uso de los paquetes de OSS que Google utiliza para sus propios flujos de trabajo de desarrollador. Cuando usas Assured OSS, tus desarrolladores pueden beneficiarse de la experiencia y la especialización en seguridad que Google aplica para proteger sus propias dependencias de código abierto.

Cuando integras Assured OSS con Security Command Center, puedes hacer lo siguiente:

  • Elige entre miles de paquetes seleccionados y más populares de Java y Python, 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 y JavaScript con certificaciones de Assured OSS, lo que convierte a Google en un proveedor conocido y de confianza.
  • Usa los SBOM y 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 con una fuente firmada y evidente de Google.
  • Reduce el riesgo de seguridad, ya que Google analiza, detecta y corrige de forma activa las vulnerabilidades nuevas en los paquetes seleccionados.

Antes de comenzar

Completa estas tareas antes de completar las restantes en esta página.

Activa el nivel de Security Command Center Enterprise

Verifica que el nivel de Security Command Center Enterprise esté activado a nivel de la organización y que hayas completado los primeros seis pasos de la guía de configuración.

Configura permisos a nivel de la organización

Debes configurar permisos a nivel de la organización y del proyecto.

  1. Make sure that you have the following role or roles on the organization: Security Center Admin, Organization Admin

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the organization.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role colunn to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Ir a IAM
    2. Selecciona la organización.
    3. Haz clic en Grant access.
    4. 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.

    5. En la lista Seleccionar un rol, elige un rol.
    6. Para otorgar funciones adicionales, haz clic en Agregar otro rol y agrega cada rol adicional.
    7. Haz clic en Guardar.

    Configura permisos a nivel del proyecto

    1. Make sure that you have the following role or roles on the project: Service Usage Admin, Service Account Admin, Project IAM Admin

      Check for the roles

      1. In the Google Cloud console, go to the IAM page.

        Go to IAM
      2. Select the project.
      3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

      4. For all rows that specify or include you, check the Role colunn to see whether the list of roles includes the required roles.

      Grant the roles

      1. In the Google Cloud console, go to the IAM page.

        Ir a IAM
      2. Selecciona el proyecto.
      3. Haz clic en Grant access.
      4. 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.

      5. En la lista Seleccionar un rol, elige un rol.
      6. Para otorgar funciones adicionales, haz clic en Agregar otro rol y agrega cada rol adicional.
      7. Haz clic en Guardar.

      Configura Google Cloud CLI

      In the Google Cloud console, activate Cloud Shell.

      Activate Cloud Shell

      At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

      Configurar Assured OSS

      Console

      1. En la consola de Google Cloud, ve a la página Resumen de riesgos de Security Command Center.

        Ir a Descripción general de riesgos

      2. Verifica que estés viendo la organización en la que activaste el nivel de Security Command Center Enterprise.

      3. Haz clic en Ver guía de configuración.

      4. Haz clic en Configurar la seguridad de código.

      5. Selecciona una cuenta de servicio nueva o las cuentas de servicio existentes a las que deseas agregar los permisos de software de código abierto asegurado.

      6. Selecciona el proyecto de Google Cloud en el que deseas ubicar los recursos de OSS asegurados.

      7. Haz clic en Configurar Assured OSS.

        El proceso de configuración completa automáticamente lo siguiente:

        • Si se selecciona, se crea la cuenta de servicio nueva assuredoss@PROJECT_ID.gservicesaccount.com.
        • Asigna el rol de usuario de Assured OSS a la cuenta de servicio designada para usarla con Assured OSS.
        • Asigna el rol de administrador de Assured OSS a la cuenta de usuario que accedió para que esta 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 y JavaScript). Estos repositorios pueden extraer paquetes automáticamente 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 es compatible con la región de EE.UU.
        • 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.
      8. Crea una clave de cuenta de servicio para cada cuenta de servicio de Assured OSS designada y descárgala en formato JSON.

      9. 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.json por 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.

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

        Reemplaza PROJECT_ID por el ID del proyecto que seleccionaste cuando configuraste Assured OSS.

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

      1. Realiza la autenticación en Google Cloud con una cuenta de usuario que desees usar para habilitar Assured OSS:

        gcloud auth revoke
        gcloud auth application-default revoke
        gcloud auth login
        
      2. Busca el proyecto en el que deseas ubicar los recursos de OSS asegurados:

        gcloud alpha projects search --query="displayName=PROJECT_NAME"
        

        Reemplaza PROJECT_NAME por el nombre del proyecto.

      3. Establece el proyecto en el que deseas ubicar los recursos de Assured OSS:

        gcloud config set project PROJECT_ID
        

        Reemplaza PROJECT_ID por el identificador del proyecto.

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

        En el ejemplo anterior, email@domain.com es la dirección de correo electrónico de tu cuenta de usuario.

      5. Habilita Assured OSS en el proyecto. Si habilitas el OSS asegurado, también se habilita la API de Artifact Registry.

        gcloud services enable assuredoss.googleapis.com
        
      6. Para crear una cuenta de servicio nueva para Assured OSS en lugar de usar cuentas de servicio existentes, completa lo siguiente:

        gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \
          --description="Service account for using Assured OSS"
          --display-name="Assured OSS service account"
        

        Reemplaza SERVICE_ACCOUNT_NAME por el nombre de la cuenta de servicio (por ejemplo, assuredoss).

      7. 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: El nombre de la cuenta de servicio (por ejemplo, assuredoss).
        • PROJECT_ID: Es el identificador del proyecto.
      8. Crea repositorios de Assured OSS para configurar el servicio de proxy de Assured OSS en una instancia de Artifact Registry. Debes crear repositorios para todos los idiomas. El servicio de proxy de Assured OSS 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"}'
        

        Reemplaza PROJECT_ID por el ID del proyecto que seleccionaste cuando configuraste Assured OSS.

        Estos repositorios pueden extraer paquetes automáticamente 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.

      9. Crea una clave de cuenta de servicio para cada cuenta de servicio de Assured OSS y descárgala en formato JSON.

      10. 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.json por 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.

      11. Para descargar los paquetes, usa los extremos que aprovisiona 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

        Reemplaza PROJECT_ID por el ID del proyecto que seleccionaste cuando configuraste Assured OSS.

      12. Configura Assured OSS para descargar paquetes con el administrador de repositorios de artefactos de tu organización, como JFrog Artifactory o Sonatype Nexus.

      13. De manera opcional, puedes ver los paquetes de Java, Python y JavaScript disponibles:

        gcloud auth revoke
        gcloud auth application-default revoke
        gcloud auth login --cred-file=KEY_FILENAME.json
        

        Reemplaza KEY_FILENAME.json por el nombre de la clave de la cuenta de servicio que descargaste.

        export GOOGLE_APPLICATION_CREDENTIALS=KEY_FILENAME.json
        

        Reemplaza KEY_FILENAME.json por 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"
        

        Reemplaza PROJECT_ID por el ID del proyecto que seleccionaste cuando configuraste Assured OSS.

      ¿Qué sigue?