Analiza paquetes de Node.js automáticamente

Aprende a habilitar el análisis automático, enviar una imagen de contenedor en Artifact Registry y ver una lista de las vulnerabilidades que se encontraron en la imagen.

Artifact Analysis analiza las vulnerabilidades cada vez que se envía una imagen a Artifact Registry. Los administradores de la plataforma y los desarrolladores de aplicaciones pueden usar esta función de análisis automático para identificar riesgos en su canalización de entrega de software.

En esta guía de inicio rápido, se usa un paquete simple disponible de forma pública para demostrar un tipo de análisis de paquetes. De forma predeterminada, Artifact Analysis analiza las vulnerabilidades en varios tipos de paquetes una vez que habilitas la API de análisis. Los tipos de paquetes compatibles incluyen: SO, Go, Java (Maven), Python y Node.js (npm).

Antes de comenzar

  1. Accede a tu Google Cloud cuenta de. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. Instala Google Cloud CLI.

  3. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

  4. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  5. Crea o selecciona un Google Cloud proyecto.

    Roles necesarios para seleccionar o crear un proyecto

    • Seleccionar un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
    • Crear un proyecto: Para crear un proyecto, necesitas el rol de creador de proyectos (roles/resourcemanager.projectCreator), que contiene el resourcemanager.projects.create permiso. Obtén información para otorgar roles.
    • Crea un proyecto de: Google Cloud

      gcloud projects create PROJECT_ID

      Reemplaza PROJECT_ID por un nombre para el Google Cloud proyecto de que estás creando.

    • Selecciona el Google Cloud proyecto de que creaste:

      gcloud config set project PROJECT_ID

      Reemplaza PROJECT_ID por el nombre de tu Google Cloud proyecto de.

  6. Verifica que la facturación esté habilitada para tu Google Cloud proyecto.

  7. Habilita las APIs de Artifact Registry y Container Scanning:

    Roles necesarios para habilitar las APIs

    Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin), que contiene el serviceusage.services.enable permiso. Obtén información para otorgar roles.

    gcloud services enable containerscanning.googleapis.com  artifactregistry.googleapis.com
  8. Instala Google Cloud CLI.

  9. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

  10. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  11. Crea o selecciona un Google Cloud proyecto.

    Roles necesarios para seleccionar o crear un proyecto

    • Seleccionar un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
    • Crear un proyecto: Para crear un proyecto, necesitas el rol de creador de proyectos (roles/resourcemanager.projectCreator), que contiene el resourcemanager.projects.create permiso. Obtén información para otorgar roles.
    • Crea un proyecto de: Google Cloud

      gcloud projects create PROJECT_ID

      Reemplaza PROJECT_ID por un nombre para el Google Cloud proyecto de que estás creando.

    • Selecciona el Google Cloud proyecto de que creaste:

      gcloud config set project PROJECT_ID

      Reemplaza PROJECT_ID por el nombre de tu Google Cloud proyecto de.

  12. Verifica que la facturación esté habilitada para tu Google Cloud proyecto.

  13. Habilita las APIs de Artifact Registry y Container Scanning:

    Roles necesarios para habilitar las APIs

    Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin), que contiene el serviceusage.services.enable permiso. Obtén información para otorgar roles.

    gcloud services enable containerscanning.googleapis.com  artifactregistry.googleapis.com

Crea un repositorio de Docker en Artifact Registry

Crea un repositorio de Docker para almacenar la imagen de muestra de esta guía de inicio rápido.

  1. Abre la página Repositorios en la Google Cloud consola.

    Abrir la página repositorios

  2. Haz clic en Crear repositorio.

  3. En la página Crear repositorio, ingresa la siguiente configuración:

    • Nombre: quickstart-docker-repo
    • Formato: Docker
    • Modo: Estándar
    • Tipo de ubicación: Región
    • Región: us-central1
  4. Haz clic en Crear.

Verás la página Repositorios. Tu repositorio quickstart-docker-repo se agrega a la lista de repositorios.

Configura la autenticación

Antes de poder enviar o extraer imágenes con Artifact Registry, debes configurar Docker para que use Google Cloud CLI con el objetivo de autenticar las solicitudes enviadas a Artifact Registry.

En Cloud Shell o en tu shell local, configura la autenticación para los repositorios de Docker en la región us-central1:

gcloud auth configure-docker us-central1-docker.pkg.dev

Obtén un paquete

  1. Cambia a un directorio en el que quieras guardar la imagen de contenedor.

  2. Copia una imagen en tu directorio local. Por ejemplo, puedes usar Docker para extraer bitnami.

    docker pull bitnami/express
    

Etiqueta tu paquete con un nombre de repositorio

Cuando quieras enviar un paquete a Artifact Registry, debes configurar el comando docker push para enviar la imagen a una ubicación específica.

Ejecuta el siguiente comando para etiquetar la imagen como quickstart-image:tag1:

docker tag bitnami \
us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

Aquí:

  • PROJECT es el ID del proyecto de Google Cloud . Si el ID de tu proyecto contiene dos puntos (:), consulta Proyectos con alcance de dominio.
  • us-central1 es la región del repositorio de Artifact Registry.
  • docker.pkg.dev es el nombre de host de los repositorios de Docker.
  • quickstart-image es el nombre de imagen que deseas usar en el repositorio. El nombre de la imagen puede ser diferente al nombre de la imagen local.
  • tag1 es una etiqueta que agregas a la imagen de Docker. Si no especificaste una etiqueta, Docker aplicará la etiqueta predeterminada latest.

Envía la imagen a Artifact Registry

Artifact Analysis analiza automáticamente los paquetes npm nuevos cuando se suben a Artifact Registry.

Para enviar tu imagen a tu repositorio de Docker en Artifact Registry, ejecuta el siguiente comando:

docker push us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

Reemplaza PROJECT por tu Google Cloud ID del proyecto. Si el ID de tu proyecto contiene dos puntos (:), consulta Proyectos con alcance de dominio.

Consulta los resultados del análisis de vulnerabilidades

Otras formas de ver los resultados

Laconsola muestra hasta 1,200 vulnerabilidades. Google Cloud Si tu imagen tiene más de 1,200 vulnerabilidades, debes usar gcloud o la API para ver la lista completa.

Limpia

Para evitar que se apliquen cargos a tu Google Cloud cuenta de por los recursos que usaste en esta página, borra el Google Cloud proyecto de que tiene los recursos.

Si creaste un proyecto nuevo para esta guía, ahora puedes borrarlo.

  1. En la Google Cloud consola, ve a la página Administrar recursos.

    Ir a Administrar recursos

  2. En la lista de proyectos, elige el proyecto que tú quieres borrar y haz clic en Borrar.
  3. En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.

¿Qué sigue?