I. 서론
클라우드 서비스는 2023년 전체 기업 중 15%만의 이용률에서 2027년 70% 이상의 이용률을 가진다는 전망[1]과 함께 다양한 산업 분야에 활용되고 있다. 본 연구는 클라우드 인프라 배포 과정을 단순화하고, 사용자가 인프라 정의와 설계에 집중할 수 있는 환경을 제공하는 것을 목표로 한다. 이를 위해 인프라 설계도를 통해 검증된 IaC(Infrastructure as Code)를 제공한다.
기존 클라우드 인프라를 배포하는 방식은 크게 스크립트, 코드, 소프트웨어를 통한 배포가 있다[2]. 스크립트를 통한 배포는 인프라를 생성하는 각 작업들을 일련의 명령어로 자동화한 것으로, 간단하고 직관적이다. 코드를 통한 배포는 목표하는 최종상태를 선언하는 방식으로, 복잡한 배포에도 적합하며, 버전 관리, 상태 관리, 테스트 및 검증에 용이하다. 소프트웨어를 통한 배포는 클라우드 제공업체의 대시보드나 API를 통한 방식으로, 실행 시점의 메타데이터 추적이나 실제 실행 중인 인프라의 상태 확인을 지원한다.
그중 IaC는 코드를 사용하여 클라우드 인프라를 배포, 관리, 프로비저닝하는 방식으로, 더 쉬운 인프라 구성, 변경사항 추적, 코드 재사용을 지원한다. 이에 최소한의 인적 자원으로 대규모 클라우드 환경을 배포, 관리하는 데 유리하다. Terraform은 2024년 30.50% 이상의 시장 점유율을 차지하고 있으며, 35,210명 이상의 사용자 기반을 보유하고 있다[3]. 이렇듯 대표적인 IaC 도구로 자리잡고 있는 Terraform은 AWS, Azure, Google Cloud 등 다양한 클라우드 서비스 제공업체(CSP, Cloud Service Provider)를 지원하며, 직관성, 멱등성을 보장한다[4]. 또한 Terraform은 특정 클라우드 제공자에 종속되지 않으며, 모듈화된 구조를 통해 여러 클라우드 환경에 따라 구성 요소를 재사용하거나 수정하기 쉽게 만들어주기 때문에 멀티 클라우드 환경에 매우 적합한 도구이다.
기존의 IaC 작성 방식은 대부분 코드 작성에 기반하고 있으며, 이는 개발자가 직접 명령어나 코드를 입력해야 하는 복잡함을 수반한다. 이 과정에서의 인적 오류로 인해 보안 취약점이 발생할 가능성이 높아지며, 코드의 가독성과 유지보수성이 저하될 수 있다. 따라서 인프라 구성의 시각적 표현을 통해 오류를 줄이고 효율적인 설계를 가능하게 하는 도구의 필요성을 강조한다.
본 연구는 설계 단계에서부터 안전성 및 개인정보 보호, 배포까지 일련의 과정을 자동화하는 클라우드 인프라 배포 도구를 제안한다. 이는 가상 화이트보드 도구, Terraform, IaC 안전성 검증 도구를 통해 구축되며, 인프라 다이어그램에 대한 Terraform 코드와, 이에 대한 안전성 검사 결과를 함께 제공한다. 이는 IaC를 작성하는 개발 과정을 축소, 생략하여 시간적, 비용적 측면에서 도움을 주며, 점검 과정을 통해 설계 단계에서부터 더욱 정확하고 자동화된 의사결정을 이끌 수 있다. 이 과정을 통해 사용자는 인프라 다이어그램의 구성 오류와 보안 위험 및 IaC 코드 내 개인정보 포함 여부를 점검하고, 안전하고 효율적인 클라우드 인프라 배포를 실현할 수 있을 것이다. 기존의 IaC 보안 관련 연구는 대부분 정적 코드 분석에 의존하는 한계를 가졌으나, 본 연구에서는 API 연동을 통해 실시간으로 보안 취약점 탐지를 반영하는 보안 검증 프레임워크 제공을 목표로 한다.
본 논문은 2장에서 기존 인프라 에디터 도구 및 IaC 보안 취약점에 관한 기존 연구를 제시하고, 3장, 4장에서 TerraSketch의 설계 및 시스템 구현을 다룬다. 이후 5장에서는 IaC 코드 안정성에 대해 설명한다. 마지막으로 6장에서는 본 연구 결과와 향후 과제를 제시하며 논문을 마무리한다.
II. 기존 연구
2.1 기존 인프라 에디터 도구
클라우드 환경을 시각적 모델로 제공하는 도구는 ‘Cloudcraft’, ‘Lucidchart’, ‘Structurizr’ 등이 있다. 이러한 도구들은 인프라 설계, 문서화 혹은 실시간 관리를 목적으로 하며, 일부 도구는 실제 클라우드 서비스와의 통합을 통해 실시간 시각적 모델링 서비스를 제공하거나, 코드를 통한 다이어그램 생성을 지원한다.
Cloudcraft[5]는 AWS 전용 다이어그램 도구로, AWS API와 통합되어 사용자가 계정에 연결된 리소스를 실시간으로 불러오고 시각화할 수 있다. 직관적인 드래그 앤 드롭 인터페이스를 제공하며, 네트워크 아키텍처 설계와 리소스 배치뿐만 아니라, 비용 추정 기능을 통해 비용 효율성을 고려한 인프라 설계가 가능하다. 또한 인프라 변경 사항을 실시간 저장하므로, 변경 사항 추적 및 개선사항을 제공하며 인프라 관리를 돕는다.
Lucidchart[6]는 다양한 클라우드 플랫폼(AWS, Azure, Google Cloud)을 지원하는 범용 다이어그램 도구로, 팀 간 협업을 위한 기능을 제공한다. 다수의 사용자가 동시에 다이어그램을 편집하거나 의견을 공유할 수 있으며, 특히 클라우드 서비스와의 통합을 통해 자동화된 인프라 다이어그램 생성을 지원한다. 이는 API 호출을 통해 실제 리소스를 다이어그램에 반영하고, 이를 실시간으로 업데이트하여 사용자에게 일관성 있는 클라우드 아키텍처 시각화를 제공한다.
Structurizr[7]는 C4 모델을 기반으로 소프트웨어 아키텍처의 계층적 다이어그램 생성을 지원하는 도구로, 개발자들이 코드와 다이어그램을 통합하여 시스템을 설계하는 데 최적화되어 있다. 특히 코드로부터 직접 다이어그램을 생성하고 유지함으로써, 다이어그램과 코드 간의 일관성을 보장하며, 시스템 설계와 문서화의 효율성을 높인다. 이를 통해 복잡한 아키텍처의 구조를 명확히 하고, 개발 프로세스 전반에서 일관된 아키텍처 표현을 유지할 수 있다.
2.2 IaC 보안 취약점
안전한 클라우드 서비스 사용을 위해서는 클라우드 이용 과정 및 데이터 저장 과정에서의 안정성 달성이 가장 큰 고려 사항이다[8]. 따라서 기존의 IaC의 도입과 활용 과정에서 발생할 수 있는 다양한 보안 취약점을 살펴봄으로써 안전한 클라우드 환경이 달성해야 할 목표를 확인할 수 있다.
IaC의 취약점 중 하나는 민감 정보 관리(Secret Management)로, IaC 스크립트에 비밀번호, 토큰, 개인 SSH키 등과 같은 민감한 정보가 하드코딩되어 노출될 경우 심각한 보안 사고를 초래할 수 있다[9]. 이러한 민감 정보가 암호화되지 않거나, 암호화 우선순위 및 관리 계층 부재와 민감정보 그룹화 및 환경 분리가 부재한 경우에도 외부 공격에 취약해질 수 있다.
또한, 잘못된 접근 제어 및 권한 설정(Improper Access Control and Permission Settings)도 중요한 취약점 중 하나이다. IaC 스크립트에서 과도한 권한을 부여하거나 잘못된 접근 제어 정책을 설정하면 불필요한 접근이 허용되어 내부자나 외부 공격자에 의해 악용될 수 있다.
이외에 구성 설정 오류(Configuration Setting Errors)도 IaC 보안에서 자주 발생하는 문제이다. 잘못된 네트워크 설정이나 기본 설정의 오류로 인해 인프라 리소스가 외부에 노출되거나 예상대로 동작하지 않을 수 있다. 이러한 오류를 예방하기 위해서는 구성 데이터를 철저히 검토하고, 기본 설정을 수동으로 강화할 필요가 있다.
Table 1. IaC Security Threats[10]

마지막으로, 인프라 변경사항 관리 부재(Lack of Infrastructure Change Management)는 IaC 에서의 항등성(Idempotency)을 훼손할 수 있다. 항등성 문제는 동일한 코드가 여러 번 실행되었을 때 결과가 일관되지 않는 경우 발생하는 것으로, 예상치 못한 보안 취약점을 유발할 수 있다.
이와 같은 IaC 스크립트에서의 보안 취약점들은 인프라의 기밀성과 무결성에 큰 영향을 미치며, 사전에 이를 식별하고 대응하는 것이 중요하다.
III. Terraform 기반 클라우드 IaC 생성 및 보안 점검 시스템 설계
3.1 시스템 설계
본 연구에서는 “TerraSketch”라는 클라우드 환경 편집 도구를 개발하였다. 이는 Terraform을 이용하여 사용자가 구성한 클라우드 인프라를 IaC 기반의 환경으로 자동화하는 동시에, 시각적인 다이어그램을 통해 인프라 구조를 한눈에 볼 수 있도록 하는 웹 서비스이다. 본 TerraSketch는 온라인 그리기 도구인 오픈소스(Excalidraw)를 이용하여 사용자가 생성한 클라우드 인프라 다이어그램에 대해 실행 가능한 Terraform 기반의 안전한 IaC 코드를 제공한다. 도출된 IaC 코드에 대한 보안성 및 개인정보 유출 가능성을 테스트하기 위해 취약점 자동화 검사 툴(Snyk)을 API 형식으로 연동해 사용하고 있다. 이러한 시스템의 기본 흐름도를 살펴보면 다음 장의 Fig.1.과 같이 나타낼 수 있다.

Fig. 1. IaC Rendering System Flowchart in TerraSketch
시스템 흐름도에서 보이는 TerraSketch에 사용된 주요 오픈소스 세부설명은 아래와 같다.
- Terraform: HashiCorp에서 개발한 오픈 소스 IaC 도구로, 인프라의 일관성과 보안성을 유지하면서도 자동화된 배포 및 관리를 가능하게 해준다. 또한, 인프라 코드에 암호화, 액세스 제어, 네트워크 분할 등의 보안 조치를 통합하여 보안이 일관되게 유지되도록 하여 인프라 구축 시 위협으로부터 보안성을 확보할 수 있다. 결론적으로, 사용자는 다이어그램을 기반으로 도출된 Terraform 코드를 얻음으로써 인프라의 보안성을 강화할 수 있다.
- Excalidraw: 이는 Fig. 1.의 User Cloud Diagram 의 바탕 UI를 구성하는 오픈소스로, 실시간 협업 및 end-to-end 암호화를 지원하며, 웹 상에서의 다이어그램 작성과 편집을 지원한다.
이는 TerraSketch 에디터의 핵심 기반이 되며, 클라우드 인프라 설계 및 구축 시 다양한 다이어그램 작성을 돕는다. 이때 보안 검사 API를 연동해 Fire base DB에 저장된 IaC 코드로 매핑하여 렌더링하는 과정을 거친다.
- Snyk: TerraSketch와 연동된 보안 검사 API로, Firebase로부터 렌더링된 IaC 코드에 대해 실시간으로 보안 검사를 수행하도록 돕는다. 이는 도출된 Terraform 코드 파일을 스캔하여 보안 취약점과 규정 준수 문제에 대한 피드백을 제공함으로써 이루어진다.
3.2 통합 보안 프레임워크 제안
본 연구에서는 코드형 인프라(IaC)의 자동화와 보안 검사를 통합한 프레임워크를 제안한다. 제안된 프레임워크는 TerraSketch와 Snyk 도구를 결합하여, 인프라 배포 이전에 자동으로 보안 상태를 점검하고 잠재적인 취약점을 사전에 차단하는 기능을 제공한다. Terraform은 클라우드 인프라를 선언적으로 정의하고 배포하는 데 사용되는 도구로, 인프라 구성을 코드로 간소화하여 환경설정의 일관성과 재사용성을 보장한다. Snyk는 Terraform 코드에서 발생할 수 있는 보안 취약점을 실시간으로 탐지하고 평가함으로써, 인프라 배포 과정에서 발생할 수 있는 보안 위협을 미리 차단한다.
또한, 본 연구에서 개발된 웹 기반 클라우드 인프라 에디터는 사용자가 클라우드 인프라를 직관적으로 설계하고 관리할 수 있는 효율적인 인터페이스를 제공한다. 사용자는 캔버스 기반 환경에서 리소스를 시각적으로 배치하고, 해당 다이어그램이 자동으로 Terraform 코드로 변환되며 이를 실시간으로 확인할 수 있다. 이러한 설계 방식은 복잡한 인프라 설정 과정을 단순화하고, 코드 작성의 오류 가능성을 줄이며 배포를 자동화하는 데 기여한다.
특히, 본 프레임워크는 단순히 다이어그램 이미지를 코드로 변환하는 것에 그치지 않고, 보안성을 강화하는 데 중점을 두고 있다. 사용자가 설계한 인프라 구성 요소에서 잘못된 설정으로 인한 보안 취약점이 발생하지 않도록 Snyk 도구를 활용하여 배포 전에 보안 검사를 자동화한다. 이 과정에서 발견된 보안 문제는 사용자가 명확하게 확인할 수 있도록 보고 되며, 이를 기반으로 취약점을 수정하고 보완할 수 있다. 이러한 자동화된 보안 검사는 인프라 배포 단계에서 발생할 수 있는 보안 리스크를 최소화하여 안전하고 신뢰할 수 있는 인프라 구성을 보장한다.
IV. Terraform 기반 클라우드 IaC 생성 및 보안 점검 시스템 구현
4.1 시스템 구현
본 연구에서 개발된 웹 기반 클라우드 인프라 에디터는 효율적이고 안전한 클라우드 인프라 구축 및 관리를 목표로 하여 클라우드 리소스를 시각적으로 구성하고 관리할 수 있는 인터페이스를 제공한다. 시스템은 캔버스 그리기를 통한 간편한 인프라 에디터, IaC로 효과적인 인프라 관리, 안전한 IaC 코드 제공 및 보안 진단과 같은 주요 기능을 중심으로 구현되었다.
사용자는 캔버스 기반 웹 서비스를 통해 다이어그램을 생성해 클라우드 인프라를 시각적으로 구성할 수 있다. AWS 리소스 라이브러리에서 필요한 리소스 요소를 선택하고, 캔버스 화면에 드래그 앤 드롭하여 인프라를 직관적으로 설계할 수 있다. 이 인터페이스는 클라우드 구성 요소의 배치를 간편화하고, 복잡한 인프라 설정을 시각화하여 단순화하는 데 도움을 준다.
캔버스에 설계된 클라우드 인프라 다이어그램은 자동으로 Terraform 코드로 변환되어, 오른쪽 코드창에 나타난다. 이를 통해 다이어그램 작성만으로 클라우드 자원을 구축 및 배포할 수 있는 IaC 코드를 실시간으로 얻을 수 있다. Terraform 코드를 렌더링하는 과정은 사용자가 생성한 다이어그램의 리소스 id를 읽어 들여, IaC 코드 템플릿을 저장해놓은 DB에서 리소스들의 필수 코드와 옵션에 대한 정보를 가져와 코드 화면에 띄우는 방식으로 이루어진다.
이러한 코드형 인프라(IaC)를 실현할 수 있는 기능 외에도 잘못된 보안 설정 등의 문제로 인해 사용자의 개인정보 유출과 같은 문제 발생을 방지하고자 클라우드 인프라의 구성 및 배포 과정에서 보안 취약점을 자동으로 감지하고 이를 해결할 수 있는 보안 진단 기능을 제공한다. 렌더링 된 안전한 코드 옵션과 사용자가 수정한 코드는 보안 및 구성 관리 오픈 소스 도구(Snyk)를 통해 안전성 검사를 함으로써 취약점을 식별하게 된다. 이는 클라우드 리소스의 안전성을 높이고 사용자가 보다 안심하고 인프라를 사용할 수 있도록 한다.
이러한 기능들은 사용자가 클라우드 인프라를 효과적으로 설계, 구현, 관리할 수 있도록 돕는다.
아래 Fig. 2.는 시스템의 메인 인터페이스 및 다이어그램 작성에 따른 코드 생성 예시를 보여준다. 이에 접속한 사용자는 상단 툴바에서 ‘A’와 ‘T’로 표시된 버튼을 확인할 수 있다. ‘A’로 표시된 버튼은 AWS 라이브러리 창을 표시하며, ‘T’로 표시된 버튼은 테라폼 코드 창을 나타낸다. ‘A’ 버튼을 클릭하여 열린 AWS 라이브러리 창에서 사용자가 특정 리소스를 드래그 앤 드랍하여 다이어그램을 작성하면, Fig. 2.와 같이 우측 Terraform 코드 창에서 해당 다이어그램에 맞는 클라우드 인프라를 생성할 수 있는 Terraform 코드가 표시된다. 이때, 사용자가 Excalidraw를 통해 생성한 다이어그램은 각 리소스의 ID와 속성을 Firebase에 저장된 데이터와 매칭하여 Terraform 코드 템플릿으로 변환된다. Firebase에는 리소스 필수 코드와 기본 옵션 등 안전한 IaC 코드 템플릿을 구성하는데 필요한 정보가 저장되어 있어 사용자가 시각적으로 구성한 다이어그램을 IaC 코드로 자동 생성하는 데 기여한다. 렌더링된 코드는 Synk를 이용한 안전성 검사를 수행한 후 웹 서비스의 코드 창에 띄워주어, 사용자에게 안전한 IaC 코드 템플릿을 제공한다.

Fig. 2. TerraSketch System UI
4.2 실행 결과
TerraSketch는 사용자의 시각적 설정을 바탕으로 IaC 코드를 자동으로 생성하는 기능을 제공함으로써, 기존의 수작업 코드 작성 과정에서 발생할 수 있는 반복적인 작업과 인적 오류를 줄일 수 있을 것으로 기대된다. 이러한 특성은 복잡한 인프라 구성에서도 일관성을 유지하게 해주며, 보안 검증 도구와의 실시간 연동을 통해 코드의 보안성을 강화하는 데에도 기여할 수 있다. 따라서 본 연구에서는 TerraSketch가 복잡한 IaC 코드 작성 및 배포 환경에서 유용하게 활용될 수 있음을 이론적으로 제시한다.
TerraSketch의 실제 적용 예를 들기 위해, VPC 인프라 자동화 배포 시나리오를 설계하고 보안 검사를 수행하였다. 이 과정을 통해 TerraSketch에서 생성된 IaC 코드가 Terraform 환경 내에서 성공적으로 배포되는 것을 확인하였다.
다음 Fig. 3.은 사용자가 캔버스에서 설계한 클라우드 인프라 다이어그램을 기반으로 자동 생성된 Terraform 코드 파일 중 resource.tf 코드이다. 코드는 다음과 같은 세부사항을 포함한다.

Fig. 3. Extracted Terraform Code Details
- AWS Key Pair: SSH 접근을 위한 키 페어 설정이 정의되어 있으며, 이는 서버에 안전하게 접근할 수 있도록 한다.
- AWS Instance for Webserver: 공개 서브넷에 위치한 웹 서버 인스턴스 설정이며, t1.micro 인스턴스 유형을 사용하여 비용 효율적이면서 필요한 성능을 제공한다. 초기 설치 스크립트 install.sh를 통해 인스턴스 구성이 자동화된다.
- AWS Instance for Database: 사설 서브넷에 위치하여 외부 인터넷으로부터 분리되어 보안을 강화한 데이터베이스 서버 설정이다. 이는 데이터 보호와 접근 제어를 강화하기 위한 전략으로 사용된다.
위 Fig. 4.는 TerraSketch를 통해 얻어진 Terraform 코드 파일들을 기반으로 IaC 인프라를 배포에 성공한 화면이다. 먼저 terraform plan 명령어를 통해 작성된 terraform 코드 구성 파일을 바탕으로 실제로 어떤 인프라 변경이 이루어질지를 미리 검토한다. 그리고 terraform apply 명령어를 통해 앞선 변경 사항을 실제로 인프라에 적용해 배포하였다.

Fig. 4. Successful Deployment Using Extracted Terraform Code
4.3 보안 검사 결과
다음 이미지들은 TerraSketch를 통해 사용자가 생성한 VPC 자동화 인프라 배포 시나리오에 대한 Terraform 코드를 Snyk에 연동하여 본 결과이다. Fig.5.은 생성된 IaC Terraform 코드의 취약점 탐지 요약 결과를 나타낸 것이고, Fig.6.은 취약점 탐지 결과의 세부 사항 및 개선해야 할 코드 항목이 표시된 이미지이다. 다음 Fig. 6.에서는 암호화하지 않은 Elasticache Replication Group으로 인한 취약점과 EKS 클러스터의 공개 접근 허용으로 인한 취약점을 위험도에 따라 탐지한 것을 보여준다.

Fig. 5. Vulnerability Detection Summary

Fig. 6. Vulnerability Detection Results
또한 결과 코드의 ‘at_rest_encryption_enable d’ 암호화 속성을 ‘true’로 설정하고, ‘vpc_config.public_acces_cidrs’ 서브넷 공개접근 속성을 특정 주소로 바꾸거나 ‘vpc_config.endpoint_public_access’ 공개 접근 속성을 ‘false’로 작성하도록 취약점을 개선하는 코드를 함께 제시한다. 이를 통해 얻어진 IaC 코드에 대한 보안성 검사 및 안전한 배포를 돕는다.
V. IaC 코드의 보안성 확보 시나리오
본 논문은 이전 장에서 IaC 기반 인프라의 자동화 및 보안성을 강화하기 위해 보안 검사 툴을 연동한 IaC 코드 렌더링 도구를 제안하였다. 이때의 IaC 코드 안전성은 클라우드 환경에서의 보안 취약점을 최소화하고 개인정보를 보호하는 데 중요한 역할을 한다. 이에 따라 본 연구에서는 CCE(Common Configuration Enumeration)[11][12], SAST(Static Application Security Testing)를 참고하여 IaC 코드의 안전성을 분석하고자 한다. 특히, 앞서 제안한 Terrasketch의 보안 기능이 실무 환경에서 어떻게 활용될 수 있는지를 구체적으로 보여주는 시나리오를 제시함으로써, 본 연구에서 제안하는 방법론의 실질적인 효과를 이해하도록 도울 수 있다. 따라서 본 장에서는 다음과 같은 네 가지 핵심적인 영역에 대한 보안성 강화를 위한 시나리오[13]를 소개하여 사용자가 클라우드 IaC 환경에서의 보안 위협에 대비할 구체적인 대응 방법을 이해하고 적용하는 것을 목표로 한다.
(암호화 키 관리) 데이터의 기밀성을 위해 IaC 코드에서 암호화 키 관리 설정을 강화해야 한다. 첫째, KMS(Key Management Service)를 통해 키를 생성 및 관리해야 한다. 분리된 의무 원칙에 기반해 KMS 관리자 역할과 암복호화 역할을 동시에 가질 수 없도록 하여 보안 위험을 최소화해야 한다. 또한, IAM 또는 키 정책의 ‘kms’ 값에 와일드카드를 사용하지 않고 최소 권한만 부여해야 한다. 둘째, IaC 구성 파일에 민감한 정보를 하드 코딩하지 않고, Secrets Manager 등 비밀 관리 도구를 IaC 도구와 함께 사용하여 안전하게 관리해야 한다[14]. 아래 Fig.7.은 KMS 키를 생성하고, 이를 사용하여 Secrets Manager에 비밀을 안전하게 저장하는 예시 코드이다.

Fig. 7. Example of Secure Key anagement Configuration Code
(네트워크 보안 설정) IaC 코드 내에서 잘못된 네트워크 설정과 관련된 클라우드 보안 위협은 대부분 승인되지 않은 사용자의 무단 액세스에서 기인하며, 이는 클라우드에 저장된 개인정보의 유출 및 탈취 가능성을 높인다. 이를 방지하기 위해서는 네트워크 범위를 제한하여 사용자에게 정확한 권한을 할당해야 한다. HTTP 사용은 제한되어야 하며, VPC (Virtual Public Cloud) 사용 시 공용 IP의 자동할당 방지가 필요하다. 또한 승인되지 않은 대상에게 데이터가 유출되는 것을 방지하기 위해 CIDR(Classless Inter-Domain Routing) IP 값을 제한해 권한 없는 사용자의 무단 접근을 차단해야 한다. 다음 Table 2.는 클라우드에서의 안전한 네트워크 설정과 관련된 리소스 및 주요 설정에 관한 예시이다.
Table 2. Secure Network Configuration Resource Example

(클라우드 자원 접근통제) 클라우드 리소스에 대한 접근 제어는 개인정보를 포함한 데이터의 무단 접근을 방지하고, 보안을 강화하는 핵심적인 요소이다. 따라서 IaC 코드에서 IAM(Identity and Access Management) 설정을 통해 안전한 클라우드 서비스 환경을 조성해야 한다. 다음 Table 3.은 Terraform을 통해 AWS IAM 정책 작성 시 고려해야 하는 보안 사항이다.
Table 3. Security Considerations When Creating IAM with Terraform

(데이터베이스 저장소 암호화) 데이터베이스 설정 및 저장소 암호화를 포함하여 개인정보의 안전한 저장과 전송을 보장하기 위해 보안 정책을 수립하고 관리하여야 한다. 아래 Table 4.는 안전한 데이터베이스 설정을 위해 고려해야 하는 리소스 및 주요 설정에 대한 예시 사항이다.
Table 4. Secure Database Setup Resource Example

VI. 결론
기존의 수동적인 클라우드 인프라 배포 방식은 인적 오류로 보안 취약점을 야기할 수 있다. 그러나 본 논문은 IaC를 활용해 이러한 문제를 극복하고자 하였다. 본 연구에서는 사용자가 생성한 클라우드 인프라 다이어그램을 Terraform을 기반으로 한 안전한 IaC 코드로 자동 변환하는 도구를 개발하였다. 이를 통해 사용자는 복잡한 코드 입력 및 설정 과정 없이도 안전한 IaC 클라우드 인프라 배포 코드를 얻을 수 있다. 또한, 안전성 검사를 위해 취약점 자동화 검사 툴을 활용해 도출된 IaC 코드의 보안 취약점을 식별하고 이를 개선할 수 있다.
본 연구는 IaC 코드 안전성을 설정함에 있어 클라우드 환경에서 취약한 핵심 보안 설정 및 개인정보보호를 위한 안전성 강화를 목표로 한다. 이를 위해서, 향후 보다 정교한 보안 정책과 다양한 클라우드 환경에서의 IaC 적용 가능성에 대한 추가적인 연구가 필요할 것으로 예상된다.
향후 과제로는 AI 기반 보안 위협 탐지 시스템과의 연계를 검토할 예정이다. 최근 GPT 모델 등대형 언어 모델(LLM)의 발전과 활용이 늘어남에 따라, GPT 모델을 통합해 사용자가 텍스트로 클라우드 인프라 구성을 요청하면 자동으로 다이어그램을 생성해 기술적 지식이 부족한 사용자도 쉽게 설계할 수 있도록 지원할 수 있다. 이에 더해, AI를 활용함으로써 IaC 코드에서 발생하는 보안 위협을 보다 효과적으로 감지하고 실시간으로 대응할 수 있을 것이다. 또한, 현재 Terraform 기반으로 구현된 시스템을 AWS CloudFormation, Azure Resource Manager(ARM), Google Cloud Deployment Manager 등 다양한 IaC 프레임워크로 확장하는 연구가 필요하다. 이를 통해 멀티 클라우드 환경에서도 일관된 인프라 자동화가 가능할 것으로 기대된다. 특히 각 프레임워크별 보안 설정의 차이점을 고려한 통합 관리 방안 연구가 요구된다. 이러한 연구를 기반으로 본 연구는 IaC의 효율성과 보안성을 강화하고, 클라우드 인프라 자동화 수준을 더욱 높일 수 있을 것으로 기대된다.
References
- Gartner, "Worldwide Public Cloud User" https://www.gartner.com/en/newsroom/press-releases/2024-05-20-gartner-forecasts-worldwide-public-cloud-end user-spending-to-surpass-675-billion-in-2024, May. 2024.
- Justin Garrison and Kris Nova. "Cloud Native Infrastructure: Patterns for Scalable Infrastructure and Applications in a Dynamic Environment," O'Reilly Media, pp. 1-240, Nov. 2017.
- A. Ghosh, S. Srivastava and P. Supraja, "Streamlining Multi-Cloud Infrastructure Orchestration: Leveraging Terraform as a Battle-Tested Solution," 2024 International Conference on Cognitive Robotics and Intelligent Systems, 2024, pp. 911-915, Jan. 2024.
- HashiCorp, "Terraform AWS Provider Documentation" https://registry.terraform.io/providers/hashicorp/aws/5.21.0/docs, May 2024.
- A. Rahman, E. Farhana, C. Parnin, and L. Williams, "Gang of Eight: A defect taxonomy for infrastructure as code scripts," 2020 IEEE/ACM 42nd International Conference on Software Engineering, pp. 752-764, July 2020.
- Cloudcraft, "Cloudcraft; Create cloud architecture diagrams" https://www.cloudcraft.co, Sep. 2024.
- Lucidchart, "Lucidchart; Online diagram software&visual solution" https://www.lucidchart.com/pages, Sep. 2024.
- Structurizr, "Structurizr; Software architecture diagrams as code", https://structurizr.com, Sep. 2024.
- A. Rahman, F. L. Barsha and P. Morrison, "Shhh!: 12 Practices for Secret Management in Infrastructure as Code," IEEE Secure Development Conference, pp. 56-62, Oct. 2021.
- H. Andrew, D. Aioune, K. Jacques and B. Tegawendé, "Security Vulnerabilities in Infrastructure as Code: What, How Many, and Who?," Research Square, Nov. 2023.
- KISA, "Cloud Vulnerability Check Guide - Security Settings(CCE)," Korea Internet & Security Agency, pp. 510, Dec. 2020.
- KICS, "All Queries" https://docs.kics.io/latest/queries/all-queries, Nov. 2023.
- Chiari, M. De Pascalis, and M.Pradella, "Static Analysis of Infrastructure as Code: a Survey," IEEE 19th International Conference on Software Architecture Companion, pp. 218-225, Jun. 2022.
- Amazon Web Services, "AWS Prescriptive Guidance: Encryption best practices and features for AWS services" https://docs.aws.amazon.com/prescriptive-guidance/latest/encryption-best-practices, Dec. 2024