A partir de abril de 2024, as novas instâncias do Container Registry Enterprise Edition suportam a Especificação de Imagem e Distribuição da Open Container Initiative (OCI) V1.1.0, incluindo suporte a Reference Types. A Referrers API cria um grafo estruturado que vincula SBOMs, assinaturas e resultados de varredura de vulnerabilidades diretamente às imagens associadas. Isso elimina a necessidade de convenções de nomenclatura de tags para rastrear artefatos da cadeia de suprimentos. Armazene, gerencie e distribua esses artefatos da mesma forma que você gerencia imagens de contêiner.
Pré-requisitos
Antes de começar, verifique se você tem:
Cliente OCI Registry As Storage (ORAS) instalado na máquina local. Para mais informações, consulte Instalação.
Docker instalado na máquina local. Para mais informações, consulte Instalar e usar Docker e Docker Compose.
Lista de controle de acesso (ACL) de virtual private cloud (VPC) configurada ou acesso à Internet ativado para a instância do Container Registry Enterprise Edition. Este tópico usa acesso à Internet. Para mais informações, consulte Configurar controle de acesso à Internet.
Senha da instância do Container Registry Enterprise Edition. Caso tenha esquecido a senha, configure as credenciais de acesso. Para mais informações, consulte Configurar credenciais de acesso.
Etapa 1: Associar uma imagem de contêiner aos seus artefatos derivados usando a Referrers API
A Referrers API, introduzida na OCI v1.1.0, vincula artefatos derivados — SBOMs, assinaturas e resultados de varredura de vulnerabilidades — diretamente a uma imagem de contêiner. Um único grafo de relacionamento permite descobrir todos os artefatos associados, simplificando a segurança da cadeia de suprimentos e a auditoria de conformidade em comparação com abordagens baseadas em tags.
As etapas a seguir geram o SBOM para golang:1.20, anexam-no à imagem usando oras attach e verificam a associação com oras discover.
Se o comando docker sbom não estiver disponível no seu ambiente, instale primeiro o componente sbom-cli-plugin.
Este exemplo usa a imagem hospedada em <Name of the Container Registry Enterprise Edition instance>-registry.cn-hangzhou.cr.aliyuncs.com/library/golang:1.20.
-
Faça login na instância do Container Registry Enterprise Edition.
Após um login bem-sucedido, a mensagem
Login Succeededserá exibida.docker login <Name of the Container Registry Enterprise Edition instance>-registry.cn-hangzhou.cr.aliyuncs.com Username: ****@test.com Password: Login Succeeded -
Gere o SBOM da imagem de contêiner.
docker sbom <Name of the Container Registry Enterprise Edition instance>-registry.cn-hangzhou.cr.aliyuncs.com/library/golang:1.20 --format spdx-json -o sbom.jsomSaída esperada:

-
Anexe o SBOM à imagem de contêiner.
oras attach --distribution-spec v1.1-referrers-api <Name of the Container Registry Enterprise Edition instance>-registry.cn-hangzhou.cr.aliyuncs.com/library/golang:1.20 sbom.jsom --artifact-type example/sbomSaída esperada:

-
Verifique a associação entre a imagem de contêiner e o SBOM.
oras discover --distribution-spec v1.1-referrers-api <Name of the Container Registry Enterprise Edition instance>-registry.cn-hangzhou.cr.aliyuncs.com/library/golang:1.20Saída esperada:

Etapa 2: Distribuir uma imagem de contêiner e seus artefatos derivados entre instâncias
O Container Registry Enterprise Edition permite distribuir imagens de contêiner e seus artefatos derivados associados entre instâncias usando ferramentas como o cliente ORAS. A flag -r no comando oras cp copia recursivamente todos os referrers anexados à imagem. Assim, o SBOM e quaisquer outros artefatos associados são transferidos em uma única operação.
Este exemplo copia golang:1.20 e seu SBOM associado de uma instância de origem na região China (Hangzhou) para uma instância de destino na região China (Beijing).
-
Faça login na instância de destino do Container Registry Enterprise Edition.
Após um login bem-sucedido, a mensagem
Login Succeededserá exibida.docker login <Name of the destination Container Registry Enterprise Edition instance>-registry.cn-beijing.cr.aliyuncs.com Username: ****@test.com Password: Login Succeeded -
Copie a imagem de contêiner e seu SBOM associado para a instância de destino.
$ oras cp -r --from-distribution-spec v1.1-referrers-api --to-distribution-spec v1.1-referrers-api <Name of the source Container Registry Enterprise Edition instance>-registry.cn-hangzhou.cr.aliyuncs.com/library/golang:1.20 <Name of the destination Container Registry Enterprise Edition instance>-registry.cn-beijing.cr.aliyuncs.com/library/golang:1.20Saída esperada:

-
Confirme se o SBOM está presente na instância de destino.
oras discover --distribution-spec v1.1-referrers-api <Name of the destination Container Registry Enterprise Edition instance>-registry.cn-beijing.cr.aliyuncs.com/library/golang:1.20Saída esperada:
