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
- 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.
-
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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theserviceusage.services.enable
permission. Learn how to grant roles. -
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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theserviceusage.services.enable
permission. Learn how to grant roles. Abra um Cloud Shell no seu projeto.
Esta ação abre um terminal com todas as ferramentas necessárias para seguir este guia.
Use o docker para extrair a imagem do contentor:
docker pull golang:1.17.6-alpine
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
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.
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Transfira e analise uma imagem
Limpar
Para evitar incorrer em cobranças na sua Google Cloud conta pelos recursos usados nesta página, siga estes passos.