Compartir comentarios
Las respuestas se generan en base a la documentación.

Usar un chart de Docker Hardened Images

Los charts de Docker Hardened Image (DHI) son Helm charts proporcionados por Docker compilados a partir de fuentes ascendentes (upstream) y diseñados para ser compatibles con Docker Hardened Images. Estos charts están disponibles como artefactos OCI dentro del catálogo de DHI en Docker Hub. Para obtener más detalles, consulta Charts de Docker Hardened Image.

Los charts de DHI incorporan múltiples capas de seguridad en la cadena de suministro que no están presentes en los charts ascendentes:

  • Cumplimiento de SLSA Nivel 3: Cada chart se compila con los estándares SLSA Build Level 3, lo que incluye procedencia detallada de la compilación.
  • Lista de materiales de software (SBOM): SBOM completas que detallan todos los componentes referenciados dentro del chart.
  • Firma criptográfica: Todos los metadatos asociados están firmados criptográficamente por Docker para garantizar su integridad y autenticidad.
  • Configuración securizada: Los charts hacen referencia automáticamente a Docker Hardened Images para despliegues seguros.
  • Compatibilidad probada: Los charts se prueban exhaustivamente para funcionar directamente con Docker Hardened Images.

Puedes usar un chart de DHI como cualquier otro Helm chart almacenado en un registro OCI. Cuando tienes una suscripción a Docker Hardened Images, también puedes personalizar los charts de DHI para hacer referencia a imágenes personalizadas y repositorios replicados. La canalización de compilación de charts personalizados garantiza que tus personalizaciones se compilen de forma segura, utilicen los charts base más recientes e incluyan atestaciones.

Buscar un Helm chart de Docker

Para buscar un Helm chart de Docker para DHI:

  1. Ve al catálogo de Hardened Images en Docker Hub e inicia sesión.
  2. En la barra lateral izquierda, selecciona Hardened Images > Catalog.
  3. Selecciona Filter by para Helm Charts.
  4. Selecciona un repositorio de Helm charts para ver sus detalles.

Replicar un Helm chart o sus imágenes en un registro de terceros

Si quieres realizar la réplica en tu propio registro de terceros, puedes seguir las instrucciones en Replicar un repositorio de Docker Hardened Image ya sea para el chart, la imagen o ambos.

La misma herramienta regctl que se utiliza para replicar imágenes de contenedor también se puede utilizar para replicar Helm charts, ya que los Helm charts son artefactos OCI.

Por ejemplo:

regctl image copy \
    "${SRC_CHART_REPO}:${TAG}" \
    "${DEST_REG}/${DEST_CHART_REPO}:${TAG}" \
    --referrers \
    --referrers-src "${SRC_ATT_REPO}" \
    --referrers-tgt "${DEST_REG}/${DEST_CHART_REPO}" \
    --force-recursive

Crear un secreto de Kubernetes para descargar imágenes

Necesitas crear un secreto de Kubernetes para descargar imágenes desde dhi.io, Docker Hub o tu propio registro. Esto es necesario porque los repositorios de Docker Hardened Image requieren autenticación. Si replicas las imágenes en tu propio registro, de igual manera necesitarás crear este secreto si el registro requiere autenticación.

  1. Para dhi.io o Docker Hub, crea un token de acceso personal (PAT) usando tu cuenta de Docker o un token de acceso de organización (OAT). Asegúrate de que el token tenga al menos acceso de lectura (read-only) a los repositorios de Docker Hardened Image.

  2. Crea un secreto en Kubernetes usando el siguiente comando. Reemplaza <your-secret-name>, <your-username>, <your-personal-access-token> y <your-email> con tus propios valores.

    Note

    Debes crear este secreto en cada espacio de nombres de Kubernetes que utilice una DHI. Si has replicado tus DHI en otro registro, reemplaza dhi.io por el nombre de host de tu registro. Reemplaza <your-username>, <your-access-token> y <your-email> con tus propios valores. <your-username> es tu Docker ID si usas un PAT, o el nombre de tu organización si usas un OAT. <your-secret-name> es el nombre que elijas para el secreto.

    $ kubectl create secret docker-registry <your-secret-name> \
        --docker-server=dhi.io \
        --docker-username=<your-username> \
        --docker-password=<your-access-token> \
        --docker-email=<your-email>
    

    Por ejemplo:

    $ kubectl create secret docker-registry dhi-pull-secret \
        --docker-server=dhi.io \
        --docker-username=docs \
        --docker-password=dckr_pat_12345 \
        [email protected]
    

Instalar un Helm chart

Para instalar un Helm chart desde Docker Hardened Images:

  1. Inicia sesión en el registro usando Helm:

    $ echo $ACCESS_TOKEN | helm registry login dhi.io --username <your-username> --password-stdin
    

    Reemplaza <your-username> y establece $ACCESS_TOKEN.

  2. Instala el chart usando helm install. Opcionalmente, también puedes usar la opción --dry-run para probar la instalación sin instalar nada realmente.

    $ helm install <release-name> oci://dhi.io/<helm-chart-repository> --version <chart-version> \
      --set "imagePullSecrets[0].name=<your-secret-name>"
    

    Reemplaza <helm-chart-repository> y <chart-version> según corresponda. Si el chart está en tu propio registro u otro repositorio, reemplaza dhi.io/<helm-chart-repository> con tu propia ubicación. Reemplaza <your-secret-name> con el nombre del secreto de descarga de imagen creado en Crear un secreto de Kubernetes para descargar imágenes.

Personalizar un Helm chart

Puedes personalizar los Helm charts de Docker Hardened Image para hacer referencia a imágenes personalizadas y repositorios replicados. Para obtener más detalles, consulta Personalizar Docker Hardened Images y charts.

Verificar un Helm chart y ver sus atestaciones

Puedes verificar los Helm charts. Para obtener más detalles, consulta Verificar las atestaciones de Helm charts con Docker Scout.