Ir al contenido

Golden Images: Imágenes Base Certificadas

En el contexto tecnológico actual, la agilidad y la seguridad son pilares fundamentales para la competitividad. El uso de contenedores Docker ha acelerado el desarrollo de software, pero su adopción sin control puede generar riesgos de seguridad e ineficiencias operativas. La implementación de Golden Images es una estrategia corporativa diseñada para estandarizar la base de todos los contenedores desplegados en HERA, garantizando que cada aplicación se ejecute sobre una imagen certificada, segura y optimizada.


Al utilizar imágenes públicas no curadas, la organización se expone a vulnerabilidades de día cero, malware oculto o configuraciones inseguras. Las Golden Images son auditadas por el equipo de seguridad antes de su distribución, garantizando el cumplimiento de las políticas de seguridad de HERA.

Se elimina la duplicidad de esfuerzos. Los equipos de desarrollo ya no invierten tiempo configurando y parcheando ambientes base; en su lugar, se enfocan al 100% en la creación de valor y desarrollo de nuevas funcionalidades. Esto se alinea con el Modelo de Responsabilidad Compartida: la base segura la provee Plataforma, el código de negocio lo construye Desarrollo.

Según el índice IBM Cyber Security Intelligence, el 95% de las brechas son causadas por errores humanos como malas configuraciones, sistemas sin parches o controles de acceso deficientes. Tener una plantilla predefinida y probada reduce el riesgo de que el error humano genere un contenedor vulnerable.

Si se detecta una vulnerabilidad a nivel de sistema, el equipo de Plataforma actualiza únicamente la Golden Image. Inmediatamente, todos los despliegues posteriores heredarán el parche de seguridad de forma automatizada a través del pipeline CI/CD de HERA (ver GitLab Workflow).

Al estandarizar los ambientes, se elimina el clásico problema de “funciona en mi máquina, pero no en producción”. La consistencia entre los ambientes de DEV, QA y PRD reduce drásticamente las interrupciones del servicio.


El modelo operativo de Golden Images en HERA se basa en cuatro pilares:

Ciclo de Vida — Golden Images Docker
1
Crear y Endurecer
Equipo de Plataforma
  • Seleccionar imagen base mínima
  • Aplicar hardening de seguridad
  • Configurar usuario no-root
  • Eliminar paquetes innecesarios
2
Escanear y Certificar
Seguridad + Plataforma
  • Escaneo con Docker Scout
  • Validación con Hadolint
  • Certificación de seguridad
  • Aprobación para publicación
3
Publicar en Registry
Equipo de Plataforma
  • Push a Artifact Registry privado
  • Versionamiento semántico
  • Documentación de cambios
  • Notificación a equipos
4
Consumir en Proyectos
Equipos de Desarrollo
  • FROM en Dockerfile del proyecto
  • Pipeline valida origen de imagen
  • Herencia de seguridad base
  • Foco en código de negocio
Ciclo mensual de actualización o cuando surjan parches críticos de seguridad
Mensaje clave Golden Images centralizadas. Los equipos tienen 60 días para adoptar cada nueva versión.

El equipo de Plataforma mantiene y publica las siguientes imágenes base certificadas, alineadas con el GitLab Workflow de HERA:

Golden ImageBaseRuntimeUso recomendadoPipeline HERA
hera/node-golden:20-alpineAlpine 3.19Node.js 20 LTSFrontends, BFFs, APIs NodeGitLab Workflow
hera/python-golden:3.12-slimDebian SlimPython 3.12APIs Python, workers, MLGitLab Workflow
hera/java-golden:21-jre-alpineAlpine 3.19Eclipse Temurin 21APIs Java, Spring BootGitLab Workflow
hera/php-golden:8.3-fpm-alpineAlpine 3.19PHP 8.3 FPMAPIs PHP, LaravelGitLab Workflow
hera/dotnet-golden:8.0-alpineAlpine 3.19.NET 8.0 ASP.NETAPIs .NET, BlazorGitLab Workflow
hera/nginx-golden:1.25-alpineAlpine 3.19Nginx 1.25Reverse proxy, serving estático

Características comunes de todas las Golden Images

Sección titulada «Características comunes de todas las Golden Images»

Cada imagen del catálogo incluye las siguientes configuraciones de seguridad preconfiguradas:

CaracterísticaDetalle
Sistema operativo mínimoBasadas en Alpine o Debian Slim — superficie de ataque reducida
Usuario no-rootPreconfigurado appuser:appgroup (UID 1001)
Paquetes innecesarios eliminadosSin compiladores, shells interactivos ni herramientas de debug
Actualizaciones de seguridadParches del SO aplicados al momento de la construcción
Healthcheck incluidoConfiguración base de healthcheck para Kubernetes
Labels estándarcom.grupoherdez.image.version, com.grupoherdez.image.maintainer, com.grupoherdez.security.scan-date
Configuración TZZona horaria configurada a America/Mexico_City

Los equipos de desarrollo referencian la Golden Image como base en sus Dockerfiles multi-stage:

# =============================================
# Stage 1: Builder (solo para compilación)
# =============================================
FROM hera/node-golden:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build
# =============================================
# Stage 2: Runtime (Golden Image como base final)
# =============================================
FROM hera/node-golden:20-alpine
WORKDIR /app
# Copiar solo artefactos necesarios del builder
COPY --from=builder --chown=appuser:appgroup /app/dist ./dist
COPY --from=builder --chown=appuser:appgroup /app/node_modules ./node_modules
COPY --chown=appuser:appgroup package.json .
# Usar el usuario no-root preconfigurado
USER appuser
EXPOSE 3000
CMD ["node", "dist/index.js"]

El Golden Pipeline incluye un job validate-base-image en la etapa security que bloquea el pipeline si el Dockerfile del repo no usa una Golden Image certificada como base.

AtributoValor
Stagesecurity
Regla de validaciónEl último FROM del Dockerfile debe matchear el prefijo hera/*-golden
Mensaje en falloReporta la imagen detectada + lista las permitidas + enlace a esta página
allow_failurefalse — bloqueante
Consecuencia de falloPipeline se detiene; el deploy queda imposible hasta que el FROM apunte a una Golden Image

Las Golden Images se alojan en Google Artifact Registry dentro del proyecto HERA, bloqueando el acceso no autorizado y evitando la descarga accidental de imágenes públicas externas:

AspectoConfiguración
Registryus-central1-docker.pkg.dev/hera-platform/golden-images
Acceso de escrituraSolo equipo de Plataforma (Service Account dedicado)
Acceso de lecturaTodos los pipelines HERA vía Workload Identity
RetenciónÚltimas 5 versiones de cada imagen; anteriores marcadas como deprecated
Escaneo automáticoVulnerability scanning habilitado en Artifact Registry

Las Golden Images siguen un esquema de versionamiento claro que permite a los equipos controlar cuándo adoptar actualizaciones:

Versionamiento Semantico — Golden Images
Anatomia de una version
hera/node-golden:20-alpine-1.3.2
Variante
Version del runtime + SO
Major
Cambio de runtime o SO base
Minor
Actualizaciones de paquetes
Patch
Parches de seguridad del SO
Ciclo de obsolescencia
Publicacion
Dia 0 Nueva version disponible en Artifact Registry
Adopcion
0 - 60 dias Equipos actualizan su FROM en Dockerfile
Deprecacion
Dia 30 Version anterior marcada como deprecated
Bloqueo
Dia 90 Pipeline bloquea despliegues con version deprecated
Patch Inmediato (CVE critico)
Minor Mensual (1er lunes)
Major Semestral o por EOL del runtime
Mensaje clave Los equipos tienen maximo 60 dias para adoptar la nueva version. Pasado ese plazo, el pipeline bloquea despliegues con versiones deprecated. Esto garantiza que ningun contenedor en produccion use una base con vulnerabilidades conocidas.
AcciónPlazoResponsable
Nueva versión patch (seguridad)Inmediato cuando hay CVE críticoPlataforma
Nueva versión minorMensual (primer lunes del mes)Plataforma
Nueva versión majorSemestral o por EOL del runtimePlataforma
Deprecación de versión anterior30 días después de publicar nueva versiónPlataforma
Bloqueo de versión deprecated60 días después de deprecaciónPipeline HERA
Adopción de nueva versiónMáximo 60 días desde publicaciónDesarrollo

Responsabilidades en el Modelo Golden Images

Sección titulada «Responsabilidades en el Modelo Golden Images»

Este modelo refuerza el Modelo de Responsabilidad Compartida con una separación clara:

ResponsabilidadDueñoDetalle
Crear y endurecer Golden ImagesPlataformaSeleccionar SO base, hardening, configuración de seguridad
Escanear y certificar imágenesSeguridad + PlataformaDocker Scout, Hadolint, aprobación formal
Publicar en Artifact RegistryPlataformaVersionamiento semántico, changelog, notificación
Mantener y parchar mensualmentePlataformaActualización de SO y dependencias base
Usar Golden Image como FROMDesarrolloReferenciar imagen certificada en Dockerfile
Mantener código de aplicaciónDesarrolloDependencias de app, tests, lógica de negocio
Actualizar a nueva versión en 60 díasDesarrolloAdoptar versión más reciente de Golden Image
Remediar vulnerabilidades de appDesarrolloSegún SLAs de remediación

Si un equipo necesita una Golden Image para un runtime que no está en el catálogo:

  1. Solicitar vía Issue en GitLab al grupo hera/platform/ci-cd con el runtime requerido.
  2. Evaluar: Plataforma evalúa viabilidad, demanda y soporte del runtime.
  3. Construir: Plataforma crea la imagen siguiendo los estándares de hardening.
  4. Certificar: Seguridad valida con Docker Scout y Hadolint.
  5. Publicar: Se agrega al catálogo y se actualiza esta documentación.
  6. Comunicar: Notificación a todos los equipos vía canales de Soporte HERA.

DimensiónBeneficio
Time-to-MarketCiclos CI/CD más rápidos con base pre-aprobada
Optimización de recursosDocker reutiliza capas base compartidas, reduciendo almacenamiento y ancho de banda
Seguridad centralizadaUn parche en la Golden Image protege todos los proyectos automáticamente
ConsistenciaMisma base en DEV, QA y PRD — sin drift de configuración
ComplianceBase certificada que satisface políticas de gobierno cloud
AuditoríaTrazabilidad completa: quién construyó, cuándo, qué parches incluye
Reducción de erroresConfiguración de seguridad predefinida, no delegada al desarrollador
FinOpsImágenes más pequeñas = menos almacenamiento = menor costo cloud