¡Atención, comunidad geek! GitHub y JFrog han anunciado una integración que promete optimizar la seguridad y trazabilidad en el ciclo de vida del software. Esta alianza busca simplificar la vida de los desarrolladores, centralizando herramientas y automatizando procesos clave.
¿Por qué esta integración es importante?
En el desarrollo moderno, la entrega de software es una cadena de suministro. Cada eslabón, desde el código fuente hasta los artefactos de producción, debe ser seguro y trazable. Un punto débil puede ser la puerta de entrada para vulnerabilidades y accesos no autorizados.
Según GitHub, los equipos de desarrollo se enfrentan a desafíos como la pérdida de trazabilidad fuera de GitHub, la fragmentación de escaneos de seguridad y la complejidad de las pipelines de CI/CD. Esta integración responde directamente a estas problemáticas.
¿Qué ofrece la integración GitHub-JFrog?
La integración entre GitHub y JFrog trae consigo varias ventajas clave:
- Escaneos de seguridad unificados: Prioriza las alertas de Dependabot basándose en el contexto de producción de JFrog.
- Publicación y promoción de artefactos: Implementa un sistema de aprobación basado en políticas para la promoción de artefactos.
- Ingesta automática de atestaciones: Incorpora atestaciones (provenance, SBOM, atestaciones personalizadas) en JFrog Evidence, asociándolas al artefacto de construcción.
¿Cómo funciona?
La integración conecta la plataforma de desarrollo de GitHub con la plataforma de gestión del ciclo de vida del software de JFrog. El flujo de trabajo es el siguiente:
- Se sube el código a GitHub.
- Se construye y prueba con GitHub Actions.
- Se enlazan commits, builds y artefactos para una visibilidad completa.
- Se publican los artefactos en Artifactory automáticamente.
- Se escanea el código con GitHub Advanced Security y los artefactos con JFrog Xray.
Configuración paso a paso
Para habilitar la integración, sigue estos pasos:
- En JFrog Artifactory, navega a Administración → General Management → Manage Integrations → GitHub.
- Activa “Enable GitHub Actions” y autentica tu organización de GitHub.
- Selecciona tu tipo de token y crea un pull request.
Para generar la atestación, asegúrate de que tu flujo de trabajo de GitHub Actions esté utilizando las acciones `jfrog/jfrog-setup-cli` y `actions/attest-build-provenance`. Aquí tienes un ejemplo:
name: Build, Test & Attest
on:
push:
branches:
- main
env:
OIDC_PROVIDER_NAME: [...]
JF_URL: ${{ vars.JF_URL }}
JF_REGISTRY: ${{ vars.JF_REGISTRY }}
JF_DOCKER_REPO: [...]
IMAGE_NAME: [...]
BUILD_NAME: [...]
jobs:
build-test-deploy:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
attestations: write # Required for attestation
id-token: write # Added for OIDC token access
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Install JFrog CLI
id: setup-jfrog-cli
uses: jfrog/setup-jfrog-cli@v4.5.13
env:
JF_URL: ${{ env.JF_URL }}
with:
version: 2.78.8
oidc-provider-name: ${{ env.OIDC_PROVIDER_NAME }}
- name: Docker login
uses: docker/login-action@v3
with:
registry: ${{ env.JF_REGISTRY }}
username: ${{ steps.setup-jfrog-cli.outputs.oidc-user }}
password: ${{ steps.setup-jfrog-cli.outputs.oidc-token }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push Docker image
id: build-and-push
uses: docker/build-push-action@v6
with:
context: .
push: true
tags: ${{ env.JF_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.run_number }}
build-args: ${{ env.BUILD_ARGS }}
- name: Attest docker image
uses: actions/attest-build-provenance@v2
with:
subject-name: oci://${{ env.JF_REGISTRY }}/${{ env.IMAGE_NAME }}
subject-digest: ${{ steps.build-and-push.outputs.digest }}
Validación y promoción
Una vez que el artefacto ha sido verificado y cumple con las políticas establecidas, JFrog puede promover automáticamente la atestación desde el entorno de desarrollo al entorno de producción.
Alertas y vulnerabilidades en producción
Con la integración habilitada, los datos del ciclo de vida del artefacto se envían automáticamente desde JFrog a GitHub. Cuando un artefacto se promueve a producción en JFrog Artifactory, JFrog notifica a GitHub para que Dependabot pueda identificarlo con el nuevo filtro: `artifact-registry:jfrog-artifactory`.
Cuando se identifica una alerta, se puede solucionar utilizando la actualización de dependencia sugerida, lo que permite reconstruir y volver a implementar con una nueva provenance.
Mejores prácticas
Para aprovechar al máximo la integración, considera estas recomendaciones:
- Utiliza OIDC para evitar credenciales de larga duración en tus flujos de trabajo.
- Automatiza las promociones en Artifactory para mover artefactos de desarrollo → staging → producción.
- Establece controles de seguridad tempranos para evitar que las compilaciones no atestiguadas o vulnerables lleguen a producción.
- Aprovecha las atestaciones de provenance en JFrog Evidence para una trazabilidad instantánea.
Conclusión
La integración entre GitHub y JFrog es una excelente noticia para los equipos de desarrollo que buscan fortalecer la seguridad y trazabilidad de su software. Al centralizar herramientas y automatizar procesos, esta alianza promete reducir la fricción y permitir que los desarrolladores se concentren en lo que mejor saben hacer: construir software de calidad.
Fuente original: GitHub Blog
Leave a Comment