Nesta página, descrevemos como fazer upload de um arquivo de lista de materiais de software (SBOM) para o Cloud Storage para ajudar a rastrear e atestar os componentes das imagens de contêiner armazenadas no Artifact Registry.
Para informações sobre preços do Cloud Storage, consulte Preços.
Antes de começar
-
Faça login na sua Conta do Google.
Se você ainda não tiver uma, inscreva-se agora.
-
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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Artifact Registry, Container Analysis APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
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.
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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Artifact Registry, Container Analysis APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
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 - Ter um repositório do Docker no Artifact Registry com a imagem de contêiner descrita pela SBOM. Se você não conhece o Artifact Registry, consulte o guia de início rápido do Docker.
- Tenha um arquivo de lista de materiais de software pronto para upload em um dos formatos compatíveis.
Funções exigidas
Para receber as permissões necessárias para criar e gerenciar buckets do Cloud Storage e arquivos de lista de materiais de software (SBOM), peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
-
Se você estiver usando o bucket padrão do Cloud Storage, para gerenciar buckets de armazenamento:
Administrador do Storage(
roles/storage.admin) -
Se você estiver especificando um bucket do Cloud Storage, para gerenciar buckets de armazenamento:
Administrador de objetos do Storage(
roles/storage.objectAdmin) -
Se já existir uma nota para a referência da lista de materiais de software:
Anexador de notas do Container Analysis (
roles/containeranalysis.notes.attacher) -
Para criar uma nota para ocorrências de referência de SBOM no projeto atual:
Editor de notas do Container Analysis(
(roles/containeranalysis.notes.editor) -
Para criar uma ocorrência de referência de SBOM:
Editor de ocorrências do Container Analysis(
roles/containeranalysis.occurrences.editor)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
Formatos compatíveis
O arquivo SBOM precisa ser um arquivo JSON em um dos seguintes formatos:
- Software Package Data Exchange (SPDX) versão 2.2 ou 2.3
- CycloneDX versão 1.4 ou 1.5
Fazer upload da SBOM
Use o seguinte comando para fazer upload da SBOM:
gcloud artifacts sbom load /
--source SOURCE /
--uri URI
Em que:
- SOURCE: o caminho para o arquivo da lista de materiais de software a ser enviado.
- URI: o URI da imagem Docker que o arquivo SBOM descreve. As imagens podem estar no formato de tag ou de resumo. As imagens fornecidas no formato de tag ins serão resolvidas no formato de resumo.
Flags opcionais
--destination: especifica um bucket do Cloud Storage para usar em vez do padrão.--kms-key-version: fornece uma versão de chave para assinar o payload da ocorrência de referência da lista de materiais de software. Você pode usar essa chave para verificar a origem da lista de materiais de software.
Por exemplo, o comando a seguir faz upload de um arquivo JSON my-sbom.bom.json que
foi gerado com base na imagem com tag
us-east1-docker.pkg.dev/my-image-repo/my-image e assina a ocorrência de referência do SBOM
com a versão da chave do KMS que termina em my-key/cryptoKeyVersions/1.
gcloud artifacts sbom load /
--source=my-sbom.bom.json
--uri=us-east1-docker.pkg.dev/my-image-repo/my-image
--kms-key-version=projects/my-project/locations/us/keyRings/my-key-ring/cryptoKeys/my-key/cryptoKeyVersions/1
O comando a seguir faz upload de um arquivo JSON my-sbom.spdx.json associado ao resumo da imagem my-local-image@sha256:abcxyz e armazena o arquivo no bucket do Cloud Storage gs://my-sbom-bucket.
gcloud artifacts sbom load /
--source=my-sbom.spdx.json /
--uri=my-local-image@sha256:abcxyz /
--destination=gs://my-sbom-bucket
Artifact Analysis faz upload da sua lista de materiais de software para o Cloud Storage e cria uma ocorrência de referência da lista de materiais de software.
É possível conferir as listas de materiais de software usando o console Google Cloud ou a CLI gcloud. Se você quiser localizar o bucket do Cloud Storage que contém suas SBOMs, pesquise SBOMs usando a CLI gcloud.