개요

GitHub Actions 자동화, 보안 검증 도구인 Prowler, 인프라 관리 도구인 Terraform을 활용하여 ISMS-P 기준에 맞춘 자산 식별 및 보안 자동화 방안을 구현하는 방법을 설명합니다. 이를 통해 AWS 환경에서 인프라를 구축하고 보안을 강화하며, 효과적인 모니터링과 알림 체계를 구축하는 방법을 제시합니다.

 

Terraform을 이용한 인프라 배포

  • Terraform은 코드형 인프라(IaC) 도구로, 인프라 자원의 배포 및 관리 자동화를 통해 일관성 있고 효율적인 클라우드 환경 구축을 가능하게 합니다.

terraform  사용하여 aws 구성
상태파일을 저장하여 리소스 상태 추적

  • S3에 상태 파일을 저장하는 것은 Terraform에서 작업한 인프라의 현재 상태를 추적하고 관리할 수 있도록 보장합니다. 이를 통해 여러 팀원이 동일한 인프라 코드를 작업하더라도 일관성과 데이터 무결성을 유지할 수 있습니다.

GitHub Actions를 활용한 자동화

  • GitHub Actions는 CI/CD(지속적 통합 및 배포)를 가능하게 하는 GitHub의 내장된 자동화 도구입니다. 코드를 푸시하거나 특정 이벤트가 발생할 때 자동으로 워크플로우를 실행할 수 있습니다.

Github Action 을 통한 배포, 검사, 삭제까지 자동화

  • terraform.yml은 Terraform을 사용하여 인프라를 배포하며, prowler-scan.yml은 Prowler를 이용한 검사를 수행
  • infracost.yml과 inframap.yml은 인프라의 구조와 비용을 한 번에 확인할 수 있도록 자동화된 작업을 실행
  • destroy.yml은 인프라 배포가 실패할 경우 자동으로 실행되어 리소스를 정리
  • https://github.com/pdev37/terraform-basic/tree/main
 

GitHub - pdev37/terraform-automation

Contribute to pdev37/terraform-automation development by creating an account on GitHub.

github.com

 

IAM OIDC  설정

  • GitHub Actions에서 OpenID Connect를 사용해 IAM 역할과 연동하면 세션 토큰 없이도 안전하게 인증할 수 있습니다. 
  • GitHub Actions는 만료되지 않는 자격 증명을 사용하여 AWS에 안전하게 인증할 수 있습니다.

S3 Bucket 에 Prowler 보고서 저장 자동화
S3 에 저장된 report

 

 

 

  • S3에 저장된 JSON 파일은 향후 AWS Elastic Search(OpenSearch Service) 및 Security Hub와 같은 AWS 서비스와 연동되어, 보안 이벤트와 데이터를 통합적으로 모니터링하고 분석을 자동화할 수 있습니다.
  • Prowler 보고서 저장할 때 Github Actions에서 ANSI를 지원하지 않아 반드시 --no-color 설정해야 합니다.

terraform  기반 인프라 검사 후 웹페이지 업로드

  • Infracost API key를 다운로드하여 GitHub Actions에 연동하면 데이터 업로드와 PR(Comment) 기능을 통해 조직의 클라우드 비용 관리를 자동화하고 투명성을 높일 수 있습니다. 

S3 tfstate  다운로드 후 인프라 시각화

  • Go 언어와 Graphviz를 설치하여 GitHub Actions에서 Inframap을 구성하고, S3에 저장된 상태 파일을 불러와 시각화 자료를 생성 및 저장합니다

Prowler를 통한 보안 검사

  • Prowler는 AWS 환경의 보안 설정을 점검하고 컴플라이언스를 검사하는 오픈 소스 도구로, 주로 AWS 계정 내의 보안 취약점을 식별하고 CIS, GDPR, ISO 27001, SOC2, ISMS-P 등 다양한 컴플라이언스 기준에 맞춰 검사를 수행합니다

Prowler  검사와 ISMS-P 결과

Infracost를 통한 비용

  • Infracost는 클라우드 인프라의 비용을 예측하고 분석할 수 있는 도구입니다.
  • Terraform 코드의 변경 사항에 따라 예상 비용을 산출하여 개발자와 운영팀이 비용을 미리 확인하고 관리할 수 있게 도와줍니다.

Infracost 가 계산한 월별 Cost와 제안 사항

Inframap을 통한 시각화

  • Inframap은 Terraform 코드를 기반으로 인프라스트럭처의 시각화를 자동으로 생성하는 도구입니다. 
  • 코드에서 리소스와 연결 관계를 분석하여 다이어그램 형태로 나타내어, 인프라의 구조를 직관적으로 이해할 수 있도록 돕습니다.

생성한 아키텍처 시각화

'Cloud' 카테고리의 다른 글

Zero Trust 보안 설계  (1) 2024.11.26
AWS 3-Tier Architecture 설계  (1) 2024.11.13
AWS 기본 아키텍처 설계  (1) 2024.11.13
온프레미스와 클라우드  (2) 2024.11.12
클라우드 보안  (5) 2024.11.12

+ Recent posts