Tech5Sense 블로그를 운영하는 Vishakha Sadhwani 내용 중에, 도움이 될 만한 정보를 공유드립니다. 원본 확인은 이곳 출처에서 확인하세요.
클라우드 보안 vs. DevSecOps
- 클라우드 보안: 클라우드 플랫폼, 네트워크, 서비스 전반을 보호하는 것
- DevSecOps: 동일한 보안 관행을 소프트웨어 전달 파이프라인 내부에 직접 내재화하는 것
CI/CD 및 파이프라인
→ Continuous Integration (CI) → 개발자가 자주 변경 사항을 중앙 저장소에 병합하면, 빌드와 테스트가 실행되어 버그를 조기에 발견합니다.
→ Continuous Delivery (CD) → 테스트된 코드를 스테이징이나 테스트 환경에 배포하는 과정 (아직 프로덕션은 아님). 프로덕션 전에는 수동 승인 단계가 있습니다.
→ Continuous Deployment (CDp) → 릴리스가 곧바로 프로덕션으로 배포됨. 통과한 모든 빌드가 실시간으로 서비스됩니다.
항상 등장하는 주요 단계는 다음과 같습니다: Source → Build → Test → Deploy.
파이프라인 전반부 설정
→ SCM Integration → GitHub, GitLab과 연결
→ Automated Builds → 라이브러리/의존성과 함께 코드를 컴파일하고, 푸시마다 Docker 이미지를 빌드
→ Unit & Integration Testing → 테스트를 자동 실행하고, 문제가 생기면 즉시 실패 처리
-
참고 자료
→ Intro to Continuous Integration
→ CI/CD Explained - FULL FLOW -
기대 결과: 새로운 코드가 푸시될 때마다 컨테이너화된 앱을 빌드하고 테스트하는 간단한 파이프라인을 구성하는 것.
파이프라인의 전달(Delivery) 단계
→ Artifact Management → 빌드 단계에서 생성된 이미지를 Docker Hub 또는 클라우드 기반 컨테이너 레지스트리에 푸시
→ Environments → 모든 조직에는 코드가 처음 배포되는 여러 환경이 있으며, 일반적으로 dev, staging, qa 등이 있고, 이후 프로덕션 대상으로 릴리스되거나 승격됨
→ Deployment Strategies → 코드가 실제 프로덕션에 반영되는 방식
- ↳ Rolling Updates → 점진적으로 교체
- ↳ Blue-Green → 동일한 환경 간 전환
- ↳ Canary Releases → 일부 사용자 그룹에게 먼저 배포해 테스트
이 외에도 여러 방식이 있으며, 아래 유튜브 링크에서 확인할 수 있습니다!
검토할 프로젝트
→ End-to-end CI/CD Project
전통적 CI/CD vs GitOps 접근 방식 차이

- 중요: GitOps CI/CD가 이제는 현대적인 접근 방식입니다!
두 파이프라인에서 공통 단계:
- 소스 코드 커밋 → 개발자가 코드를 작성하고 Git 저장소에 커밋합니다.
- 유닛 테스트 → 자동화된 테스트가 실행되어 코드의 기능성과 품질을 검증합니다.
- 아티팩트 빌드 → 코드가 컴파일되고 배포 가능한 아티팩트로 패키징됩니다.
- 이미지 빌드 → 아티팩트로부터 Docker 이미지를 빌드하여 컨테이너화된 배포를 준비합니다.
- 레지스트리에 이미지 푸시 → 빌드된 이미지를 ECR, Azure Artifact, GCR 같은 컨테이너 레지스트리에 푸시합니다.
배포에서의 주요 차이점(면접 시에도 중요):
-
DevOps CI/CD: CI 파이프라인에서 클러스터(EKS, AKS, GKE)로 직접 푸시
-
GitOps CI/CD: Git이 단일 신뢰 소스로, 클러스터가 Git에서 원하는 상태를 pull 하여 드리프트 감지와 자동 동기화를 가능하게 함
-
참고 자료 → GitOps Explained
시도해볼 프로젝트:
→ End-to-end GitOps Project
→ GitOps Project Series
파이프라인을 작성하는 것과 그것을 보안하는 것은 별개의 문제
-
주요 클라우드 보안 관행:
- 공유 책임 모델(Shared Responsibility Model)
- 데이터 암호화(Data Encryption)
- ID 및 접근 관리(IAM, Identity and Access Management)
- 네트워크 보안(예: 가상 사설 클라우드, 보안 그룹)
- 구성 관리와 모니터링 등 다양한 항목
-
주요 DevSecOps 관행:
- SAST → 빌드 이전 단계에서 소스 코드를 스캔하여 취약점 탐지
- SCA → 의존성(npm, PyPI, Maven 등) 스캔
- 컨테이너 스캐닝 → Docker 이미지 스캔(Trivy, Anchore 등)
- IaC 스캐닝 → Terraform, CloudFormation 구성 검증(Checkov 등)
- DAST → 스테이징 환경에서 실행 중인 앱을 테스트하여 보안 취약점 확인
-
검토할 자료: