파이썬을 활용한 클라우드 서비스 보안 관리

지난 시간 클라우드 보안 설계와 서비스, 목적별 보안 아키텍처에 대해 살펴보았습니다. 클라우드 시스템을 구축한 이후 고민할 부분은 효율적인 관리라고 할 수 있습니다. 단순히 클라우드 서비스 사용을 뛰어넘어 최근에는 클라우드 환경을 이용하여 Microservice를 사용하는 사례가 늘어나고 있는데요. 오늘은 빠르게 변화하는 클라우드 시스템의 효율적인 보안 관리를 위해 사용되는 파이썬 활용 사례에 대해 알아보겠습니다.

# 파이썬으로 클라우드 자동화 시작하기

여러 개의 클라우드 시스템을 사용할 경우 클라우드 콘솔에 하나의 설정을 확인하는 것은 어려운 일은 아닙니다. 그러나 수십 개 이상의 시스템 설정을 수동으로 확인하는 작업에는 많은 시간과 노력이 필요하죠. 특히 빠르게 생성되고 배포되는 환경에서 네트워크 구성과 과다하게 오픈된 정책을 수작업으로 관리하는 건 불가능한데요. 그래서 클라우드 자동화를 위해서 다양한 스크립트의 언어가 활용되고 있습니다.

그중에서 파이썬은 다양한 분야에서 쓰이고, 배우기 쉬워 클라우드 자동화와 데이터 분석에 많이 사용되고 있는 언어입니다. 파이썬은 인터프리터라는 컴퓨터 프로그램 또는 환경을 이용해 소스코드를 바로 실행할 수 있는 스크립트 언어인데요. 커맨드 라인 인터페이스(CLI: Command Line Interface) 환경에서 파이썬 코드를 실행하면 바로 출력값이 나오므로 사용자와 상호작용을 할 수 있습니다. 또한, 통합 개발 환경(IDE: Integrated Development Environment)에서 제공하는 여러 개발도구를 활용해 개발할 수 있습니다. 실제 클라우드 자동화와 데이터 분석에 파이썬이 많이 활용되고 있습니다.

파이썬 설치 AWS CLI 설치 <-> 파이선 스크립트 <-> APO(BOTO3) <-> 클라우드 계정정보 설정정보 로그정보 -> 보안 이벤트 분석
파이썬을 활용한 보안 관리 개념도

보안담당자는 퍼블릭 클라우드 서비스에서 제공하는 다양한 API(Application Programming Interface)를 통해 클라우드에 있는 자원 현황, 계정 현황, 보안 설정 등을 관리할 수 있습니다. 특히 관리 콘솔에 대한 계정관리, 보안 설정, 로그 분석 등을 한 번에 조회하고 관리할 수 있도록 자동화에 대한 노력이 필요합니다.

# API를 활용한 클라우드 관리 콘솔의 보안 관리

API(Application Programming Interface)를 활용해 사용자 계정 접근제어와 클라우드 자원 정책을 관리할 수 있습니다. 클라우드 별로 제공하는 API가 다르겠지만 만약 여러 개의 AWS 시스템을 사용 중이라고 가정해 본다면, Boto3 패키지를 활용해 볼 수 있는데요. Boto3는 AWS 중 약 40여 개 서비스의 API를 지원하고 있는 패키지로 AWS뿐만 아니라 파이썬 커뮤니티에서도 지속적으로 기능을 지원하고 있습니다.

사용자 인증은 클라우드 환경에서 가장 중요한 보안 설정인데요. API를 활용하여 자동화를 구현하려면 사용자 계정을 관리하는 클라우드 서비스를 먼저 이해해야 합니다.

만약 보안담당자가 클라우드 관리 콘솔에 접속하는 사용자에게 적절한 권한이 할당되었는지를 확인하고 사용자에게 접근제어, 복합 인증(MFA : Multi-Factor Authentication)을 적용할지 여부를 점검하려고 한다면 AWS의 경우 IAM(Identity and Access Management) 서비스 화면에 대해서 알아야 합니다. IAM에 접속하면 그룹, 사용자, 역할이라는 항목이 있습니다.

사용자A - 사용자A 권한 - 클라우드, 환경 모든 권한 스토리지 조회/기동 -> 데이터베이스 사용지B - 사용자B 권한 -조회 - 가상머신
최소화된 권한으로 구성된 사용자 계정 사례

· 사용자는 그룹에 속할 수 있고, 개별 사용자로 생성할 수도 있습니다. 그룹에 속한 경우 그룹에 있는 권한(정책)이 적용됩니다.
· 역할은 IAM 사용자, 애플리케이션, AWS 서비스에 할당할 수 있고 IAM 역할에 설정된 권한(정책)이 적용됩니다.


웹 화면에서 관리되는 계정과 권한들은 별도의 API로 정의되어 제공됩니다. AWS IAM의 경우 Boto3 Available Services라는 메뉴에서 API 함수 호출 방법과 결괏값의 구조를 자세히 설명하고 있습니다. 따라서 클라우드 서비스 사용방법을 이해하고 적합한 API 함수를 선택해서 파이썬으로 구현할 수 있습니다.

파이썬과 API의 호출 방법을 통해서 계정관리 외에 로그 설정, 과도한 네트워크 허용 정책 등 많은 수작업을 자동화하고 가시성을 확보할 수 있습니다. 특히 파이썬은 데이터 과학 및 기계학습에 사용되고 있기 때문에 보안 로그와 이벤트 정보 등을 분석하여 보안 위험 분석과 자동화된 보안 위협 대응에도 활용할 수 있다는 장점이 있습니다.

AWS 시스템 외에 다른 퍼블릭 클라우드에서도 CLI 기반으로 API 호출 기능을 제공하고 있기 때문에 퍼블릭 클라우드에 대한 보안 기준을 수립하고 해당 퍼블릭 클라우드에서 제공하는 API들을 활용하여 리소스 현황 정보 모니터링과 보안점검을 자동화할 수 있는 체계를 만들어 갈 수 있습니다.

이번 글에서는 변화하는 클라우드 시스템의 효율적인 보안 관리를 위해 사용되는 파이썬 활용 사례에 대해 살펴봤습니다. 다음 시간에는 파이썬 외에 Ansible을 활용한 보안 관리 방안에 대해 알아보겠습니다.

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


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

삼성SDS 소셜 크리에이터 황치하 (Senior Engineer)
공유하기