Analise pacotes do Go manualmente

Este início rápido mostra como obter uma imagem de contentor, analisá-la manualmente com a análise a pedido e obter vulnerabilidades identificadas para pacotes do sistema e Go. Para seguir este início rápido, vai usar a Cloud Shell e uma imagem Alpine de exemplo.

Antes de começar

  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. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

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

  4. Enable the On-Demand Scanning API.

    Enable the API

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

    Go to project selector

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

  7. Enable the On-Demand Scanning API.

    Enable the API

  8. Transfira e analise uma imagem

    1. Abra um Cloud Shell no seu projeto.

      Abra o Cloud Shell

      Esta ação abre um terminal com todas as ferramentas necessárias para seguir este guia.

    2. Use o docker para extrair a imagem do contentor:

      docker pull golang:1.17.6-alpine
      
    3. Execute a análise:

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

      Isto aciona o processo de análise e devolve o nome da análise quando terminar:

      ✓ 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. Use o nome da análise, o valor de scan da saída, para obter os resultados da análise:

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

      O resultado contém uma lista de vulnerabilidades do Go, da biblioteca padrão do Go e do pacote Linux. As seguintes etiquetas indicam o tipo de vulnerabilidades do Go:

      • packageType:GO_STDLIB. Aceda às vulnerabilidades da biblioteca padrão. Isto indica que a vulnerabilidade foi encontrada na cadeia de ferramentas Go usada para criar o ficheiro binário ou na biblioteca padrão incluída na cadeia de ferramentas. Uma possível correção é atualizar a cadeia de ferramentas de compilação.

      • packageType:GO. Go package vulnerabilities. Isto indica que a vulnerabilidade foi encontrada num pacote de terceiros. Uma possível correção é atualizar os módulos dependentes.

    Limpar

    Para evitar incorrer em cobranças na sua Google Cloud conta pelos recursos usados nesta página, siga estes passos.

    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.

    O que se segue?