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:
wbsong111
2026-08-27 14:45:19 +09:00
committed by GitHub
parent 24f41d6891
commit cda9dc607d
4 changed files with 45 additions and 18 deletions
+7 -4
View File
@@ -52,12 +52,15 @@ gh run watch --repo <org>/dip-catalog
## 차단 CVE 대응 우선순위
```
상위 태그 교체 → 베이스 OS 교체 → 자체 빌드 → 예외 승인
무료 치환(태그 교체 · 이미지 좌표 교체) → 자체 빌드(hardened-containers) → 예외 승인
```
자체 빌드로 가야 한다면 별도 레포 `hardened-containers`에서 한다 — 그 레포의
`docs/image-authoring/README.md`가 절차 단일 출처다. 판정 로직 상세는
`scripts/pipeline/cve-gate.py`의 모듈 docstring을 1차 출처로 본다.
"베이스 OS 교체"라는 독립 레버는 없다 — 실제로 해보면 항상 자체 빌드로 귀결된다.
레버 판단 상세는 [cve-remediation](../cve-remediation/SKILL.md) skill이 갖는다. 자체
빌드로 가야 한다면 별도 레포 `hardened-containers`에서 한다 — 그 레포의
`docs/image-authoring/README.md`가 절차 단일 출처다. 이 레포는 이미지를 빌드하지
않는다. 판정 로직 상세는 `scripts/pipeline/cve-gate.py`의 모듈 docstring을 1차
출처로 본다.
## 참고