CI/CD pipeline은 보안에 중요합니다 — 소스 코드, 자격 증명, production deploy에 접근합니다. 손상된 pipeline은 치명적일 수 있습니다(공급망 공격). pipeline 보안은 secret, pipeline 자체, 의존성, 생성된 artifact를 보호하는 것을 포함합니다.
왜 pipeline 보안이 중요한가
pipeline은 고가치 대상 — 강력한 접근을 가짐:
→ 소스 코드, deploy 자격 증명, production 접근, secret
→ 손상된 pipeline은 소프트웨어에 악성 코드를 주입(공급망 공격 — 모든
사용자에 영향)하거나 자격 증명을 훔치거나 악성 버전을 deploy할 수 있음
→ 실제 심각한 공격(SolarWinds 등)이 build/CI 시스템을 노렸음.
pipeline 보안하기
✓ SECRET — 안전한 secrets store/manager; 하드코딩 안 함; 단기 자격 증명(OIDC);
pipeline 자격 증명에 최소 권한
✓ 접근 제어 — 누가 pipeline을 수정/deploy를 승인할 수 있는지 제한; main 보호;
pipeline 변경에 리뷰 요구 (pipeline config는 보호할 코드임)
✓ 격리 — 일시적, 격리된 build 환경 (더러운 runner 재사용 안 함);
pipeline이 접근할 수 있는 것을 제한 (최소 권한)
✓ SELF-HOSTED RUNNER 보호 (흔한 공격 벡터); 도구를 패치 유지
