Instalación air-gapped
Todo vive en ghcr.io/quenchworks como artefactos OCI estándar, así que cualquier registro o caché de paso (pull-through) puede albergar una copia. Replica lo que necesites, redirige los charts, y las firmas y atestaciones vienen con ello para que sigas verificando dentro del perímetro.
Todo el procedimiento son cuatro pasos; cada uno se detalla abajo.
- Replica la imagen con
cosign copypara que la firma y las atestaciones viajen con ella. - Replica el chart con
helm pullyhelm push. - Redirige el chart a tu registro con
--set image.repository=..., conservando el digest fijado. - Verifica dentro del perímetro contra tu propio registro.
Replicar una imagen
Usa cosign copy para que la firma y las atestaciones de SBOM y procedencia viajen con la imagen, no solo las capas:
# copies the image, its cosign signature, and the SBOM + provenance attestationscosign copy \ ghcr.io/quenchworks/images/redis:8.8.0 \ registry.internal/quenchworks/redis:8.8.0Si solo necesitas los bits y vas a verificar antes de la copia, crane o skopeo también funcionan y conservan el índice multi-arch:
# image only (no signature/attestations); preserves the multi-arch indexcrane copy \ ghcr.io/quenchworks/images/redis:8.8.0 \ registry.internal/quenchworks/redis:8.8.0Fija por digest cuando puedas. La etiqueta de versión es cómoda, pero un digest es lo que garantiza que los bytes replicados coinciden con lo que se escaneó y firmó. Resuelve uno con crane digest (consulta Fijar por digest).
Replicar un chart
Los charts también son artefactos OCI. Descarga una versión y luego súbela a tu registro:
helm pull oci://ghcr.io/quenchworks/charts/redis --version 0.0.5helm push redis-0.0.5.tgz oci://registry.internal/chartsRedirigir el chart a tu registro
Un chart referencia su imagen por digest bajo un repositorio configurable. Anula el repositorio para que apunte a tu réplica en el momento de la instalación, conservando el mismo digest:
helm install my-redis oci://registry.internal/charts/redis --version 0.0.5 \ --set image.repository=registry.internal/quenchworks/redisLa biblioteca quench-common rechaza a propósito una referencia de imagen que solo tenga etiqueta, así que tu réplica debe llevar el digest que el chart fija. Replicar por digest (o replicar la etiqueta exacta a la que resuelve el chart) mantiene ese contrato intacto.
Verificar dentro del perímetro
La identidad del firmante no cambia cuando replicas, así que la misma comprobación funciona contra tu registro:
cosign verify registry.internal/quenchworks/redis:8.8.0 \ --certificate-identity-regexp 'https://github.com/quenchworks/.+' \ --certificate-oidc-issuer https://token.actions.githubusercontent.comLa verificación sigue contactando con el registro de transparencia público de Sigstore (Rekor) y las raíces de Fulcio. En una red totalmente desconectada, verifica a la entrada (en el límite de la réplica, donde tienes salida a internet) en lugar de en el momento del despliegue, o ejecuta una réplica interna de Rekor. Consulta Verificar una firma y SBOM y procedencia.
Caché de paso (pull-through)
Si tu registro lo admite, una caché de paso apuntada a ghcr.io evita copiar nada a mano: las descargas pueblan la caché en el primer uso y la sirven después. Fija por digest para que una entrada en caché nunca sea ambigua.