1. Flux의 보안 중심 아키텍처
- SLSA Build Level 3 인증: Flux는 SLSA(Build Level 3) 인증을 통해 서명 및 빌드되어, 업스트림 이미지의 변조를 방지합니다.CNCF
- 외부 바이너리 미사용: Git, Helm, Kubernetes, Kustomize 등 모든 리콘실러는 Go 언어로 구현되어 있으며, GPG를 제외하고 외부 바이너리를 호출하지 않습니다.CNCF
- Kubernetes 네이티브 상태 저장: Flux의 모든 API 상태는 Kubernetes 내부에 저장되며,
flux-system네임스페이스에 대한 네트워크 트래픽은NetworkPolicy로 제어됩니다.CNCF - 최소 권한 원칙 적용: 각 컨트롤러는 별도의 역할 기반 접근 제어(RBAC)를 통해 최소한의 권한만을 부여받아 작동합니다.
2. Git-less GitOps: OCI 아티팩트를 통한 배포
- OCI 아티팩트 지원: Flux는 Git 저장소 없이도 OCI(Open Container Initiative) 아티팩트를 통해 원하는 상태를 조율할 수 있습니다.CNCF
- 서명 검증:
cosign을 활용하여 OCI 아티팩트의 서명을 검증함으로써, 보안성을 강화합니다. - D2 참조 아키텍처: Flux 커뮤니티는
fleet,infra,apps와 같은 별도의 저장소로 구성된 D2 참조 아키텍처를 제공하여, 다양한 클러스터에 독립적으로 배포할 수 있는 구조를 제시합니다.CNCF - OIDC 기반 검증:
OCIRepository의spec.verify.matchOIDCIdentity필드를 통해, 특정 브랜치와 워크플로우에서 생성된 아티팩트만을 허용하는 정책을 설정할 수 있습니다.CNCF
요약
Flux는 보안과 확장성을 고려한 GitOps 도구로, SLSA 인증, 외부 바이너리 미사용, Kubernetes 네이티브 상태 저장, 최소 권한 원칙 등의 보안 기능을 제공합니다. 또한, Git 저장소 없이도 OCI 아티팩트를 통해 원하는 상태를 조율할 수 있는 기능을 지원하여, 다양한 환경에서의 유연한 배포를 가능하게 합니다.