AWS Config 구성 항목에 대한 이벤트 데이터 스토어 생성 - AWS CloudTrail

AWS Config 구성 항목에 대한 이벤트 데이터 스토어 생성

AWS Config 구성 항목을 포함하는 이벤트 데이터 스토어를 생성하고 이벤트 데이터 스토어를 사용하여 프로덕션 환경의 규정을 준수하지 않는 변경 사항을 조사할 수 있습니다. 이벤트 데이터 스토어를 사용하면 규정을 준수하지 않는 규칙을 변경과 관련된 사용자 및 리소스와 연결할 수 있습니다. 구성 항목은 계정에 있는 지원되는 AWS 리소스의 속성에 대한 특정 시점 보기를 나타냅니다. AWS Config는 기록 중인 리소스 유형의 변경을 감지할 때마다 구성 항목을 생성합니다. 또한 AWS Config는 구성 스냅샷을 캡처할 때 구성 항목을 생성합니다.

AWS Config 및 CloudTrail Lake를 모두 사용하여 구성 항목에 대해 쿼리를 실행할 수 있습니다. AWS Config를 사용하여 하나의 AWS 계정 및 AWS 리전 또는 여러 계정 및 리전의 구성 속성에 따라 AWS 리소스의 현재 구성 상태를 쿼리할 수 있습니다. 반대로 CloudTrail Lake를 사용하면 CloudTrail 이벤트, 구성 항목, 규칙 평가와 같은 다양한 데이터 소스에서 쿼리할 수 있습니다. CloudTrail Lake 쿼리는 리소스 구성 및 규정 준수 기록을 비롯한 모든 AWS Config 구성 항목을 다룹니다.

구성 항목에 대한 이벤트 데이터 스토어를 생성해도 기존 AWS Config 고급 쿼리나 구성된AWS Config 집계자에는 영향을 미치지 않습니다. AWS Config를 사용하여 계속 고급 쿼리를 실행할 수 있으며 AWS Config는 S3 버킷에 계속 기록 파일을 전송합니다.

제한 사항

구성 항목에 대한 이벤트 데이터 스토어에는 다음과 같은 제한 사항이 적용됩니다.

  • 사용자 지정 구성 항목은 지원되지 않음

  • 고급 이벤트 선택기를 사용한 이벤트 필터링은 지원되지 않음

사전 조건

이벤트 데이터 스토어를 생성하기 전에 모든 계정과 지역에 대한 AWS Config 기록을 설정하세요. AWS Systems Manager의 기능인 Quick Setup(빠른 설정)을 사용하면 AWS Config로 구동되는 구성 레코더를 빠르게 생성할 수 있습니다.

참고

AWS Config가 구성 기록을 시작하면 서비스 이용 요금이 청구됩니다. 요금에 대한 자세한 내용은 AWS Config 요금을 참조하세요. 구성 레코더 관리에 대한 자세한 내용은 AWS Config 개발자 안내서Managing the Configuration Recorder(구성 레코더 관리)를 참조하세요.

또한 다음 작업은 수행하는 것이 좋지만 이벤트 데이터 스토어를 생성하는 데 필요하지는 않습니다.

  • 요청 시 구성 스냅샷 및 구성 기록을 수신하도록 Amazon S3 버킷을 설정합니다. 스냅샷에 대한 자세한 내용은 AWS Config 개발자 안내서Managing the Delivery Channel(전송 채널 관리) 및 Delivering Configuration Snapshot to an Amazon S3 Bucket(Amazon S3 버킷에 구성 스냅샷 전달)을 참조하세요.

  • AWS Config가 기록한 리소스 유형의 준수 정보를 평가하는 데 사용하도록 할 규칙 지정 AWS Config에 대한 CloudTrail Lake 샘플 쿼리 중 일부는 AWS 리소스의 규정 준수 상태를 평가하기 위한 AWS Config Rules이 필요합니다. AWS Config Rules에 대한 자세한 내용은 AWS Config 개발자 안내서의 AWS Config Rules로 리소스 평가를 참조하세요.

구성 항목에 대한 이벤트 데이터 스토어를 생성하려면

  1. AWS Management Console에 로그인하여 https://console.aws.amazon.com/cloudtrail/에서 CloudTrail 콘솔을 엽니다.

  2. CloudTrail 콘솔의 왼쪽 탐색 창에서 Lake를 선택합니다.

  3. Lake 페이지에서 Event data stores(이벤트 데이터 스토어) 탭을 선택합니다.

  4. 이벤트 데이터 스토어 생성(Create event data store)을 선택합니다.

  5. 이벤트 데이터 스토어 구성(Configure event data store) 페이지의 일반 세부 정보(General details)에서 이벤트 데이터 스토어의 이름을 입력합니다. 이름은 필수 항목입니다.

  6. 이벤트 데이터 스토어의 보존 기간을 일 단위로 지정합니다. 유효한 값은 7~2557(7년) 사이의 정수입니다. 이벤트 데이터 스토어는 지정된 일수 동안 구성 항목을 보존합니다. 기본적으로 이벤트 데이터는 2557일 동안 보존됩니다.

  7. (선택 사항) AWS Key Management Service를 사용하여 암호화를 활성화하려면 Use my own AWS KMS key(자체 AWS KMS key 사용)를 선택합니다. New(신규)를 선택하여 AWS KMS key를 생성하거나 Existing(기존)을 선택하여 기존 KMS 키를 사용합니다. Enter KMS alias(KMS 별칭 입력)에 alias/MyAliasName 형식으로 별칭을 지정합니다. 자체 KMS 키를 사용하려면 CloudTrail 로그를 암호화하고 복호화할 수 있도록 KMS 키 정책을 편집해야 합니다. 자세한 내용은 CloudTrail에 대한 AWS KMS 키 정책 구성 섹션을 참조하세요. CloudTrail은 AWS KMS 다중 리전 키도 지원합니다. 다중 리전 키에 대한 자세한 내용은 AWS Key Management Service 개발자 가이드다중 리전 키 사용 단원을 참조하세요.

    자체 KMS 키를 사용하면 암호화 및 복호화에 대한 AWS KMS 비용이 발생합니다. KMS 키와 이벤트 데이터 스토어를 연결한 후에는 KMS 키를 제거하거나 변경할 수 없습니다.

    참고

    조직 이벤트 데이터 스토어에 대해 AWS Key Management Service 암호화를 활성화하려면 관리 계정에 기존 KMS 키를 사용해야 합니다.

  8. (선택 사항) Tags(태그) 섹션에 최대 50개의 태그 키 쌍을 추가하여 이벤트 데이터 스토어에 대한 액세스를 식별, 정렬 및 제어할 수 있습니다. IAM 정책을 사용하여 태그를 기반으로 이벤트 데이터 스토어에 대한 액세스 권한을 부여하는 방법에 대한 자세한 내용은 예제: 태그를 기반으로 이벤트 데이터 스토어를 생성 또는 삭제하기 위한 액세스 거부 단원을 참조하세요. AWS의 태그 사용 방법에 대한 자세한 내용은 AWS 일반 참조AWS 리소스 태그 지정을 참조하세요.

  9. 다음(Next)을 선택합니다.

  10. Choose events(이벤트 선택) 페이지에서 Configuration items(구성 항목)를 선택합니다.

  11. CloudTrail은 사용자가 생성한 리전에 이벤트 데이터 스토어 리소스를 저장하지만 기본적으로 데이터 스토어에서 수집한 구성 항목은 기록이 활성화된 계정의 모든 리전에서 가져온 것입니다. 필요에 따라 Include only the current region in my event data store(내 이벤트 데이터 스토어에 현재 리전만 포함)를 선택하여 현재 리전에서 캡처된 구성 항목만 포함할 수 있습니다. 이 옵션을 선택하지 않으면 이벤트 데이터 스토어에 기록이 활성화된 모든 리전의 구성 항목이 포함됩니다.

  12. 이벤트 데이터 스토어에서 AWS Organizations 조직 내 모든 계정의 구성 항목을 수집하도록 하려면 Enable for all accounts in my organization(조직의 모든 계정에 대해 활성화)을 선택합니다. 조직의 구성 항목을 수집하는 이벤트 데이터 스토어를 생성하려면 조직의 관리 계정이나 위임된 관리자 계정에 로그인해야 합니다.

  13. Next(다음)를 선택하여 선택 사항을 검토합니다.

  14. 검토 및 생성(Review and create) 페이지에서 선택 사항을 검토합니다. 편집(Edit)을 선택하여 단원을 변경합니다. 이벤트 데이터 스토어를 생성할 준비가 되었으면 이벤트 데이터 스토어 생성(Create event data store)을 선택합니다.

  15. 새 이벤트 데이터 스토어는 Lake 페이지의 이벤트 데이터 스토어(Event data stores) 테이블에 표시됩니다.

    이 시점부터 이벤트 데이터 스토어는 구성 항목을 캡처합니다. 이벤트 데이터 스토어를 생성하기 전에 발생한 구성 항목은 이벤트 데이터 스토어에 존재하지 않습니다.

샘플 쿼리

이제 새 이벤트 데이터 스토어에 대한 쿼리를 실행할 수 있습니다. CloudTrail 콘솔의 Sample queries(샘플 쿼리) 탭에서는 시작하기 위한 예제 쿼리를 제공합니다. 다음은 구성 항목 이벤트 데이터 스토어에 대해 실행할 수 있는 몇 가지 샘플 쿼리입니다.

설명 Query
구성 항목 이벤트 데이터 스토어를 CloudTrail 이벤트 데이터 스토어와 조인하여 규정을 준수하지 않는 상태를 초래한 작업을 수행한 사용자를 찾습니다.
SELECT element_at(config1.eventData.configuration, 'targetResourceId') as targetResourceId, element_at(config1.eventData.configuration, 'complianceType') as complianceType, config2.eventData.resourceType, cloudtrail.userIdentity FROM config_event_data_store_ID as config1 JOIN config_event_data_store_ID as config2 on element_at(config1.eventData.configuration, 'targetResourceId') = config2.eventData.resourceId JOIN cloudtrail_event_data_store_ID as cloudtrail on config2.eventData.arn = element_at(cloudtrail.resources, 1).arn WHERE element_at(config1.eventData.configuration, 'configRuleList') is not null AND element_at(config1.eventData.configuration, 'complianceType') = 'NON_COMPLIANT' AND cloudtrail.eventTime > '2022-11-14 00:00:00' AND config2.eventData.resourceType = 'AWS::DynamoDB::Table'
모든 AWS Config 규칙을 찾고 지난 하루 동안 생성된 구성 항목에서 규정 준수 상태를 반환합니다.
SELECT eventData.configuration, eventData.accountId, eventData.awsRegion, eventData.resourceName, eventData.resourceCreationTime, element_at(eventData.configuration,'complianceType') AS complianceType, element_at(eventData.configuration, 'configRuleList') AS configRuleList, element_at(eventData.configuration, 'resourceId') AS resourceId, element_at(eventData.configuration, 'resourceType') AS resourceType FROM config_event_data_store_ID WHERE eventData.resourceType = 'AWS::Config::ResourceCompliance' AND eventTime > '2022-11-22 00:00:00' ORDER BY eventData.resourceCreationTime DESC limit 10
리소스 유형, 계정 ID, 리전별로 그룹화된 총 AWS Config 리소스 수를 찾습니다.
SELECT eventData.resourceType, eventData.awsRegion, eventData.accountId, COUNT (*) AS resourceCount FROM config_event_data_store_ID WHERE eventTime > '2022-11-22 00:00:00' GROUP BY eventData.resourceType, eventData.awsRegion, eventData.accountId
특정 날짜에 생성된 모든 AWS Config 구성 항목의 리소스 생성 시간을 찾습니다.
SELECT eventData.configuration, eventData.accountId, eventData.awsRegion, eventData.resourceId, eventData.resourceName, eventData.resourceType, eventData.availabilityZone, eventData.resourceCreationTime FROM config_event_data_store_ID WHERE eventTime > '2022-11-16 00:00:00' AND eventTime < '2022-11-17 00:00:00' ORDER BY eventData.resourceCreationTime DESC limit 10;

쿼리 생성 및 편집에 대한 자세한 내용은 쿼리 생성 또는 편집을 참조하세요.