본문 바로가기

카테고리 없음

Kubernetes 환경에서 DevSecOps 실천하기

DevOps 체계가 뿌리를 내리는 조직이 늘고 있습니다. 개발, 테스트, 배포, 운영을 표준 절차에 따라 일관성 있게 유지하게 되면 다음 목표는 무엇으로 잡아야 할까요? 아마 대부분 DevSecOps에 관심을 둘 것입니다.

 

보안 운영 패러다임의 변화

 

DevOps가 개발자와 인프라 관리자 간 협업을 끌어냈다면, DevSecOps는 보안 운영자까지 참여합니다. 보안 운영자는 DevOps 체계에 맞물려 돌아가는 정책과 모 사례를 적용하여 개발, 테스트, 배포, 운영 과정에서 위협에 노출되는 부분을 최소화하기 위해 노력합니다.

 

얼마 전만 해도 DevSecOps는 개념이 너무 추상적이었습니다. 그러던 것이 요즘에는 꽤 현실성 있는 주제가 되었죠. 그 이유로 많은 이들이 꼽는 것이 바로 Kubernetes 환경의 확산입니다.

Kubernetes 확산으로 현실성 높아져

 

Kubernetes가 제공하는 다양한 보안 제어 기능은 보안 운영자가 DevSecOps 측면에서 작업해야 하는 수고를 덜어 줍니다. 포드 간 트래픽 송수신을 제한하는 네트워크 정책, 역할 기반 접근 제어, 개방형 정책 에이전트 게이트키퍼 및 보안 컨텍스트 같은 Kubernetes 보안 제어 기능 덕에 별도의 도구에 의존하지 않고 DevSecOps 구현에 도전할 수 있습니다.

 

애플리케이션 현대화 전략과 맞물리는 DevSecOps

 

많은 조직이 컨테이너 전환을 시작으로 애플리케이션 현대화에 나섭니다. 이런 전환 과정은 별도의 영역으로 분리되어 있던 보안을 DevOps에 녹이는 좋은 기회입니다.

 

컨테이너 전환은 애플리케이션 운영 환경을 담은 이미지를 표준화하는 작업을 동반합니다. 이를 고려해 소프트웨어 공급망 측면에서 보안 운영을 하는 것이 DevSecOps의 출발점입니다.

 

보통 클라우드 네이티브 환경에서 DevOps 팀은 업데이트, 패치 등의 작업을 위해 실행 중인 컨테이너를 중단하거나 변경하지 않습니다. 일반적으로 해당 작업 내용을 반영한 컨테이너를 다시 빌드하여 배포합니다. 보안 운영팀은 이를 고려해 소프트웨어 공급망 측면에서 보호를 수행해야 합니다. , 프로덕션 환경에 배포하기 전부터 보호 활동을 시작하는 것입니다.

 

보안 운영팀은 컨테이너 이미지 스캔 작업을 CI/CD 파이프라인에 손쉽게 통합할 수 있습니다. 이를 통해 운영체제, 언어 등의 취약점을 사전 평가하여 위험 요인이 감지될 경우 해당 이미지를 이용한 빌드 작업을 사전에 막거나, 프로덕션 클러스터로 배포하는 것을 제한할 수 있습니다.

DevSecOps의 완성 IaC

 

DevSecOps 역시 고도화의 과정을 거칩니다. Kubernetes 환경을 대상으로 소프트웨어 공급망 측면의 보안 운영을 시작하였다면, 다음 목표로 IaS(Infrastruture as a Code) 환경을 구축해 보안 기능을 확장하는 것입니다. 이 작업은 어려운 일이 될 수 있습니다. 그러나 Ansible 같은 자동화 플랫폼을 활용하면 매우 쉬운 목표가 됩니다.

 

Ansible을 이용하면 코드를 통해 인프라, 보안, 규정 준수를 관리할 수 있습니다. 애플리케이션 생명 주기에 맞춰 인프라 보안을 모니터링하고, 다양한 보안 솔루션과 통합을 통해 문제 해결을 자동화할 수 있습니다. 참고로 레드햇은 시장의 주요 보안 솔루션 기업들과 협력해 SIEM, 방화벽, 침입탐지시스템, 엔드포인트 보안, 접근 제어 등 다양한 Anisible 인증 솔루션을 확대해 나아가고 있습니다.

 

보안 관리 자동화의 단계별 접근

 

Ansible을 활용해 보안 관리 자동화를 점진적으로 구현하는 방안을 알아보겠습니다. 이런 식의 접근은 시행착오를 줄이는 가운데 조직의 CI/CD 파이프라인에 보안 자동화 통합을 가속할 수 있는 이점이 있습니다. 접근 단계는 1)보안 정책을 코드로 변환 2)셀프서비스 기반 보안 프로비저닝 환경 마련 3)원하는 상태로 유지 관리로 나누어 볼 수 있습니다.

 

첫 번째 단계에서는 보안 정책을 코드화하는 작업을 합니다. 이를 위해 문서 형태로 존재하는 보안 정책을 Ansible 컨텐츠로 변환합니다. 이렇게 하면 보안 정책을 코드 형태로 활용할 수 있습니다. 보안 정책을 동적으로 적용할 수 있는 코드 형태로 바꾸면 실행 측면에서 보안 정책을 여러 팀이 공유하는 것이 더 편리합니다. 여러 팀의 이해관계자는 플레이북 같은 Ansible 컨텐츠로 형태로 만든 보안 정책을 SCM 체계 아래 코드로 저장, 관리, 공유할 수 있습니다.

 

두 번째로 할 일은 셀프서비스 기반 보안 프로비저닝 환경을 마련하는 것입니다. 최신 보안 정책을 담은 Ansible 컨텐츠를 셀프서비스 방식으로 IT 팀 구성원들이 활용할 수 있게 하는 것입니다. 이렇게 하면 최신 정책을 운영체제 팀, CI/CD , 네트워크 팀 등 여러 조직이 빠르게 수용할 수 있습니다. 예를 들어 최신 취약점이 공개되고 해당 내용을 담은 패치가 대응 방안이 올라왔을 경우 이를 보안 정책에 반영해 Ansible 컨텐츠로 만들어 올리면 해당 취약점에 관련된 팀에서 이를 프로비저닝 또는 패치 작업을 통해 반영할 수 있습니다.

 

기본적인 보안 자동화 준비를 넘어선 다음 할 일은 세 번째 단계인 보안 설정 유지 관리입니다. 프로비저닝에 사용한 것과 동일한 보안 자동화 컨텐츠를 전체 환경에서 실행하는 것을 떠올리면 이해가 빠를 것입니다. 표준 기반의 자동화가 이루어지면 규정 준수 리포팅이 수월해지고, 상태 정보 드리프트 분석(Drift Analysis) 및 제어가 원활해집니다. 이외에도 프로세스에 없는 변경 사항은 자동으로 원상태로 돌아가게 할 수도 있습니다.

 

이상으로 Kubernetes 환경에서 DevSecOps 실천하는 방법을 간단히 알아보았습니다. , 이외에도 운영체제, 미들웨어, 데이터베이스, 마이그레이션(U2L, DB, WAS), 가상화, 클라우드 및 빅데이터 컨설팅 서비스 관련하여 궁금하신 점은 언제든 문의해 주시기 바랍니다. 아래 링크를 클릭해주세요.

 1:1 문의 바로가기 click

 

 락플레이스는 2005년에 출범하여 대한민국 리눅스의 역사와 성장을 함께 해온 오픈소스 전문 기업으로 국내 최다 엔지니어, 국내 최고 기술력, 국내외 유수기업 컨설팅의 풍부한 경험과 탄탄한 기술력으로 고객의 성공적인 오픈소스 플랫폼 구축과 응용 프로그램 전체 범위의 서비스를 제공하고 있습니다. 락플레이스는 레드햇코리아로부터 Elite Business Associate/Advanced Business Parter/채널 어워드 한국  파트너/FY15 champion 등을 수상 파트너이며, Microsoft Microsoft Cloud Solution Partner(CSP)로서 함께하고 있습니다.