2020년 12월 SolarWinds 사건, 2021년 12월 Log4Shell, 2022년 ua-parser-js 멀웨어 주입, 2023년 PyTorch nightly에 발생한 dependency confusion 공격 — 지난 5년간 발생한 가장 큰 보안 사고들의 공통점이 무엇일까. 모두 **소프트웨어 공급망(supply chain)**을 통해 침투했다는 것이다. 직접 작성한 코드가 아니라 의존하는 패키지를 통해 들어왔다.
이 흐름이 바뀌면서 CI/CD 시스템에서 "어디서 패키지를 가져오는가"가 보안의 일급 시민이 됐다. CodeArtifact는 AWS의 답이다. 표면적으로는 "관리형 npm/Maven/PyPI 미러"지만, 실제 의미는 공급망의 단일 진입점을 만들어 통제 가능한 신뢰 경계를 그리는 것이다.
오늘 다룰 그림은 다음과 같다. ① CodeArtifact의 Domain/Repository 계층이 왜 그렇게 설계됐는지 ② Upstream 패턴이 어떻게 외부 레지스트리 장애와 패키지 unpublish를 흡수하는지 ③ Dependency Confusion 공격이 어떻게 동작하고 CodeArtifact 네임스페이스가 어떻게 막는지 ④ 권한 3계층(IAM + Repository Policy + Domain Policy)의 평가 순서 ⑤ SBOM/SLSA/Sigstore 같은 신흥 표준이 어디에 끼어드는지.