AWS Community Day Hong Kong 2025 Recap

Terraform을 활용한 AWS 컴플라이언스

Recap Series

녹화 영상

https://youtu.be/l7YgSdK-ypw

오픈 소스 프로젝트와 단순화를 향한 열정

현재 프로젝트: compliance.tf

  • Terraform을 통한 컴플라이언스 구현을 단순화하는 것을 목표로 한다.
  • 컴플라이언스는 매력적인 분야지만, 현재 Terraform으로 구현하기는 어렵다.
  • 사람들이 공통 서비스와 패턴을 직접 구현하지 않아도 되도록 만들었다.
  • 50개가 넘는 AWS 서비스의 구성을 지원한다.

일과 재미에 대한 고찰

  • 미래를 만들어 간다는 이전 세대의 설레는 사고방식과, 컴플라이언스 프레임워크 및 자동화에 초점을 맞추는 현재의 상황을 비교했다.
  • 컴플라이언스 업무가 직접 몸을 움직이는 야외 활동보다 지루하게 느껴질 수 있음을 인정했다.
  • 흥미로운 작업과 지루한 작업을 명확히 구분할 필요가 있다고 강조했다.

컴플라이언스는 마법이 아니다

  • 공급업체와 서비스 제공업체는 흔히 컴플라이언스를 필수적이고 비용이 많이 들며 마법 같은 것으로 묘사한다.
  • 실제로 컴플라이언스는 대개 기업이 충족해야 하는 또 하나의 비즈니스 요구 사항일 뿐이다.
  • 컴플라이언스를 준수한다는 것은 보안과 고객의 신뢰를 진지하게 받아들인다는 의미다.

공동 책임 원칙

  • AWS는 기반 인프라를 책임진다.
  • 고객은 클라우드에 올리는 모든 것을 책임진다.

컴플라이언스 프레임워크

  • 다양한 프레임워크가 존재하며, 그중 일부는 ISO 27001에 부합한다.
  • 홍콩과 중국 본토 같은 지역에는 고유한 제한 사항과 규칙이 있다.
  • 대부분의 프레임워크는 암호화, 액세스 제어, 로그인 메커니즘 등 비슷한 영역을 다룬다.
  • 하나의 프레임워크를 구현하면 다른 프레임워크를 구현하는 작업도 대개 50% 이상 완료한 셈이다.

일반적인 컴플라이언스 절차

  • 충족해야 할 컴플라이언스 요구 사항을 파악한다.
  • AWS 서비스나 타사 서비스를 사용해 현재의 컴플라이언스 상태를 평가한다.
  • 필요한 작업량, 이미 완료된 작업, 남은 작업을 파악한다.

컴플라이언스를 위한 도구와 서비스

  • Control Tower: 컴플라이언스 관리에 필수적이다.
  • Organizations 및 Service Control Policies: 경계와 권한을 제어하는 데 사용한다.
  • CloudFormation Guard: Terraform 코드와 함께 사용할 수 있는 AWS의 오픈 소스 프로젝트다.
  • CloudTrail 및 Config: 구성 변경과 API 호출을 탐지하는 데 유용하다.
  • AWS Audit Manager: KMS로 암호화된 S3 버킷에 인프라 변화의 증거를 수집하는 서비스다.

코드형 인프라 도구

  • 현재 필요한 제어를 구현하는 주요 도구로는 Checkov, Trivy, Terrascan 등이 있다.

도구 사용에 관한 청중과의 상호작용

  • 대부분의 사람은 Checkov와 Trivy를 사용한다.
  • Checkov는 코드형 인프라(IaC)의 보안 구성 오류와 컴플라이언스 문제를 배포 전에 검사하는 오픈 소스 정적 코드 분석 도구다.
  • Trivy는 취약점, IaC, SBOM 탐색, 클라우드 스캔, Kubernetes 보안을 위한 가장 널리 사용되는 오픈 소스 보안 스캐너다.
  • 놀랍게도 사용자들은 Terrascan을 거의 언급하지 않았다.
  • Terrascan은 Tenable이 지원하는 코드형 인프라(IaC)용 오픈 소스 보안 스캐너다.

문제 해결 단계

  • 컴플라이언스 도구를 실행한 후에는 구성 파일을 수정하기 위한 문제 해결 단계가 필요하다.
  • 실패 메시지를 이해하고, 원인이 된 모듈이나 매개변수를 찾아 수정한다.
  • 또는 compliance.tf에서 제공하는 컴플라이언스 대응 Terraform 모듈을 사용한다.

DevSecOps 파이프라인

  • 개발 장비나 CI/CD 파이프라인에서 컴플라이언스 검사를 실행한다.
  • 미준수 문제를 수동으로 수정하고 코드를 다시 푸시한 뒤, 클라우드 리소스에 수정 사항이 반영되었는지 확인한다.
  • Checkov, Prowler, Steampipe 같은 도구를 사용해 종합적인 컴플라이언스 검사를 수행한다.

권장 도구

  • Checkov: 대부분의 상황에 적합하며, 첫 번째 검사 도구로 유용하다.
  • Prowler: 환경에 실제로 존재하는 리소스의 구성 오류를 검사하는 오픈 소스 도구다.
  • Steampipe: 미리 정의한 쿼리와 사용자 지정 쿼리를 이용해 SQL로 클라우드 API를 조회할 수 있다.

드리프트 방지

  • AWS 환경에 대한 콘솔 액세스를 제한해 드리프트를 방지하는 것이 중요하다고 강조했다.

드리프트와 ClickOps

  • ClickOps란 AWS Console 같은 사용자 인터페이스를 사용해 클라우드 리소스를 수동으로 관리하는 방식을 뜻한다.
  • 사람들은 AWS 계정에 직접 액세스하기를 원하는 경우가 많으며, 이는 ClickOps로 이어져 드리프트를 발생시킨다.
  • Config Rules 같은 서비스를 지속적인 검증과 문제 해결에 사용할 수 있지만, 자동 문제 해결 기능은 구현하기 까다로울 수 있다.

자동 문제 해결

  • CloudTrail, EventBridge, AWS Systems Manager(SSM) Automation Documents를 연결하면 자동으로 문제를 해결할 수 있다.
  • Terraform 모듈, 문제 해결 방법, 자동으로 업데이트되는 문서는 docs.compliance.tf에서 확인할 수 있다.

Terraform Active Directory(AD) 모듈과 컴플라이언스 요구 사항

  • Terraform 레지스트리에서 Terraform Active Directory(AD) 모듈을 호출하는 방법을 시연했다.
  • 컴플라이언스 요구 사항에 따라 S3 버킷을 생성하고 로그인을 활성화하는 방법을 보여 주었다.
  • 컴플라이언스 정보를 Terraform 코드로 변환하는 과정을 설명했으며, 모듈을 사용하기 때문에 이 과정이 복잡할 수 있다.

문서와 Terraform 코드 조각

  • 구체적인 검사 항목과 유효한 Terraform 코드 조각은 docs.compliance.tf를 참고하도록 안내했다.
  • 로그인 섹션을 지정해 SOC 2나 PCI DSS 같은 다양한 프레임워크를 적용하는 예를 제시했다.

추가 정보: Checkov, Prowler, Steampipe

  • Checkov는 코드형 인프라(IaC)를 위한 정적 분석 도구다. 개발 수명 주기 중에 검사를 앞당기는 방식으로 Terraform, CloudFormation, Kubernetes 매니페스트, Dockerfile 같은 구성 파일을 스캔하여 배포 전에 구성 오류와 컴플라이언스 위반을 찾아낸다.
  • Prowler는 실제 클라우드 환경(AWS, Azure, Google Cloud, Kubernetes)을 대상으로 보안, 컴플라이언스, 모범 사례를 검사하는 명령줄 도구다. 주로 클라우드 보안 태세 관리(CSPM) 도구로 사용되며 CIS Benchmarks, PCI-DSS, ISO 27001 같은 업계 표준에 매핑된 상세 보고서를 생성한다.
  • Steampipe는 Postgres Foreign Data Wrapper를 사용해 클라우드 공급자, API, 인프라 같은 외부 시스템의 데이터를 관계형 데이터베이스 형태로 제공하는 독특한 도구로, 사용자는 SQL을 이용해 클라우드 리소스를 조회할 수 있다. 이 접근 방식은 복잡한 임시 보안 및 컴플라이언스 검사와 SQL 쿼리를 활용한 사용자 지정 대시보드 생성을 지원하며, 순차적으로 검사하는 Prowler와는 다른 평가 방식을 제공한다.

추가 정보 2: CloudTrail, EventBridge 및 SSM Automation Documents

소개

  • AWS CloudTrail, EventBridge, SSM Automation Documents는 서로 다른 서비스지만 AWS 생태계 안에서 자주 통합되며, 클라우드 운영을 관리하고 자동화하는 데 사용된다.

AWS CloudTrail

  • 목적: CloudTrail은 AWS 계정에서 사용자, 역할 또는 AWS 서비스가 수행한 작업 기록을 제공하는 AWS 서비스다. AWS Management Console, AWS SDK, 명령줄 도구 및 기타 AWS 서비스를 통해 이루어진 API 호출을 기록한다.
  • 기능: 호출한 주체, 호출 시각, 호출이 이루어진 IP 주소, 영향을 받은 리소스 등의 세부 정보와 이벤트 기록을 제공하여 보안 분석, 리소스 변경 추적, 문제 해결을 지원한다.
  • 사용 사례: 보안 감사, 컴플라이언스, 운영 문제 해결, 무단 활동 식별.

Amazon EventBridge

  • 목적: EventBridge는 이벤트를 이용해 애플리케이션을 손쉽게 연결할 수 있게 해 주는 서버리스 이벤트 버스 서비스다. 다양한 소스의 이벤트를 대상으로 라우팅하여 확장 가능한 이벤트 기반 애플리케이션을 구축할 수 있다.
  • 기능: CloudTrail 같은 AWS 서비스, 사용자 지정 애플리케이션, SaaS 파트너로부터 이벤트를 수신할 수 있다. 그런 다음 규칙을 정의하여 이벤트를 필터링하고 AWS Lambda 함수, Amazon SNS 주제, Amazon SQS 대기열, AWS Systems Manager Automation 등 다양한 대상으로 라우팅할 수 있다.
  • 사용 사례: 실시간 이벤트 처리, 느슨하게 결합된 마이크로서비스 구축, 타사 애플리케이션 통합, 이벤트 기반 자동화 워크플로 시작.

AWS Systems Manager (SSM) Automation Documents

  • 목적: SSM Automation Documents는 AWS 리소스 전반의 일반적인 운영 작업을 자동화하기 위한 일련의 단계를 정의하는 사전 정의 또는 사용자 지정 스크립트나 런북이다.
  • 기능: 인스턴스 시작 및 중지, 패치 적용, AMI 생성, 사용자 지정 스크립트 실행 등의 작업에 사용할 수 있다. 이러한 문서는 수동으로 실행하거나 일정에 따라 실행하거나 이벤트를 통해 시작할 수 있다.
  • 사용 사례: 패치 관리, 인스턴스 수명 주기 관리, 컴플라이언스 적용, 자동화된 인시던트 대응.

통합 예시

이러한 서비스를 결합하면 강력한 자동화 워크플로를 만들 수 있다. 예를 들어 보안 그룹에 무단 변경이 발생했음을 나타내는 CloudTrail 이벤트가 EventBridge 규칙을 시작할 수 있다. 그러면 이 규칙이 SSM Automation Document를 호출해 변경을 자동으로 되돌리고, 관리자에게 알리거나, 영향을 받은 리소스를 격리함으로써 보안과 운영 효율성을 높일 수 있다.