loading...

DevOps 환경의 클라우드 보안 아키텍처

IT 업계에 오랫동안 발을 담근 선배가 말합니다. “나 때는 말이지, 개발자가 시스템 개발을 끝내면 이후에 운영자가 유지 보수하면서 그 시스템을 꾸려갔었어!”라고. 즉, 하나의 시스템을 개발자와 운영자 두 그룹이 독립적으로 바라보고 있었던 거죠. 아마 지금도 개발자와 운영자가 분리된 채 운영되는 시스템이 있을지 모릅니다. 그러나 같은 목표를 향해 달려가는 그룹 간 효율을 높이기 위해서 두 그룹이 ‘함께’ 손을 잡는 방식으로 변화하고 있습니다. 지금부터 개발과 운영 업무 간 시너지를 낼 수 있는 DevOps(데브옵스) 환경의 클라우드 보안 아키텍처에 대해 알아보겠습니다.

# 개발자와 운영자가 손을 잡다 > DevOps

DevOps(데브옵스) 탄생 배경부터 풀어 볼까요? DevOps(데브옵스)는 소프트웨어 개발(Development) 조직과 운영(Operations) 조직이 상호 의존적이어야 하며, 소프트웨어 제품과 서비스를 빠른 시간에 개발하고 배포해야 함을 목적으로 생겨났는데요. 이후 개발자와 운영자 간에 서로 소통하고 협업하는 환경과 문화를 만드는 방향으로 변화되었습니다. 클라우드 환경에서도 온 프레미스(On-Premises) 환경과 동일하게 조직문화와 개발 환경은 같습니다. 자유로운 소통과 협업의 분위기가 더해진 것이니까요.

개발자 운영자 소통/협럽 Development Operations 클라우드 환경
DevOps(데브옵스) 개념도

실제 DevOps 환경에서 소스코드 관리와 배포, 서비스 운영까지 어떻게 이루어져 있는지 사례로 살펴볼게요. 일반적으로 운영 서비스는 클라우드 환경으로 제공하더라도 개발 환경과 개발 관리 서버는 온 프레미스 환경에 존재하는 경우가 대부분입니다. 즉, 내부 개발 환경에서 소스코드에 대한 형상을 관리하고, 빌드 및 배포까지를 수행한 후 인터넷망을 통해 최종 운영 소스를 클라우드 환경으로 업로드됩니다.

아래와 같은 아키텍처 구조인 경우에 크게 두 가지 보안 고려 사항이 존재합니다.
+ 최종 배포 파일을 클라우드 환경으로 배포하기 위한 인터넷 통신 구간에 위협요소는 없는 것인가?
+ 소스코드 관리하고 빌드, 배포하는 내부 온 프레미스 환경과 클라우드 환경에 보안 취약점이 없고, 주요 소스코드 파일이 안전하게 보관되고 있는가?

내부 데이터 센터(on-premises) 1. 소스코드 관리 2. 빌드 3. 배포 소스코드 관리서버 빌드서버 배포서버 직접 구축/관리 운영자/개발자 운영/개발 취약구간 인터넷 -> 클라우드 환경 운영 가상 머신1 운영 가상머신 2 운영 가상머신 N
DevOps(데브옵스) 환경 구조 : 일반적인 수동 배포 프로세스

우리는 보안성 향상을 위해 사람이 직접 관리하는 수동적인 방식을 탈피하고 자동화하는 방향으로 클라우드 보안 아키텍처 업그레이드를 고려해볼 필요가 있습니다.

# DevOps 에 ‘보안’을 더하다 > DevSecOps(데브섹옵스)

최근 국내외를 넘나들면서 해킹 위협과 내부정보 유출의 사고가 급증하고 있습니다. 이런 이유로 개발/운영 초기 단계부터 보안성 향상이 가미된 DevSecOps(데브섹옵스) 개념을 도입하고 있습니다. 즉, 개발(Development)과 운영(Operations)이 통합된 DevOps에 보안(Security) 중요성이 커지면서 개발/운영 업무에 항상 보안 요소를 고려할 것을 강조하는 것이겠죠.

Security 개발자 운영자 소통/협업 Development Operations 클라우드 환경
DevSecOps(데브섹옵스) 개념도

기존 온 프레미스와 클라우드 간 이원화된 환경 속에서 지속적인 소스코드 통합(CI ; Continuous Integration)과 지속적인 배포 작업(CD ; Continuous Deployment) 수동화, 인터넷망을 통한 운영 소스코드 위협 가능성, 소스코드의 불안전한 버전 관리 등이 우려되는 사용자라면, 클라우드 환경에서 보다 편하고 새로운 방법을 찾고 계실 텐데요!

클라우드 환경만의 특징을 충분히 발휘하여 보안성을 올릴 수 있는 방법에 대해 생각해보겠습니다. 어떻게 보면 클라우드 환경을 온 프레미스처럼 동일한 구조로 꾸밀 수 있겠지만, 강화된 보안성자동화 개념이 포함된 SaaS(Software as a Service)나 PaaS(Platform as as Service)를 충분히 활용하는 쪽으로 떠올려볼 수 있습니다.

그 방법은 바로 DevSecOps의 코드 개발부터 소스코드 형상관리, 빌드, 배포까지 자동화된 파이프라인을 적용하고, 안전한 스토리지 복제본 저장과 암호화된 전용망으로 소스코드를 전달해 주는 서비스를 활용하는 것입니다. 즉, 이미 특정 기능을 수행하는 보안 요소가 적용된 클라우드의 자체적인 서비스를 사용하는 것이죠.


클라우드 환경 개발 VPC CI/CD 자동화 코드 파이프라인 제어 파이프라인 설정 운영자/개발자 - Check in - 코드 커밋 -Trigger - 코드 빌드- Trigger - 코드 배포 운영 VPC 가상 머신 배포 VM VM VM 운영환경 - 가상머신 컨테이너 배포 Container Container Container 운영 환경 - 컨테이너
DevSecOps 환경의 구조 : 자동 배포 프로세스 아키텍처와 보안

위와 같은 아키텍처 사례는 개발자와 운영자는 단순히 코드 개발과 테스트만 할 뿐, 그 외 소스코드 통합, 버전 관리, 빌드, 배포 등 일련의 과정은 클라우드 서비스가 자동으로 수행해 줍니다. 게다가 사람이 직접 개입하지 않아도 보안성 요소가 적용되어 있어 DevSecOps 체계를 충분히 실현할 수 있게 됩니다. 이거야말로 CI/CD(CI ; Continuous Integration/CD ; Continuous Deployment) 자동화의 끝판왕이 아닐까요?

다음 시간에는 클라우드 환경에서 취약한 항목을 직접 확인하고 방어할 수 있는 보안 관리 도구(Tool Chain)에 대해 풀어보겠습니다.

+ 클라우드 보안 입문서를 소개합니다! <클라우드 x 보안 실무 가이드> 저자 인터뷰
+ 언제 어디서나 마음대로 사용하는 클라우드
+ 클라우드 서비스를 선택하는 방법 ‘클라우드의 유형과 서비스 종류 알아보기’
+ 클라우드 서비스의 장·단점과 국내외 시장 동향
+ 클라우드 환경의 속성과 보안 특수성
+ 클라우드 환경의 공통 보안 서비스와 네트워크 보안 서비스
+ 클라우드 환경 내 컴퓨팅 자원과 애플리케이션 자원의 보안 서비스
+ 콘텐츠 보안과 클라우드 보안운영 서비스
+ 가용성 측면의 클라우드 보안 아키텍처
+ ‘성능과 보안의 양립점 찾기’ 성능 향상을 위한 클라우드 보안 아키텍처
+ 데이터 안전성을 위한 클라우드 보안 아키텍처
+ 비용 효율을 위한 클라우드 보안 아키텍처

출처: 클라우드 x 보안 실무 가이드(황치하·양지언 지음)

SDS 소셜 크리에이터 양지언(Senior Engineer)

이 글이 좋으셨다면 구독&좋아요

여러분의 “구독”과 “좋아요”는
저자에게 큰 힘이 됩니다.

subscribe

구독하기

subscribe

공유하기