Eseguire la scansione manuale dei pacchetti Go

Questa guida rapida mostra come eseguire il pull di un'immagine container, eseguirne la scansione manuale con la scansione on demand e recuperare le vulnerabilità identificate per i pacchetti di sistema e Go. Per seguire questa guida rapida, utilizzerai Cloud Shell e un'immagine Alpine di esempio.

Prima di iniziare

  1. Accedi al tuo Google Cloud account. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the On-Demand Scanning API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the On-Demand Scanning API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

Scaricare ed eseguire la scansione di un'immagine

  1. Apri Cloud Shell nel tuo progetto.

    Apri Cloud Shell

    Si apre un terminale con tutti gli strumenti necessari per seguire questa guida.

  2. Utilizza docker per eseguire il pull dell'immagine container:

    docker pull golang:1.17.6-alpine
    
  3. Esegui la scansione:

    gcloud artifacts docker images scan golang:1.17.6-alpine --additional-package-types=GO
    

    Viene attivato il processo di scansione e viene restituito il nome della scansione al termine:

    ✓ Scanning container image
      ✓ Locally extracting packages and versions from local container image
      ✓ Remotely initiating analysis of packages and versions
      ✓ Waiting for analysis operation to complete [projects/my-project/locations/us/operations/849db1f8-2fb2-4559-9fe0-8720d8cd347c]
    Done.
    done: true
    metadata:
      '@type': type.googleapis.com/google.cloud.ondemandscanning.v1.AnalyzePackagesMetadata
      createTime: '2022-01-11T16:58:11.711487Z'
      resourceUri: golang:1.16.13-alpine
    name: projects/my-project/locations/us/operations/f4adb1f8-20b2-4579-9fe0-8720d8cd347c
    response:
      '@type': type.googleapis.com/google.cloud.ondemandscanning.v1.AnalyzePackagesResponse
      scan: projects/my-project/locations/us/scans/a54f12b0-ca2d-4d93-8da5-5cf48e9e20ef
    
  4. Utilizza il nome della scansione, il valore di scan nell'output, per recuperare i risultati della scansione:

    gcloud artifacts docker images list-vulnerabilities \
    projects/my-project/locations/us/scans/a54f12b0-ca2d-4d93-8da5-5cf48e9e20ef
    

    L'output contiene un elenco di vulnerabilità dei pacchetti Go, della libreria standard Go e di Linux. Le seguenti etichette indicano il tipo di vulnerabilità di Go:

    • packageType:GO_STDLIB. Vulnerabilità della libreria standard Go. Ciò indica che la vulnerabilità è stata rilevata nella toolchain Go utilizzata per creare il file binario o nella libreria standard inclusa nella toolchain. Una possibile correzione è l'upgrade della toolchain di build.

    • packageType:GO. Vulnerabilità dei pacchetti Go. Ciò indica che la vulnerabilità è stata rilevata in un pacchetto di terze parti. Una possibile correzione è l'upgrade dei moduli dipendenti.

Libera spazio

Per evitare che al tuo Google Cloud account vengano addebitati costi relativi alle risorse utilizzate in questa pagina, segui questi passaggi.

  1. Nella Google Cloud console, vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID progetto e fai clic su Chiudi per eliminare il progetto.

Passaggi successivi