CVE/SBOM 게이트 문서화: CLAUDE.md 3번째 서브시스템 + MEMORY.md 신설
CLAUDE.md 에 CVE/SBOM 게이트 서브시스템 절 추가(기존 7개 설계 원칙·구현 현황은 변경 없음). doc/sbom-pipeline.md 에 게이트 판정 절 + 커버리지 자가진단 미이식 제약 명시. MEMORY.md 신설 — warn-only 상태, 45+ 차트 미검증, 자체 빌드 프레임워크 미사용, SBOM_PIPELINE_IMAGE 재빌드 보류 등 후속 결정 사항 기록.
This commit is contained in:
@@ -2,12 +2,13 @@
|
||||
|
||||
## 프로젝트 개요
|
||||
|
||||
DIP Catalog는 두 개의 독립 서브시스템으로 구성된다.
|
||||
DIP Catalog는 세 개의 독립 서브시스템으로 구성된다.
|
||||
|
||||
| 서브시스템 | 설명 | 경로 |
|
||||
|-----------|------|------|
|
||||
| **정적 카탈로그** | 45+ 엔터프라이즈 Helm 차트 버전 보관소 (Kafka, Airflow, MLflow, KServe, OpenMetadata 등) | `manifests/helm/` |
|
||||
| **자동화 에이전트** | Helm 차트 신규 버전 감지 → Diff 분석 → 문서 생성 → GitHub PR 자동화 | `agent/update_catalog/` |
|
||||
| **CVE/SBOM 게이트** | 카탈로그 이미지 SBOM·취약점 스캔 + 게이트 판정 (현재 warn-only) | `scripts/pipeline/`, `scripts/build/`, `doc/sbom-pipeline.md` |
|
||||
|
||||
카탈로그는 운영 클러스터 직접 변경과 무관하다. **모든 변경은 Git PR을 통해서만 이루어진다.**
|
||||
|
||||
@@ -29,7 +30,12 @@ dip-catalog/
|
||||
│ ├── design/ # 컴포넌트별 상세 설계 (00~05)
|
||||
│ ├── decisions/ # ADR (아키텍처 결정 기록)
|
||||
│ └── status.md # 구현 현황
|
||||
└── doc/ # 차트 리소스 프로파일 (CPU/Memory/Storage 정의)
|
||||
├── scripts/
|
||||
│ ├── pipeline/ # SBOM 생성 + CVE 스캔 + 게이트 판정 (sbom.yml/cve-edge-post.yml 이 쓴다)
|
||||
│ └── build/ # 자체 빌드 이미지 프레임워크 (build-image.yml 이 쓴다 — 아직 실사용 이미지 없음)
|
||||
└── doc/ # 차트 리소스 프로파일(CPU/Memory/Storage) + CVE/SBOM 파이프라인 문서
|
||||
├── sbom-pipeline.md # SBOM 생성·스캔·게이트 메커니즘
|
||||
└── cve-exceptions.json # 게이트 승인 예외 목록
|
||||
```
|
||||
|
||||
---
|
||||
@@ -103,6 +109,27 @@ python3 agent/update_catalog/skills/helm_diff/scripts/run.py \
|
||||
|
||||
---
|
||||
|
||||
## CVE/SBOM 게이트 작업
|
||||
|
||||
`manifests/helm/` 카탈로그가 참조하는 컨테이너 이미지의 SBOM·취약점을 스캔하고
|
||||
게이트로 판정한다. 정적 카탈로그·자동화 에이전트와 독립적으로 동작한다.
|
||||
|
||||
```
|
||||
extract-helm-images.sh → generate-sbom.sh → scan-sbom.sh → cve-gate.py
|
||||
(scripts/pipeline/, .github/workflows/sbom.yml·cve-edge-post.yml 이 실행)
|
||||
```
|
||||
|
||||
- **현재 warn-only**: 게이트가 실패해도 CI/PR 을 막지 않는다. 45+ 개 카탈로그 차트가
|
||||
이 게이트로 트리아지된 적이 없다.
|
||||
- 자체 빌드 프레임워크(`scripts/build/`, `.github/workflows/build-image.yml`)는
|
||||
도입만 됐고 실사용 이미지가 없다(`images/` 디렉토리 자체가 없음). 게이트가 상위
|
||||
태그·베이스 OS 교체로 해소 안 되는 차단 CVE 를 찾으면 이 프레임워크로 자체 빌드를
|
||||
검토한다 — 절차는 [.claude/image-authoring.md](.claude/image-authoring.md).
|
||||
- 상세: [doc/sbom-pipeline.md](doc/sbom-pipeline.md) · 승인 예외: `doc/cve-exceptions.json`
|
||||
· 현재 미결 사항: [MEMORY.md](MEMORY.md)
|
||||
|
||||
---
|
||||
|
||||
## 설계 원칙
|
||||
|
||||
아래 원칙을 위반하는 코드를 제안하거나 작성하지 않는다.
|
||||
@@ -145,3 +172,4 @@ python3 agent/update_catalog/skills/helm_diff/scripts/run.py \
|
||||
| [agent/update_catalog/docs/design/05-on-cluster-agent.md](agent/update_catalog/docs/design/05-on-cluster-agent.md) | On-Cluster Agent 설계 (Step 2~3) |
|
||||
| [agent/update_catalog/docs/decisions/001-agentic-first.md](agent/update_catalog/docs/decisions/001-agentic-first.md) | 파이프라인 오케스트레이션 건너뛰기 결정 배경 |
|
||||
| [agent/update_catalog/docs/status.md](agent/update_catalog/docs/status.md) | 구현 현황 상세 |
|
||||
| [doc/sbom-pipeline.md](doc/sbom-pipeline.md) | SBOM 생성·CVE 스캔·게이트 파이프라인 상세 |
|
||||
|
||||
Reference in New Issue
Block a user