En esta página se describe cómo almacenar metadatos relacionados con un artefacto almacenado en Artifact Registry como un archivo adjunto.
Los metadatos almacenados en los archivos adjuntos pueden incluir información sobre vulnerabilidades de artefactos, procedencia de compilación, contenido de paquetes, certificación, evaluación de vulnerabilidades, lista de materiales de software (SBOM) y más. Los sistemas de políticas pueden usar la información almacenada en los archivos adjuntos de Artifact Registry, y los usuarios pueden inspeccionarla para asegurarse de que se cumple la normativa.
Para obtener más información sobre cómo trabajar con archivos adjuntos, consulta Gestionar metadatos con archivos adjuntos.
Antes de empezar
- Si aún no tienes uno, crea un repositorio en modo estándar.
- (Opcional) Configura los valores predeterminados de los comandos de Google Cloud CLI.
Roles obligatorios
Para obtener los permisos que necesitas para crear archivos adjuntos, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Escritor de Artifact Registry (roles/artifactregistry.writer
) en el repositorio.
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Crear un archivo adjunto
En el caso de los repositorios de Docker, los archivos adjuntos deben ser artefactos OCI. En todos los formatos que no sean Docker, los archivos adjuntos pueden ser de cualquier tipo.
Puedes usar la CLI de gcloud u Oras para crear archivos adjuntos en repositorios con formato Docker.
Para crear un archivo adjunto, sigue estos pasos:
gcloud (todos los formatos)
Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:
ATTACHMENT
: el nombre completo del archivo adjunto, comoprojects/my-project/locations/u-france-east1/repositories/my-repo/attachments/my-attachment
. También puedes proporcionar solo el ID del archivo adjunto y usar las marcas--location
y--repository
.TARGET
: el nombre de versión completo. En el caso de las imágenes Docker, también puede usar el URI de Artifact Registry del artefacto al que hace referencia el archivo adjunto. En el URI, puedes usar el digest o, en el caso de las imágenes Docker, la etiqueta. Por ejemplo:u-france-east1-docker.s3nsregistry.fr/my-project/my-repo/my-image:tag1
.TYPE
: el atributotype
del archivo adjunto. En el caso de las imágenes Docker, eltype
debe cumplir las especificaciones de OCI para la propiedadartifactType
.ATTACHMENT_NAMESPACE
: una variable específica de los archivos adjuntos que identifica la fuente de datos del archivo adjunto, comoexample.com
.FILES
: lista separada por comas de archivos locales que se incluirán en el archivo adjunto.
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud artifacts attachments create ATTACHMENT \ --target=TARGET \ --attachment-type=TYPE \ --attachment-namespace=ATTACHMENT_NAMESPACE \ --files=FILES
Windows (PowerShell)
gcloud artifacts attachments create ATTACHMENT ` --target=TARGET ` --attachment-type=TYPE ` --attachment-namespace=ATTACHMENT_NAMESPACE ` --files=FILES
Windows (cmd.exe)
gcloud artifacts attachments create ATTACHMENT ^ --target=TARGET ^ --attachment-type=TYPE ^ --attachment-namespace=ATTACHMENT_NAMESPACE ^ --files=FILES
gcloud artifacts attachments create
.
Oras (solo Docker)
Cuando se crea un archivo adjunto con Oras, Artifact Registry genera un UUID aleatorio que se usa como nombre del archivo adjunto.
Antes de usar Oras, completa los siguientes pasos:
Instala Oras 1.2 o una versión posterior. Para verificar tu versión, ejecuta el comando
oras version
.Configura Oras para autenticarte con Artifact Registry.
Antes de ejecutar el comando, haz las siguientes sustituciones:
ARTIFACT_TYPE
: elartifactType
del archivo adjunto.IMAGE_URI
: el URI del contenedor de imágenes al que hace referencia el archivo adjunto.FILE
: un archivo local que se incluirá como metadatos en el archivo adjunto.MEDIA_TYPE
: elmediaType
de la capa.
oras attach --artifact-type ARTIFACT_TYPE IMAGE_URI FILE:MEDIA_TYPE
En el siguiente ejemplo se crea un archivo adjunto, hello-world.txt
, que hace referencia a una imagen de contenedor, my-image
, identificada por su URI y su etiqueta:
oras attach --artifact-type doc/example \
u-france-east1-docker.s3nsregistry.fr/my-project/my-repo/my-image:tag1 \
hello-world.txt:application/vnd.me.hi
Donde:
doc/example
define la propiedadartifactType
del archivo adjunto.u-france-east1-docker.s3nsregistry.fr/my-project/my-repo/my-image:tag1
es el URI que incluye la etiqueta de la versión de la imagen del contenedor a la que hará referencia el archivo adjunto.hello-world.txt
es el archivo local que contendrá los datos del archivo adjunto.application/vnd.me.hi
define elmediaType
de la capa.
Para ver una guía completa y más ejemplos, consulta la documentación de oras attach
.
Gestionar archivos adjuntos con políticas de limpieza
Los archivos adjuntos de los repositorios de Docker, incluida la procedencia de las compilaciones, se eliminan cuando se eliminan los artefactos a los que están adjuntos. Si usas políticas de limpieza para eliminar imágenes de tu repositorio, de forma predeterminada, los archivos adjuntos de esas imágenes también se eliminarán.
Para asegurarte de que una política de limpieza no elimine por error los archivos adjuntos que quieras conservar, puedes asignar una etiqueta a una imagen que tenga archivos adjuntos que quieras conservar. Después, puedes configurar una política de limpieza para conservar las imágenes con esas etiquetas. Por ejemplo, puedes asignar una etiqueta production-signed
a las imágenes con procedencia de compilación adjunta.
qué sigue
- Gestionar los metadatos de los artefactos.
- Consulta cómo generar y almacenar SBOMs para imágenes de contenedor.