É possível fornecer seus próprios metadados ao 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 de seus 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. Use as mesmas instruções para armazenar e recuperar qualquer tipo de metadado compatível com o 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.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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.
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 das notas.
Execute o seguinte comando curl 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 observação. Use uma string com comprimento máximo de 100 caracteres.
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 observação. Use uma string com comprimento máximo de 100 caracteres.
Consulte a documentação da API de ocorrências 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
Para instruções sobre como visualizar e filtrar notas e ocorrências de imagens de contêiner, consulte Visualizar ocorrências de vulnerabilidade.
Para ver instruções sobre como configurar notificações, consulte notificações do Pub/Sub.
Criar notas e ocorrências para projetos
Nesta seção, explicamos 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 e uma ocorrência no projeto do cliente quando essa vulnerabilidade ocorrer.
Criar notas
Siga estas etapas para criar uma observação e atribuir um ID a ela.
API
Java
Para saber como instalar e usar a biblioteca de cliente do Artifact Analysis, consulte Bibliotecas de cliente da Análise de artefatos. 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 artefatos. 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 artefatos. 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 artefatos. 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 artefatos. 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
Java
Para saber como instalar e usar a biblioteca de cliente do Artifact Analysis, consulte Bibliotecas de cliente da Análise de artefatos. 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 artefatos. 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 artefatos. 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 artefatos. 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 artefatos. 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 artefatos. 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 artefatos. 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 artefatos. 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 artefatos. 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 artefatos. 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.