보안 스캐닝 및 서명
1️⃣ + 취약점 스캐너 (Trivy, Clair) 통합
Harbor는 이미지 보안을 위해 취약점 스캐너를 통합할 수 있으며,
기본적으로 Trivy 또는 Clair를 사용할 수 있습니다.
1. Trivy란?
- Aqua Security에서 만든 가볍고 빠른 오픈소스 취약점 스캐너
- Harbor 2.0 이상 버전에서는 Trivy가 기본 스캐너
2. 스캐너 설정 방법 (UI)
Administration → Interrogation Services
- Trivy가 기본 활성화됨 (필요 시 외부 Clair 추가 가능)
- 프로젝트별로 자동 스캔 활성화 가능
✅ 스캐너 통합 구조 아키텍처
[사용자 Push 이미지]
↓
[Harbor Registry]
↓
[Interrogation Service]
└── Trivy or Clair
↓
[DB에 취약점 결과 저장]
↓
[UI에서 CVE 목록 조회 가능]
2️⃣ + 자동 취약점 검사 설정
Harbor는 이미지 업로드 시 자동으로 스캔을 수행할 수 있습니다.
1. 프로젝트 설정
- 프로젝트 > Configuration > Automatically Scan Images on Push
2. 실습 예시
docker pull nginx:1.19
docker tag nginx:1.19 harbor.local/library/nginx:1.19
docker push harbor.local/library/nginx:1.19
→ 푸시 후 자동으로 Trivy가 취약점 스캔 수행
3. 스캔 결과 확인 (UI)
- 프로젝트 > 저장소 > 해당 이미지 선택
- Scan Summary: 취약점 개수 및 등급 확인 가능
3️⃣ + Content Trust (Notary)와 이미지 서명
Harbor는 Docker Content Trust를 활용한 이미지 서명을 지원합니다.
💡 이미지가 변경되지 않았음을 Notary 서버를 통해 검증할 수 있습니다.
1. Notary 구성 요소
- Notary Server: 서명된 메타데이터 저장
- Notary Signer: 개인 키를 이용해 서명 생성
✅ Notary 아키텍처 플로우
[사용자]
↓ docker trust sign
[Docker CLI] → Notary CLI → Signer
↓ ↑
Harbor UI ←---------- Notary Server
2. 서명 명령어 예시
export DOCKER_CONTENT_TRUST=1
docker trust sign harbor.local/library/nginx:1.19
→ 서명된 이미지만 Pull 가능하도록 설정 가능
3. 서명된 이미지 Pull
docker pull harbor.local/library/nginx:1.19
# Content Trust 위반 시 Pull 실패
4️⃣ + CVE 목록 확인 및 정책 기반 접근 제한
Harbor는 스캔된 이미지에 대해 CVE 정보를 제공하며,
정책에 따라 Pull 또는 Deploy 제한이 가능합니다.
1. CVE 상세 보기
- UI에서 이미지 클릭 → Scan 결과 → CVE 목록 확인 가능
- CVSS Score 기반으로 심각도 분류 (Low / Medium / High / Critical)
2. 정책 기반 접근 제한 설정
특정 심각도 이상인 이미지는 Pull 금지 정책 설정 가능
🔐 정책 설정 위치
Administration → Configuration → Prevent pulling images with severity
예:
- ✅ 설정: “High” 이상이면 Pull 금지
- 🧪 실습: 고의로 취약한 이미지 Push 후 Pull 시도 시 실패
3. 실제 동작 흐름도
사용자 docker pull 요청
↓
Harbor → 이미지 스캔 결과 확인
↓
Severity 기준 만족 여부 판단
↓
[허용] 또는 [403 금지]
🧠 마무리 요약
기능 | 설명 |
---|---|
Trivy / Clair 통합 | 이미지 취약점 자동 검사 |
자동 스캔 | Push 시 스캔 자동 수행 |
Notary 이미지 서명 | 이미지 위변조 방지 및 신뢰 검증 가능 |
정책 기반 Pull 제한 | CVE 등급 기반 접근 제어 가능 |
마지막 수정일자