개요
GitHub Actions 자동화, 보안 검증 도구인 Prowler, 인프라 관리 도구인 Terraform을 활용하여 ISMS-P 기준에 맞춘 자산 식별 및 보안 자동화 방안을 구현하는 방법을 설명합니다. 이를 통해 AWS 환경에서 인프라를 구축하고 보안을 강화하며, 효과적인 모니터링과 알림 체계를 구축하는 방법을 제시합니다.
Terraform을 이용한 인프라 배포
- Terraform은 코드형 인프라(IaC) 도구로, 인프라 자원의 배포 및 관리 자동화를 통해 일관성 있고 효율적인 클라우드 환경 구축을 가능하게 합니다.
- S3에 상태 파일을 저장하는 것은 Terraform에서 작업한 인프라의 현재 상태를 추적하고 관리할 수 있도록 보장합니다. 이를 통해 여러 팀원이 동일한 인프라 코드를 작업하더라도 일관성과 데이터 무결성을 유지할 수 있습니다.
GitHub Actions를 활용한 자동화
- GitHub Actions는 CI/CD(지속적 통합 및 배포)를 가능하게 하는 GitHub의 내장된 자동화 도구입니다. 코드를 푸시하거나 특정 이벤트가 발생할 때 자동으로 워크플로우를 실행할 수 있습니다.
- terraform.yml은 Terraform을 사용하여 인프라를 배포하며, prowler-scan.yml은 Prowler를 이용한 검사를 수행
- infracost.yml과 inframap.yml은 인프라의 구조와 비용을 한 번에 확인할 수 있도록 자동화된 작업을 실행
- destroy.yml은 인프라 배포가 실패할 경우 자동으로 실행되어 리소스를 정리
- https://github.com/pdev37/terraform-basic/tree/main
- GitHub Actions에서 OpenID Connect를 사용해 IAM 역할과 연동하면 세션 토큰 없이도 안전하게 인증할 수 있습니다.
- GitHub Actions는 만료되지 않는 자격 증명을 사용하여 AWS에 안전하게 인증할 수 있습니다.
- S3에 저장된 JSON 파일은 향후 AWS Elastic Search(OpenSearch Service) 및 Security Hub와 같은 AWS 서비스와 연동되어, 보안 이벤트와 데이터를 통합적으로 모니터링하고 분석을 자동화할 수 있습니다.
- Prowler 보고서 저장할 때 Github Actions에서 ANSI를 지원하지 않아 반드시 --no-color 설정해야 합니다.
- Infracost API key를 다운로드하여 GitHub Actions에 연동하면 데이터 업로드와 PR(Comment) 기능을 통해 조직의 클라우드 비용 관리를 자동화하고 투명성을 높일 수 있습니다.
- Go 언어와 Graphviz를 설치하여 GitHub Actions에서 Inframap을 구성하고, S3에 저장된 상태 파일을 불러와 시각화 자료를 생성 및 저장합니다
Prowler를 통한 보안 검사
- Prowler는 AWS 환경의 보안 설정을 점검하고 컴플라이언스를 검사하는 오픈 소스 도구로, 주로 AWS 계정 내의 보안 취약점을 식별하고 CIS, GDPR, ISO 27001, SOC2, ISMS-P 등 다양한 컴플라이언스 기준에 맞춰 검사를 수행합니다
Infracost를 통한 비용
- Infracost는 클라우드 인프라의 비용을 예측하고 분석할 수 있는 도구입니다.
- Terraform 코드의 변경 사항에 따라 예상 비용을 산출하여 개발자와 운영팀이 비용을 미리 확인하고 관리할 수 있게 도와줍니다.
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 |