CVE 대응 레버 정책을 2단계(무료 치환/자체 빌드)+예외로 정리한다 (#58)
"베이스 OS 교체"를 독립 레버로 두던 기존 표현을 없앤다 — 이 저장소의 베이스 교체 이력을 전부 찾아보면 예외 없이 hardened-containers 자체 빌드 커밋이다(argocd· keycloak·cnpg-postgresql/etcd·apisix). 다른 배포판의 backport를 실제로 쓰려면 그 배포판 위에 앱을 다시 얹어야 하므로 그 자체가 이미 자체 빌드다. 빌드 없이 끝나는 진짜 무료 치환은 태그 교체와, 관리가 끊긴 벤더 이미지(bitnamilegacy 등)를 활성 벤더의 기존 이미지로 바꾸는 것뿐이다. dip-catalog는 이제 이미지를 전혀 빌드하지 않는다(자체 빌드는 hardened-containers로 완전히 이관됨) — 이 사실을 CLAUDE.md·관련 skill에 명시한다. 유일한 예외인 apisix keycloak-authz는 빌드가 아니라 이미 private으로 빌드된 이미지의 태그 반영이라 원칙에 위배되지 않는다. Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -150,7 +150,7 @@ python3 agent/update_catalog/skills/helm_diff/scripts/run.py \
|
||||
|-------|------|
|
||||
| [chart-to-cnpg](.claude/skills/chart-to-cnpg/SKILL.md) | 카탈로그 차트의 내장 bitnami postgresql 서브차트를 전용 cnpg-cluster로 전환 |
|
||||
| [catalog-update-pipeline](.claude/skills/catalog-update-pipeline/SKILL.md) | 차트 신규 버전 감지 → diff → breaking 판정 → 문서 생성 파이프라인 실행 (`agent/update_catalog`) |
|
||||
| [cve-remediation](.claude/skills/cve-remediation/SKILL.md) | 차단 CVE 대응 레버(태그 교체/베이스 OS 교체/자체 빌드/예외) 결정 — `sbom-cve-gate` 실행 또는 별도 레포 `hardened-containers`(자체 빌드)로 위임 |
|
||||
| [cve-remediation](.claude/skills/cve-remediation/SKILL.md) | 차단 CVE 대응 레버(무료 치환/자체 빌드/예외) 결정 — `sbom-cve-gate` 실행 또는 별도 레포 `hardened-containers`(자체 빌드)로 위임 |
|
||||
| [sbom-cve-gate](.claude/skills/sbom-cve-gate/SKILL.md) | SBOM 생성·CVE 스캔·게이트 판정 실행 및 결과 해석 (`scripts/pipeline`) |
|
||||
|
||||
자체 빌드 하드닝 이미지 추가·변경은 이 레포의 일이 아니다 — 별도 레포 `hardened-containers`
|
||||
@@ -182,9 +182,16 @@ python3 agent/update_catalog/skills/helm_diff/scripts/run.py \
|
||||
이 레포가 아니라 `hardened-containers` 레포가 돌린다).
|
||||
- **`cve-edge-post.yml` 은 게이트를 부르지 않는다** — 같은 스캔 데이터에 판정기가 두 벌이라는
|
||||
뜻이다(승인 예외·실효 등급 미적용). 외부 엔드포인트로 집계를 POST 하는 용도다.
|
||||
- **자체 빌드는 대응 우선순위 3번**(상위 태그 교체 → 베이스 OS 교체 → 자체 빌드 → 예외 승인).
|
||||
레버 판단은 [cve-remediation](.claude/skills/cve-remediation/SKILL.md) skill 이 갖는다.
|
||||
실행은 `hardened-containers` 레포에서 `workflow_dispatch` 로만 한다.
|
||||
- **레버 우선순위**: 무료 치환(상위 태그 교체 · 관리가 끊긴 벤더 이미지를 활성 벤더의
|
||||
기존 이미지로 교체 — 카탈로그 values만 바꾸고 빌드는 없음) → 자체 빌드
|
||||
(`hardened-containers` 전담, 이 레포는 이관만 함) → 예외 승인. "베이스 OS 교체"라는
|
||||
이름의 독립 레버는 없다 — 실제로 해보면 항상 자체 빌드로 귀결된다(실측: 이 저장소의
|
||||
베이스 교체 이력 전부가 hardened-containers 커밋). 레버 판단은
|
||||
[cve-remediation](.claude/skills/cve-remediation/SKILL.md) skill 이 갖는다. 실행은
|
||||
`hardened-containers` 레포에서 `workflow_dispatch` 로만 한다.
|
||||
- **이 레포는 이미지를 빌드하지 않는다.** 유일한 예외는 apisix의 keycloak-authz
|
||||
커스텀 플러그인 오버레이 — 이것도 빌드가 아니라 이미 private으로 빌드된 이미지의
|
||||
태그를 반영하는 것뿐이다(`catalog/image-map/README.md` 참고).
|
||||
- **이 레포는 "무엇을 배포 중인가"만 안다.** 어느 이미지를 자체 빌드하고 있는지는
|
||||
`catalog/image-map/` 이 단일 출처다. 배포 중인 자체 빌드 이미지의 CVE 드리프트는
|
||||
`sbom.yml` 이 다른 카탈로그 이미지와 동일하게 스캔·보고한다 — 재빌드 여부·시점은
|
||||
|
||||
Reference in New Issue
Block a user