GitHub Actions + Security Scanning: 파이프라인에 Trivy와 Checkov를 통합하는 방법

발행: (2026년 1월 19일 오전 11:06 GMT+9)
7 min read
원문: Dev.to

I’m ready to translate the article for you, but I need the text you’d like translated. Could you please provide the content (the article body) you want converted into Korean? Once I have that, I’ll keep the source line unchanged and translate the rest while preserving the original formatting.

🛡️ 솔루션: GitHub Actions에 보안 스캔 통합

그 경험 이후, 나는 취약점이 다시는 프로덕션에 배포되지 않도록 절대 파이프라인을 만들겠다고 결심했다. 이렇게 오늘 여러분과 공유하는 프로젝트가 탄생했다.

🔍 우리가 해결하는 문제

# Así era nuestro workflow ANTES:
- name: Build Docker Image
  run: docker build -t mi-app .

- name: Push to Registry
  run: docker push mi-app:latest

# ¡Sin validaciones de seguridad!

결과: 취약점, 노출된 비밀, 안전하지 않은 구성… 모두 프로덕션에 배포됩니다.

🚀 우리의 안전한 파이프라인 아키텍처

우리의 새로운 파이프라인은 4개의 핵심 단계로 구성됩니다:

1️⃣ 스마트 태그를 활용한 빌드

# Tags únicos por commit + ambiente
IMAGE_TAG_SHA: "sha-${GITHUB_SHA::7}"
IMAGE_TAG_ENV: "${{ inputs.target_env }}-latest"

2️⃣ Trivy 로 취약점 스캔

- name: Security Scan con Trivy
  run: |
    docker run --rm \
      -v $(pwd):/src \
      aquasec/trivy:latest \
      image --severity CRITICAL,HIGH \
      mi-imagen:${TAG}

Trivy는 다음을 찾아줍니다:

  • 시스템 패키지의 취약점
  • 알려진 CVE가 있는 의존성
  • 실수로 노출된 비밀 정보
  • 보안에 취약한 설정

3️⃣ Checkov 으로 Dockerfile 검증

- name: IaC Security con Checkov
  run: |
    docker run --rm \
      bridgecrew/checkov \
      --file Dockerfile \
      --framework dockerfile

Checkov는 Dockerfile이 모범 사례를 따르는지 확인합니다:

  • 루트 사용자 사용? ❌
  • 업데이트되지 않은 패키지? ❌
  • 하드코딩된 비밀 정보? ❌

4️⃣ 실패 시 자동 차단

핵심은 여기입니다: CRITICAL 또는 HIGH 수준의 취약점이 있으면 파이프라인이 즉시 중단됩니다.

if [ "$VULNERABILIDADES" -gt 0 ]; then
  echo "❌ WORKFLOW BLOQUEADO"
  echo "Hay $VULNERABILIDADES problemas de seguridad"
  exit 1
fi

📊 실시간 보안 대시보드

모든 것이 자동으로 GitHub Actions Summary에 표시됩니다:

🐳 Reporte de Escaneo - Trivy
══════════════════════════════

📊 Resumen General
──────────────────
| Tipo               | Severidad | Cantidad |
|--------------------|-----------|----------|
| Vulnerabilidades   | 🔴 CRÍTICA| 2        |
| Vulnerabilidades   | 🟠 ALTA   | 9        |
| Total              |           | 11       |

🏗️ Checkov Security Scan
══════════════════════════

✅ Todos los checks pasaron (22 passed, 0 failed)

🎯 결과: 자동화된 신뢰

  • “취약점이 없기를 바랍니다”
  • 3개월마다 수동 감사
  • 반복되는 보안 사고

  • 각 커밋 자동으로 검증
  • 각 이미지 배포 전 스캔
  • 각 배포 보안 보고서와 함께
  • 제로 구현 이후 프로덕션에서 취약점이 없습니다

예시 이미지

trivy-1

trivy-2

checkov-1

💡 배운 교훈

  1. 보안 ≠ 느려짐
    많은 사람들이 보안 스캔을 추가하면 파이프라인이 느려진다고 생각합니다. 틀렸습니다! 우리의 스캔은 단지 2‑3 분만 추가합니다.

  2. Fail Fast가 Production에서 Fail보다 낫다
    파이프라인이 실패하고(개발자에게 알림) 생산 환경에서 실패하여 사용자에게 영향을 주는 것보다 더 좋습니다.

  3. 보고서는 최고의 동료
    명확하고 자동화된 보고서는 팀이 문제를 이해하고 해결하도록 도와주며, 단순히 “패치”하는 것이 아닙니다.

🚀 3단계 간단 구현

1단계: 복제하고 탐색하기

git clone https://github.com/francotel/docker-image-security-scan
cd docker-image-security-scan

2단계: 워크플로우 확인

.github/workflows/ci.yml 파일(또는 해당 파일명)을 열고 위에 설명된 각 단계들을 검토하세요.

3단계: 조정하고 배포하기

  • 프로젝트에 맞게 tagsvariables를 수정합니다.
  • Docker 레지스트리 자격증명을 GitHub의 secrets에 추가합니다.
  • 커밋하고 Pull Request를 열어 파이프라인이 실행되는 모습을 확인합니다.

예시 파일

github/workflows/publish-nginx-image.yml – 모든 것이 준비되었습니다!

3단계: 상황에 맞게 조정하세요

이미지 이름, 레지스트리 및 정책을 스택에 맞게 수정하십시오.

완료! 이제 파이프라인이 각 Docker 이미지의 보안을 프로덕션에 배포되기 전에 검증합니다. 🎉

📈 즉각적인 영향

  • 감지: 분기별에서 각 커밋마다
  • 커버리지: 샘플에서 이미지 100 %
  • 신뢰: “기대한다”에서 “검증되었다는 것을 안다”

🤝 어떻게 기여할 수 있나요?

프로젝트는 github.com/francotel/docker-image-security-scan 에서 활발히 진행되고 있습니다.

개선 아이디어?

  • Slack/Teams 알림
  • 히스토리 대시보드
  • 기본 이미지 자동 스캔
  • 맞춤형 Policy as Code

🎯 오늘 바로 해보세요!

주요 장점

  • 무료 (open source)
  • 간단 (YAML 파일 하나)
  • 효과적 (실제 문제 차단)

즉시 행동

  • 레포에 스타 달기
  • 🐑 포크하고 맞춤화
  • 💬 이슈에 댓글 달기

자동 보안 준비가 되셨나요? 👉 github.com/francotel/docker-image-security-scan

#DevSecOps #GitHubActions #DockerSecurity

놓치지 마세요! 모든 업데이트와 향후 기사 소식을 받으려면 LinkedIn에서 저를 팔로우하세요:

LinkedIn

☕ 커피 한 잔으로 지원해 주세요

이 내용이 도움이 되었고 더 많은 콘텐츠를 만들 수 있도록 저를 지원하고 싶다면, 커피 한 잔을 사주세요. 여러분의 지원이 차이를 만듭니다! 🥰

BuyMeACoffee

읽어 주셔서 감사합니다. 다음에 또 만나요! 👋

Back to Blog

관련 글

더 보기 »

기술은 구원자가 아니라 촉진자다

왜 사고의 명확성이 사용하는 도구보다 더 중요한가? Technology는 종종 마법 스위치처럼 취급된다—켜기만 하면 모든 것이 개선된다. 새로운 software, ...

에이전틱 코딩에 입문하기

Copilot Agent와의 경험 나는 주로 GitHub Copilot을 사용해 인라인 편집과 PR 리뷰를 수행했으며, 대부분의 사고는 내 머리로 했습니다. 최근 나는 t...