Fazer upload de SBOMs

Nesta página, descrevemos 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 monitorar 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. Faça login na sua Conta do Google.

    Se você ainda não tiver uma, inscreva-se agora.

  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Artifact Registry, Container Analysis APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. Instale a Google Cloud CLI.

  6. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

  7. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  8. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Artifact Registry, Container Analysis APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  11. Instale a Google Cloud CLI.

  12. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

  13. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  14. Tenha um repositório do Docker no Artifact Registry com a imagem de contêiner que sua SBOM descreve. Se você não conhece o Artifact Registry, consulte o Guia de início rápido do Docker.
  15. Tenha um arquivo SBOM 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 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: Storage Object Admin(roles/storage.objectAdmin)
  • Se uma nota para a referência da SBOM já existir: Anexador de notas do Container Analysis (roles/containeranalysis.notes.attacher)
  • Para criar uma nova nota para ocorrências de referência da SBOM no projeto atual: Editor de notas do Container Analysis((roles/containeranalysis.notes.editor)
  • Para criar uma ocorrência de referência da 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 personalizados papéis ou outros predefinidos papéis.

Formatos compatíveis

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

Fazer upload da SBOM

Use o comando a seguir para fazer upload da SBOM:

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 Docker que o arquivo SBOM descreve. 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 a ser usado em vez do padrão.
  • --kms-key-version: fornece uma versão da chave para assinar o payload de ocorrência de referência da SBOM. Você pode usar essa chave para verificar a origem da SBOM.

Por exemplo, o comando a seguir faz upload de um arquivo JSON my-sbom.bom.json gerado na 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 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

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

É possível visualizar as SBOMs usando o Google Cloud console ou a CLI gcloud. Se você quiser localizar o bucket do Cloud Storage que contém suas SBOMs, você deve pesquisar SBOMs usando a CLI gcloud.

A seguir