Pode optar por fornecer os seus próprios metadados à análise de artefactos para satisfazer uma necessidade empresarial específica. Por exemplo, uma organização que fornece gestão de segurança para os contentores Docker dos respetivos clientes pode usar a análise de artefactos para armazenar e obter metadados relacionados com a segurança dessas imagens.
Siga os passos abaixo para fornecer metadados de vulnerabilidade personalizados para as suas imagens através da API Artifact Analysis. Pode usar as mesmas instruções para armazenar e obter qualquer tipo de metadados suportado pela análise de artefactos.
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.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro, tem de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
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.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro, tem de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
- Saiba como configurar o controlo de acesso para os metadados no seu projeto. Ignore este passo se apenas consumir metadados de ocorrências de vulnerabilidades criadas pela análise de contentores do Artifact Analysis.
Crie um ficheiro denominado
note.json
com a descrição e os detalhes da vulnerabilidade. O código seguinte mostra um exemplo de ficheironote.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
Onde:
- PROVIDER_PROJECT_ID é o ID do seu projeto.
- NOTE_ID especifica um identificador para a sua nota. Use uma string com um comprimento máximo de 100 carateres.
Crie um ficheiro denominado
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" } }
Onde:
- 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 a sua nota. Use uma string com um comprimento máximo de 100 carateres.
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 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 ver instruções sobre como ver e filtrar notas e ocorrências de imagens de contentores, consulte o artigo Ver ocorrências de vulnerabilidades.
Para obter instruções sobre como configurar notificações, consulte o artigo Notificações do Pub/Sub.
Crie notas e ocorrências para projetos
Esta secção explica como pode criar notas e ocorrências. Para este exemplo, vai usar o tipo VULNERABILITY
.
Enquanto fornecedor, cria uma nota no seu projeto para cada vulnerabilidade e cria uma ocorrência no projeto do cliente para uma ocorrência dessa vulnerabilidade.
Criar notas
Use os passos seguintes para criar uma nota e atribuir-lhe um ID.
API
Java
Para saber como instalar e usar a biblioteca de cliente para a análise de artefactos, consulte o artigo Bibliotecas de cliente da análise de artefactos. Para mais informações, consulte a documentação de referência da API Artifact Analysis.Java
Para se autenticar na Análise de artefactos, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca de cliente para a análise de artefactos, consulte o artigo Bibliotecas de cliente da análise de artefactos. Para mais informações, consulte a documentação de referência da API Artifact Analysis.Go
Para se autenticar na Análise de artefactos, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente para a análise de artefactos, consulte o artigo Bibliotecas de cliente da análise de artefactos. Para mais informações, consulte a documentação de referência da API Artifact Analysis.Node.js
Para se autenticar na Análise de artefactos, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Ruby
Para saber como instalar e usar a biblioteca de cliente para a análise de artefactos, consulte o artigo Bibliotecas de cliente da análise de artefactos. Para mais informações, consulte a documentação de referência da API Artifact Analysis.Ruby
Para se autenticar na Análise de artefactos, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente para a análise de artefactos, consulte o artigo Bibliotecas de cliente da análise de artefactos. Para mais informações, consulte a documentação de referência da API Artifact Analysis.Python
Para se autenticar na Análise de artefactos, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Crie ocorrências para as notas
Para criar ocorrências de uma nota:
API
Java
Para saber como instalar e usar a biblioteca de cliente para a análise de artefactos, consulte o artigo Bibliotecas de cliente da análise de artefactos. Para mais informações, consulte a documentação de referência da API Artifact Analysis.Java
Para se autenticar na Análise de artefactos, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca de cliente para a análise de artefactos, consulte o artigo Bibliotecas de cliente da análise de artefactos. Para mais informações, consulte a documentação de referência da API Artifact Analysis.Go
Para se autenticar na Análise de artefactos, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente para a análise de artefactos, consulte o artigo Bibliotecas de cliente da análise de artefactos. Para mais informações, consulte a documentação de referência da API Artifact Analysis.Node.js
Para se autenticar na Análise de artefactos, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Ruby
Para saber como instalar e usar a biblioteca de cliente para a análise de artefactos, consulte o artigo Bibliotecas de cliente da análise de artefactos. Para mais informações, consulte a documentação de referência da API Artifact Analysis.Ruby
Para se autenticar na Análise de artefactos, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente para a análise de artefactos, consulte o artigo Bibliotecas de cliente da análise de artefactos. Para mais informações, consulte a documentação de referência da API Artifact Analysis.Python
Para se autenticar na Análise de artefactos, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Obtenha todas as ocorrências de uma nota específica
Pode ver todas as ocorrências de uma vulnerabilidade específica nos projetos do seu cliente através do notes.occurrences.list()
.
API
Para apresentar uma lista de todas as ocorrências de uma nota, envie um pedido GET da seguinte forma:
GET https://containeranalysis.googleapis.com/v1/projects/PROJECT_ID/notes/NOTE_ID/occurrences
Consulte o ponto final da API projects.notes.occurrences.list
para ver os detalhes completos.
Java
Para saber como instalar e usar a biblioteca de cliente para a análise de artefactos, consulte o artigo Bibliotecas de cliente da análise de artefactos. Para mais informações, consulte a documentação de referência da API Artifact Analysis.Java
Para se autenticar na Análise de artefactos, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca de cliente para a análise de artefactos, consulte o artigo Bibliotecas de cliente da análise de artefactos. Para mais informações, consulte a documentação de referência da API Artifact Analysis.Go
Para se autenticar na Análise de artefactos, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente para a análise de artefactos, consulte o artigo Bibliotecas de cliente da análise de artefactos. Para mais informações, consulte a documentação de referência da API Artifact Analysis.Node.js
Para se autenticar na Análise de artefactos, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Ruby
Para saber como instalar e usar a biblioteca de cliente para a análise de artefactos, consulte o artigo Bibliotecas de cliente da análise de artefactos. Para mais informações, consulte a documentação de referência da API Artifact Analysis.Ruby
Para se autenticar na Análise de artefactos, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente para a análise de artefactos, consulte o artigo Bibliotecas de cliente da análise de artefactos. Para mais informações, consulte a documentação de referência da API Artifact Analysis.Python
Para se autenticar na Análise de artefactos, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.