AWS Config이란?

AWS Config는 AWS 리소스의 구성 변경을 추적하고 규정 준수를 지원하여 보안을 강화합니다.

AWS Config이란?

개요

여러 계정을 제어하기 위해 SCP를 테스트하고 있었습니다.

하지만 특정 서비스 리소스 개수 제한같은 동적인 규칙은 적용할 수 없어 다른 방식을 고민하게 되었고 Config을 통해 규칙을 구성할 수 있다는 것을 확인하였습니다.

따라서 현재 문서에서는 config이 무엇인지와 간단하게 테스트 기록을 작성하였습니다.

AWS Config 개요

AWS Config는 AWS 리소스의 구성을 지속적으로 모니터링하고 기록하는 서비스입니다. 이 서비스는 AWS 환경 내 리소스 간의 관계, 구성 변경 내역, 그리고 이러한 변경이 규정 준수 규칙에 어떻게 영향을 미치는지 파악할 수 있게 해줍니다.

AWS Config란

AWS Config는 AWS 환경 내에서 운영되는 리소스들의 구성 상태를 심층적으로 파악하고, 이러한 구성 상태를 지속적으로 감사하며, 특정 시점의 구성을 평가할 수 있도록 설계된 서비스입니다 . 이는 단순히 AWS 인프라 리소스뿐만 아니라, Amazon Elastic Compute Cloud (EC2) 인스턴스 내에 설치된 소프트웨어, 더 나아가 온프레미스 환경에서 운영되는 가상 머신(VM) 또는 물리적 서버의 구성 변경 사항까지 포괄적으로 기록하는 기능을 제공합니다 . 기록되는 구성 정보는 운영 체제 업데이트 내역, 네트워크 설정, 그리고 설치된 애플리케이션 목록 등을 포함하여 시스템의 전반적인 상태를 상세하게 보여줍니다 .

AWS Config는 설정된 목표 구성을 기준으로 기록된 리소스 구성을 자동으로 평가하는 기능을 제공하여, 사용자가 클라우드 환경의 규정 준수 상태와 보안 상태를 효과적으로 유지할 수 있도록 지원합니다 . 궁극적으로, AWS Config는 AWS 계정 내 모든 AWS 리소스의 구성에 대한 상세하고 포괄적인 관점을 제공하는 것을 목표로 합니다.

AWS Config 목적과 기능

1. 구성 변경 추적

AWS Config의 핵심 기능 중 하나는 AWS 환경 내 리소스의 구성 변경 사항을 상세하게 기록하여 구성 이력을 제공하는 것입니다 . 사용자는 AWS Management Console, API 또는 명령줄 인터페이스(CLI)를 통해 과거 특정 시점의 리소스 구성 정보를 손쉽게 확인할 수 있습니다 . 또한, 구성 기록 파일은 사용자가 지정한 Amazon S3 버킷으로 자동으로 전송되도록 설정할 수 있어, 장기적인 데이터 보관 및 분석에 용이합니다 .

  • 시간의 흐름에 따른 리소스 변경 사항을 명확하게 파악
  • 특정 시점의 구성 상태를 신속하게 파악하여 시스템 다운타임을 최소화

2. 규정 준수 감사

내부 정책 및 모범 사례를 준수하는지 확인하기 위해 감사가 자주 필요한 데이터를 작업할 수 있습니다. 보안 및 규정 준수를 입증하려면 리소스의 기록 구성에 액세스해야 합니다.

이를 자동으로 구성할 수 있도록 AWS 리소스의 구성 설정을 평가하는 데, 사용될 수 있는 것이 AWS Config 규칙입니다 . 이러한 규칙은 특정 조건을 정의하며, AWS Config는 리소스가 해당 조건을 위반하는 경우 이를 비준수 상태로 표시하고 사용자에게 알림을 전송합니다 .

AWS Lambda 함수를 활용하여 이러한 사전 구축된 규칙을 자신의 특정 요구 사항에 맞게 사용자 지정하거나, 완전히 새로운 사용자 지정 규칙을 생성할 수도 있으며 규정을 준수할 수 있도록 제어할 수 있습니다.

생성된 규칙들은 개별적으로 관리할 수도 있지만, Conformance Pack이라는 기능을 통해 여러 개의 규칙을 하나의 논리적인 단위로 묶어 간편하게 배포하고 관리할 수 있습니다 . Conformance Pack은 AWS Config 규칙뿐만 아니라, 비준수 상태가 발견되었을 때 자동으로 실행될 수 있는 수정 조치까지 포함할 수 있어, 규정 준수 관리를 더욱 효율적으로 수행할 수 있도록 돕습니다

3. 보안 분석

AWS Config 를 사용하여가 기록 중인 언제든지 사용자, 그룹 또는 역할에 할당된 IAM 정책을 볼 수 AWS Config 있습니다. 이 정보를 통해 특정 시간에 사용자에 속한 권한을 확인할 수 있습니다.

AWS Config는 다중 계정 및 다중 리전 환경에서의 데이터 집계 기능을 통해, 엔터프라이즈 전체의 규정 준수 상태를 중앙 집중식으로 확인할 수 있도록 지원하며, 규정을 준수하지 않는 계정을 신속하게 식별할 수 있도록 합니다.

또한, 고급 쿼리 기능을 통해 사용자는 특정 구성 속성을 기반으로 AWS 리소스의 현재 구성 상태를 검색할 수 있습니다 . 예를 들어, 퍼블릭 액세스가 허용된 모든 S3 버킷이나 특정 보안 패치가 적용되지 않은 EC2 인스턴스를 식별하는 등의 보안 관련 조사를 효율적으로 수행할 수 있습니다 . AWS Config는 AWS Security Hub 및 AWS Audit Manager와 같은 다른 AWS 보안 서비스와 긴밀하게 통합되어, 보다 포괄적인 보안 분석 체계를 구축할 수 있도록 지원합니다 . 더불어, AWS CloudTrail과의 통합을 통해 구성 변경 사항을 계정 내 특정 이벤트와 연결하여, 보안 관련 변경 사항의 출처를 추적하고 감사하는 데 활용할 수 있습니다

Config의 목적, 기능을 요약 정리하면 다음과 같습니다

  • AWS Config는 규칙을 세워 규정 준수를 감시하는 것으로 동작을 미리 예방하거나 차단할 수 없습니다.
    • AWS가 제공하는 관리형 규칙 혹은 커스텀 규칙(람다함수로 정의)이 있습니다.
  • 구성 관리, 모니터링, 보안 및 변경 사항 추적이 가능합니다. 그 예시는 다음과 같습니다.
    • Config Resource
      • 보안그룹의 규정 준수 상태확인 및 리소스 구성 변경을 확인 가능합니다.
      • AWS CloudTrail과 통합해 API 호출도 볼 수 있습니다.
Notion Image
Notion Image
Notion Image
  • Remediations(수정)
  • Notifications(알림)
    • EventBridge를 사용해 리소스가 규정을 미준수했을 때마다 알람을 보낼 수 있습니다.

구성 변경과 모든 리소스의 준수 알림을 Config에서 SNS로 보낼 수 있으며 모든 이벤트가 Config을 거치지만 SNS 필터링을 통해 특정 토픽만 전송할 수 있습니다.

Notion Image

보안그룹을 모니터링하다가 규정 미준수 상태가 되면 EventBridge에서 이벤트를 트리거해 원하는 리소스에 넘길 수 있습니다.

Notion Image

Lambda를 실행하는 문서를 생성하여 원하는 작업을 수행하고 재시도 할 수 있습니다.

Notion Image

SSM은 주로 EC2 인스턴스 환경에서 실행, Lambda는 독립적인 서버리스 환경에서 실행됩니다. SSM은 재시도 메커니즘이 필요할 때 AWS 권장 사례 및 코드 유지 관리 부담을 줄이고 싶을 때 사용하며 Lambda는 코드를 통해 더 많은 제어를 구성하기 위해 사용합니다.

AWS Config 커스텀 규칙이란?

AWS Config 사용자 정의 규칙은 사용자가 기존 규칙과 상관없이 처음부터 만드는 규칙입니다.

이러한 AWS Config 사용자 정의 규칙을 만드는 방법에는 두 가지가 있습니다. Lambda 함수( AWS Lambda 개발자 가이드)와 Guard(Guard GitHub 리포지토리 참조), 정책을 YAML같은 코드로 표현하는 방법입니다.

Notion Image
  • Guard를 사용하는 경우 Java, Python을 따로 개발할 필요없이 규칙을 생성할 수 있습니다. 또한 Console에서 규칙을 작성할 수 있습니다.
  • 사용자 지정 Lambda 규칙은 Java 또는 Python을 사용하여 AWS Config 사용자 지정 규칙에 대한 Lambda 함수를 만드는 옵션을 제공합니다. Lambda 함수 는 AWS Lambda에 업로드하는 사용자 지정 코드이며 이벤트 소스에서 게시한 이벤트에 의해 호출됩니다. Lambda 함수가 AWS Config 규칙과 연결된 경우 규칙이 시작될 때 AWS Config가 이를 호출합니다. 그런 다음 Lambda 함수는 AWS Config에서 보낸 구성 정보를 평가하고 평가 결과를 반환합니다. Lambda 함수에 대한 자세한 내용은 AWS Lambda Developer Guide 의 함수 및 이벤트 소스를 참조하세요 .

이를 통해 AWS에서 규정을 준수하지 않는 리소스를 탐지할 수 있고, 해당 리소스를 탐지하며 수정 및 알람을 구성할 수 있습니다. 이후 문서에서는 해당 Config을 사용하여 규칙을 설정하는 방법들을 알아보도록 하겠습니다.