Fazer upload de SBOMs

Esta página descreve como fazer upload de um arquivo de lista de materiais de software (SBOM, na sigla em inglês) 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

  1. Sign in to your Google Account.

    If you don't already have one, sign up for a new account.

  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Artifact Registry, Container Analysis APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the Artifact Registry, Container Analysis APIs.

    Enable the APIs

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    gcloud init
  12. Ter um repositório do Docker no Artifact Registry com a imagem do contêiner descrita no SBOM. Se você não conhece o Artifact Registry, consulte o Guia de início rápido do Docker.
  13. Ter um arquivo SBOM pronto para upload em um dos formatos aceitos.

Funções exigidas

Para receber as permissões necessárias para criar e gerenciar buckets do Cloud Storage e arquivos 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: Storage Admin(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 uma observação para a referência do SBOM já existir: Anexador de notas do Container Analysis (roles/containeranalysis.notes.attacher)
  • Para criar uma nova observação para ocorrências de referência do SBOM no projeto atual: Editor de notas do Container Analysis((roles/containeranalysis.notes.editor)
  • Para criar uma ocorrência de referência do 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 por meio de papéis personalizados ou de outros papéis predefinidos.

Formatos compatíveis

O arquivo SBOM precisa ser JSON em um dos seguintes formatos:

Fazer upload da SBOM

Use o comando abaixo para fazer upload da lista de materiais de software:

gcloud artifacts sbom load /
    --source SOURCE /
    --uri URI

Em que:

  • SOURCE: o caminho para o arquivo SBOM a ser enviado.
  • URI: o URI da imagem do Docker descrita pelo arquivo SBOM. As imagens podem estar no formato de tag ou de resumo. As imagens fornecidas no formato de tag serão resolvidas no formato de resumo.

Sinalizações 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 de ocorrência de referência do SBOM. Você pode usar essa chave para verificar a origem do SBOM.

Por exemplo, o comando a seguir faz upload de um arquivo JSON my-sbom.bom.json que foi gerado a partir da imagem marcada us-east1-docker.pkg.dev/my-image-repo/my-image e assina a ocorrência de referência da SBOM com a versão da chave 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 de imagem my-local-image@sha256:abcxyz e armazena o arquivo no bucket gs://my-sbom-bucket do Cloud Storage.

gcloud artifacts sbom load /
    --source=my-sbom.spdx.json /
    --uri=my-local-image@sha256:abcxyz /
    --destination=gs://my-sbom-bucket

O Artifact Analysis faz upload do SBOM para o Cloud Storage e cria uma ocorrência de referência do SBOM.

É possível conferir os SBOMs usando o console do Google Cloud ou a CLI gcloud. Se você quiser localizar o bucket do Cloud Storage que contém seus SBOMs, pesquise os SBOMs usando a CLI gcloud.

A seguir