Eseguire la scansione automatica dei pacchetti Java

Scopri come attivare la scansione automatica, eseguire il push di un'immagine container su Artifact Registry e visualizzare un elenco di eventuali vulnerabilità rilevate nell'immagine.

Artifact Analysis cerca le vulnerabilità ogni volta che viene eseguito il push di un'immagine in Artifact Registry. Gli amministratori della piattaforma e gli sviluppatori di applicazioni possono utilizzare questa funzionalità di scansione automatica per identificare i rischi nella pipeline di distribuzione del software.

Questa guida rapida utilizza un semplice pacchetto disponibile pubblicamente per dimostrare un tipo di analisi del pacchetto. Per impostazione predefinita, Artifact Analysis cerca vulnerabilità in più tipi di pacchetti dopo l'abilitazione dell'API di scansione. I tipi di pacchetti supportati includono: OS, Go, Java (Maven), Python e Node.js (npm).

Prima di iniziare

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.
  3. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Enable the Artifact Registry and Container Scanning APIs:

    gcloud services enable containerscanning.googleapis.com  artifactregistry.googleapis.com
  7. Install the Google Cloud CLI.
  8. To initialize the gcloud CLI, run the following command:

    gcloud init
  9. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  10. Make sure that billing is enabled for your Google Cloud project.

  11. Enable the Artifact Registry and Container Scanning APIs:

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

Artifact Analysis non esegue automaticamente l'analisi delle immagini esistenti. Per analizzare un'immagine esistente, devi eseguirne di nuovo il push.

Crea un repository Docker in Artifact Registry

Crea un repository Docker per archiviare l'immagine di esempio per questa guida rapida.

  1. Apri la pagina Repositories (Repositoi) nella console Google Cloud.

    Apri la pagina Repository

  2. Fai clic su Crea repository.

  3. Nella pagina Crea repository, inserisci le seguenti impostazioni:

    • Nome: quickstart-docker-repo
    • Formato: Docker
    • Modalità: Standard
    • Tipo di località: Regione
    • Regione: us-central1
  4. Fai clic su Crea.

Viene visualizzata la pagina Repository. Il repository quickstart-docker-repo viene aggiunto all'elenco dei repository.

Configura autenticazione

Prima di poter eseguire il push o il pull delle immagini con Artifact Registry, devi configurare Docker in modo che utilizzi Google Cloud CLI per autenticare le richieste ad Artifact Registry.

In Cloud Shell o nella shell locale, configura l'autenticazione per i repository Docker nella regione us-central1:

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

Ottenere un pacchetto

  1. Passa a una directory in cui vuoi salvare l'immagine del contenitore.

  2. Copia un'immagine nella tua directory locale. Ad esempio, puoi utilizzare Docker per estrarre l'immagine Jenkins più recente da Docker Hub.

    docker pull jenkins:2.60.3-alpine
    

Taggare il pacchetto con il nome del repository

Quando vuoi eseguire il push di un pacchetto in Artifact Registry, devi configurare il comando docker push in modo che esegua il push dell'immagine in una posizione specifica.

Esegui il comando seguente per taggare l'immagine come quickstart-image:tag1:

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

Dove

  • PROJECT è il tuo ID progetto Google Cloud. Se l'ID progetto contiene due punti (:), consulta Progetti basati sul dominio.
  • us-central1 è la regione del repository Artifact Registry.
  • docker.pkg.dev è il nome host per i repository Docker.
  • quickstart-image è il nome dell'immagine che vuoi utilizzare nel repository. Il nome dell'immagine può essere diverso dal nome dell'immagine locale.
  • tag1 è un tag che stai aggiungendo all'immagine Docker. Se non hai specificato un tag, Docker applicherà il tag predefinito latest.

Esegui il push dell'immagine ad Artifact Registry

Artifact Analysis esegue automaticamente la scansione delle nuove immagini quando vengono caricate su Artifact Registry.

Per eseguire il push dell'immagine nel repository Docker in Artifact Registry, esegui il seguente comando:

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

Sostituisci PROJECT con il tuo ID progetto Google Cloud. Se l'ID progetto contiene due punti (:), consulta Progetti basati sul dominio.

Visualizzare i risultati dell'analisi delle vulnerabilità

Per visualizzare le vulnerabilità in un'immagine:

  1. Recupera l'elenco dei repository.

    Apri la pagina Repositori

  2. Nell'elenco dei repository, fai clic su un repository.

  3. Nell'elenco delle immagini, fai clic sul nome di un'immagine.

    I totali delle vulnerabilità per ogni digest dell'immagine vengono visualizzati nella colonna Vulnerabilità.

    Screenshot di un'immagine con vulnerabilità

  4. Per visualizzare l'elenco delle vulnerabilità di un'immagine, fai clic sul link nella colonna Vulnerabilità.

    La sezione Risultati della scansione mostra un riepilogo dei tipi di pacchetti esaminati, delle vulnerabilità totali, delle vulnerabilità con correzioni disponibili, delle vulnerabilità senza correzioni e della gravità effettiva.

    Screenshot della sezione Risultati dell'analisi con vulnerabilità, correzioni e gravità effettiva

    La tabella delle vulnerabilità elenca il nome della vulnerabilità ed esposizioni comuni (CVE) per ogni vulnerabilità trovata, la gravità effettiva, il punteggio del Common Vulnerability Scoring System (CVSS), le correzioni (se disponibili), il nome del pacchetto che contiene la vulnerabilità e il tipo di pacchetto.

    Puoi filtrare e ordinare questi file per controllare un file, una directory o un tipo di file specifico in base all'estensione.

    La console Google Cloud mostra fino a 1200 vulnerabilità in questa tabella. Se la tua immagine presenta più di 1200 vulnerabilità, devi utilizzare gcloud o l'API per visualizzare l'elenco completo.

  5. Per informazioni dettagliate su una CVE specifica, fai clic sul nome della CVE.

  6. Per visualizzare i dettagli relativi alle occorrenze della vulnerabilità, come il numero di versione e la posizione interessata, fai clic su Visualizza o Visualizza correzione nella riga con il nome della vulnerabilità. Il testo del link è Visualizza per le vulnerabilità senza correzione e Visualizza correzione per le vulnerabilità a cui è stata applicata una correzione.

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate su questa pagina, elimina il progetto Google Cloud con le risorse.

Se hai creato un nuovo progetto per questa guida, ora puoi eliminarlo.

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Passaggi successivi