# 0001. cnpg-cluster 의 PostgreSQL 이미지를 SUSE BCI 자체 빌드로 한다 - 날짜: 2026-07-28 (결정) · 2026-08-03 (`docker.io/paasup` 로 재빌드) - 상태: 확정 - 원본: security-catalog ADR 0001 — dip-catalog 맥락으로 다시 썼다([README](README.md) 참고) ## 결정 `manifests/helm/cnpg-cluster/1.0.0` 의 PostgreSQL 이미지를 SUSE BCI 15.7 기반 자체 빌드로 한다. 현재 태그는 [custom-values.yaml](../../manifests/helm/cnpg-cluster/1.0.0/custom-values.yaml) 의 `postgresql.imageName` 이 단일 출처이고, 빌드 정의는 [images/cnpg-postgresql/](../../images/cnpg-postgresql/)(`suse.Dockerfile` + `suse.build.env`)다. ## 배경 이전 값 `ghcr.io/cloudnative-pg/postgresql:18.4-system-trixie` 에 두 문제가 있었다. 1. `system` 은 **업스트림에서 deprecated 된 타입**이다 (in-core barman phase out 예정) 2. 실효 CRITICAL/HIGH **6/26**, 게이트 차단 **32건** (2026-07-28 실측) 후보 셋을 비교했다. | | A `standard-trixie` | B ubuntu:24.04 자체 빌드 | **C SUSE BCI 15.7 자체 빌드** | | --- | --- | --- | --- | | 실효 고유 C/H | 23 | 0 | 0 | | 측정 가능성 | trivy 완전 | trivy 완전 | trivy 완전 | | 서명·attestation | ✅ | ❌ | ❌ | | 미조사 사각지대 | 0 | 18건 | 18건 | | 배포 검증 | — | failover 2초 | failover 3초 | | gid | `postgres` | ⚠️ `tape` 가 gid 26 선점 | `postgres` | ## 근거 - **A 의 차단 23건은 전부 수정 버전이 없다.** Debian 판정이 `unimportant` 9 / `no-dsa` 7 / `postponed` 3 / 미분류 4 로, 어떤 조치로도 해소되지 않는다. KEV 교집합은 0건이다. - **C 는 0건이고, 그 0건이 측정된 0건이다.** 결정 당시에는 "trivy 가 SLES 15.7 을 커버하지 않으므로 직접 평가해야 한다" 고 봤는데 **그 전제가 틀렸다**(2026-07-29 재측정). 깨끗한 이미지도 findings 0 이라 "0건" 과 "데이터 없음" 이 구분되지 않았던 것이 원인이다. 올바른 검사는 양성 대조이고, dip-catalog 는 그것을 `CoverageProbe` 로 **매 스캔마다** 한다 ([doc/sbom-pipeline.md](../sbom-pipeline.md)). - **C 는 B 의 gid 위생 문제가 없다.** B 는 gid 26 이 `tape` 그룹에 선점되어 있다. - **C 는 배포 검증을 통과했다** — CNPG 오퍼레이터 통합, 롤링 전환, 데이터 보존, failover 3초. - **SUSE 공식 PostgreSQL 차트는 대안이 아니었다** — 확장이 `plpgsql` 하나뿐이다. C 는 `pgaudit`·`pgvector`·contrib 를 포함한다. ## 받아들인 비용 - **업스트림 서명·provenance·SBOM attestation 을 잃는다.** - **재빌드 책임을 진다.** PostgreSQL 마이너 릴리스마다, 베이스 보안 업데이트마다. 후보 B 에서 이미 실증됐다 — 빌드 후 하루도 안 되어 glibc 업데이트로 findings 38 → 46. - **업스트림이 테스트하지 않는 구성이다.** CNPG bake 매트릭스는 Debian 3종뿐이다. - **`pg-failover-slots` 확장이 없다.** PGDG zypp 저장소에 패키지가 없다. - **미조사 사각지대 18건.** SUSE 는 "미평가" 를 문서 부재로 표현하므로 **무엇이 미평가인지 열거할 수 없다.** 이것은 어떤 도구를 쓰든 같다(이 이미지 기준 벤더 데이터가 언급하지 않는 패키지 61개 / 176개). `0/0` 의 근거가 그만큼 불완전하다. ## 재검토 조건 - **A 의 차단 23건에 수정 버전이 도착하면** — 업스트림 이미지로 돌아가는 것이 유리해진다. 게이트 리포트의 `status: fixed` 여부로 감지된다. - **사각지대 18건 조사 결과가 C 에 불리하면.** - **재빌드 부담이 실제로 문제가 되면** — 분기 1회 이상 재빌드가 필요해지는 경우. - **SUSE 가 BCI 기반 CNPG 호환 이미지를 직접 발행하면** — 자체 빌드가 불필요해진다.