É possível fornecer seus próprios metadados para o Artifact Analysis para atender a uma necessidade comercial específica. Por exemplo, uma organização que gerencia a segurança dos contêineres do Docker dos clientes pode usar o Artifact Analysis para armazenar e recuperar metadados relacionados à segurança dessas imagens.
Siga as etapas abaixo para fornecer metadados de vulnerabilidade personalizados relacionados a suas imagens usando a API Artifact Analysis. É possível usar as mesmas instruções para armazenar e extrair qualquer tipo de metadados com suporte ao Artifact Analysis.
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.
-
Enable the Container Analysis API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Container Analysis API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Saiba como configurar o controle de acesso para metadados no seu projeto. Pule esta etapa se você consumir apenas metadados de ocorrências de vulnerabilidade criadas pela verificação de contêineres do Artifact Analysis.
Criar notas e ocorrências para projetos
Esta seção explica como criar notas e ocorrências. Neste exemplo, você vai usar o tipo VULNERABILITY
.
Como provedor, você vai criar uma nota no seu projeto para cada vulnerabilidade. Além disso, vai criar uma ocorrência no projeto do cliente quando essa vulnerabilidade ocorrer.
Criar notas
Siga as etapas abaixo para criar uma nota e atribuir um ID a ela.
API
Crie um arquivo chamado
note.json
com a descrição e os detalhes da vulnerabilidade. O código a seguir mostra um exemplo de arquivonote.json
:{ "shortDescription": "A brief Description of the note", "longDescription": "A longer description of the note", "kind": "VULNERABILITY", "vulnerability": { "details": [ { "affectedPackage": "libexempi3", "affectedCpeUri": "cpe:/o:debian:debian_linux:7", "affectedVersionStart": { "name": "2.5.7", "revision": "1", "kind": "MINIMUM"}, "affectedVersionEnd": { "name": "2.5.9", "revision": "1", "kind": "MINIMUM"}, }, { "affectedCpeUri": "cpe:/o:debian:abc:10", "affectedPackage": "anotherPackage", } ] } }
Consulte a documentação da API Notes para mais informações sobre a representação JSON de notas.
Execute o comando curl a seguir para criar uma nota:
curl -v -H "Content-Type: application/json" -H \ "Authorization: Bearer $(gcloud auth print-access-token)" \ https://containeranalysis.googleapis.com/v1/projects/PROVIDER_PROJECT_ID/notes?note_id=NOTE_ID -d @note.json
Em que:
- PROVIDER_PROJECT_ID é o ID do projeto;
- NOTE_ID especifica um identificador para sua anotação. Use uma string com um comprimento máximo de 100 caracteres.
Java
Para saber como instalar e usar a biblioteca de cliente do Artifact Analysis, consulte Bibliotecas de cliente da Análise de artefato. Para mais informações, consulte a documentação de referência da API Artifact Analysis Java.
Para autenticar no Artifact Analysis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca de cliente do Artifact Analysis, consulte Bibliotecas de cliente da Análise de artefato. Para mais informações, consulte a documentação de referência da API Artifact Analysis Go.
Para autenticar no Artifact Analysis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente do Artifact Analysis, consulte Bibliotecas de cliente da Análise de artefato. Para mais informações, consulte a documentação de referência da API Artifact Analysis Node.js.
Para autenticar no Artifact Analysis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ruby
Para saber como instalar e usar a biblioteca de cliente do Artifact Analysis, consulte Bibliotecas de cliente da Análise de artefato. Para mais informações, consulte a documentação de referência da API Artifact Analysis Ruby.
Para autenticar no Artifact Analysis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente do Artifact Analysis, consulte Bibliotecas de cliente da Análise de artefato. Para mais informações, consulte a documentação de referência da API Artifact Analysis Python.
Para autenticar no Artifact Analysis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Criar ocorrências das notas
Para criar ocorrências de uma nota:
API
Crie um arquivo chamado
occurrence.json
com o seguinte conteúdo:{ "resourceUri": "<resource_url>", "noteName": "projects/<provider-project-id>/notes/<note_id>", "kind": "VULNERABILITY", "vulnerability": { "packageIssue": [{ "affectedCpeUri": "cpe:/o:debian_linux:7", "affectedPackage": "packageName", "affectedVersion": { "kind": "NORMAL", "name": "8.1", "revision": "3" }, "fixedCpeUri": "cpe:/o:debian_linux:7", "fixedPackage": "packageName", "fixedVersion": { "kind": "MAXIMUM" } }] "severity": "LOW" } }
Em que:
- resource_url é o URL do recurso associado à
ocorrência, por exemplo,
https://us-central1-docker.pkg.dev/my-project/my-repository/my-image@sha256:123
. - note_id especifica um identificador para sua anotação. Use uma string com comprimento máximo de 100 caracteres.
Consulte a documentação da API occurrences para mais informações sobre a representação JSON de ocorrências.
- resource_url é o URL do recurso associado à
ocorrência, por exemplo,
Execute o seguinte comando curl, em que CUSTOMER_PROJECT_ID é o ID do projeto do seu cliente:
curl -v -H "Content-Type: application/json" -H \ "Authorization: Bearer $(gcloud auth print-access-token)" \ https://containeranalysis.googleapis.com/v1/projects/CUSTOMER_PROJECT_ID/occurrences -d @occurrence.json
Java
Para saber como instalar e usar a biblioteca de cliente do Artifact Analysis, consulte Bibliotecas de cliente da Análise de artefato. Para mais informações, consulte a documentação de referência da API Artifact Analysis Java.
Para autenticar no Artifact Analysis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca de cliente do Artifact Analysis, consulte Bibliotecas de cliente da Análise de artefato. Para mais informações, consulte a documentação de referência da API Artifact Analysis Go.
Para autenticar no Artifact Analysis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente do Artifact Analysis, consulte Bibliotecas de cliente da Análise de artefato. Para mais informações, consulte a documentação de referência da API Artifact Analysis Node.js.
Para autenticar no Artifact Analysis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ruby
Para saber como instalar e usar a biblioteca de cliente do Artifact Analysis, consulte Bibliotecas de cliente da Análise de artefato. Para mais informações, consulte a documentação de referência da API Artifact Analysis Ruby.
Para autenticar no Artifact Analysis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente do Artifact Analysis, consulte Bibliotecas de cliente da Análise de artefato. Para mais informações, consulte a documentação de referência da API Artifact Analysis Python.
Para autenticar no Artifact Analysis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Receber todas as ocorrências de uma nota específica
É possível ver todas as ocorrências de uma vulnerabilidade específica nos projetos do
cliente usando notes.occurrences.list()
.
API
Para listar todas as ocorrências de uma nota, envie uma solicitação GET da seguinte maneira:
GET https://containeranalysis.googleapis.com/v1/projects/PROJECT_ID/notes/NOTE_ID/occurrences
Consulte o endpoint da API projects.notes.occurrences.list
para ver todos os detalhes.
Java
Para saber como instalar e usar a biblioteca de cliente do Artifact Analysis, consulte Bibliotecas de cliente da Análise de artefato. Para mais informações, consulte a documentação de referência da API Artifact Analysis Java.
Para autenticar no Artifact Analysis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca de cliente do Artifact Analysis, consulte Bibliotecas de cliente da Análise de artefato. Para mais informações, consulte a documentação de referência da API Artifact Analysis Go.
Para autenticar no Artifact Analysis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente do Artifact Analysis, consulte Bibliotecas de cliente da Análise de artefato. Para mais informações, consulte a documentação de referência da API Artifact Analysis Node.js.
Para autenticar no Artifact Analysis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ruby
Para saber como instalar e usar a biblioteca de cliente do Artifact Analysis, consulte Bibliotecas de cliente da Análise de artefato. Para mais informações, consulte a documentação de referência da API Artifact Analysis Ruby.
Para autenticar no Artifact Analysis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente do Artifact Analysis, consulte Bibliotecas de cliente da Análise de artefato. Para mais informações, consulte a documentação de referência da API Artifact Analysis Python.
Para autenticar no Artifact Analysis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
A seguir
Para ver instruções sobre como visualizar e filtrar notas e ocorrências de imagens de contêiner, consulte Como conferir ocorrências de vulnerabilidade.
Para ver instruções sobre como configurar notificações, consulte notificações do Pub/Sub.