추적에 대한 관리 이벤트 로깅 - AWS CloudTrail

추적에 대한 관리 이벤트 로깅

기본적으로 추적은 모든 관리 이벤트를 로깅하지만 데이터 또는 Insights 이벤트는 포함하지 않습니다. 데이터 또는 인사이트 이벤트에는 추가 요금이 적용됩니다. 자세한 내용은 AWS CloudTrail 요금을 참조하세요.

관리 이벤트

관리 이벤트를 통해 AWS 계정의 리소스에 대해 수행한 관리 작업을 파악할 수 있습니다. 이를 제어 영역 작업이라고도 합니다. 예제 관리 이벤트에는 다음이 포함됩니다.

  • 보안 구성(예: IAM AttachRolePolicy API 작업)

  • 디바이스 등록(예: Amazon EC2 CreateDefaultVpc API 작업)

  • 데이터 라우팅 규칙 구성(예: Amazon EC2 CreateSubnet API 작업)

  • 로깅 설정(예: AWS CloudTrail CreateTrail API 작업)

관리 이벤트에는 귀하의 계정에서 발생한 비 API 이벤트도 포함될 수 있습니다. 예를 들어 한 사용자가 귀하의 계정에 로그인하면 CloudTrail은 ConsoleLogin 이벤트를 로그합니다. 자세한 내용은 CloudTrail에 의해 캡처된 비 API 이벤트 단원을 참조하세요. AWS 서비스에 대해 CloudTrail이 로그하는 지원되는 관리 이벤트 목록은 CloudTrail 지원 서비스 및 통합 단원을 참조하세요.

기본적으로 추적은 관리 이벤트를 로깅하도록 구성되어 있습니다. AWS 서비스에 대해 CloudTrail이 로그하는 지원되는 관리 이벤트 목록은 CloudTrail 지원 서비스 및 통합 단원을 참조하세요.

참고

CloudTrail [이벤트 기록(Event history)] 기능은 관리 이벤트만 지원합니다. 모든 관리 이벤트가 이벤트 기록에서 지원되는 것은 아닙니다. [이벤트 기록(Event history)]에서 AWS KMS 또는 Amazon RDS Data API 이벤트를 제외할 수 없거나, 추적에 적용한 설정은 [이벤트 기록(Event history)]에 적용되지 않습니다. 자세한 내용은 CloudTrail 이벤트 기록에서 이벤트 보기 단원을 참조하세요.

AWS Management Console을 사용하여 관리 이벤트 로깅

  1. CloudTrail 콘솔의 [추적(Trails)] 페이지를 열고 추적 이름을 선택합니다.

  2. [관리 이벤트(Management events)]에서 [편집(Edit)]을 선택합니다.

    • 추적에서 [읽기(Read)] 이벤트, [쓰기(Write)] 이벤트 또는 둘 다를 기록할 것인지 선택합니다.

    • AWS KMS 이벤트 제외(Exclude KMS events)]를 선택하여 추적에서 AWS Key Management Service(AWS KMS) 이벤트를 필터링합니다. 기본 설정은 모든 AWS KMS 이벤트를 포함하는 것입니다.

      AWS KMS 이벤트를 로그하거나 제외하는 옵션은 추적에서 관리 이벤트를 로그하는 경우에만 사용할 수 있습니다. 관리 이벤트를 로그하지 않도록 선택하는 경우 AWS KMS 이벤트가 로그되지 않으며, AWS KMS 이벤트 로깅 설정을 변경할 수 없습니다.

      AWS KMS, Encrypt, Decrypt와 같은 GenerateDataKey 작업은 일반적으로 대량의 이벤트(99% 이상)를 생성합니다. 이러한 작업은 이제 [읽기(Read)] 이벤트로 로그됩니다. Disable, Delete, 및 ScheduleKey와 같은 저용량의 관련 AWS KMS 작업(일반적으로 AWS KMS 이벤트 볼륨의 0.5% 미만을 차지함)은 쓰기(Write) 이벤트로 로그됩니다.

      Encrypt, DecryptGenerateDataKey와 같은 대량의 이벤트를 제외하지만 Disable, DeleteScheduleKey와 같은 관련 이벤트를 계속 로그하려면 쓰기(Write) 관리 이벤트를 로그하도록 선택하고 AWS KMS 이벤트 제외(Exclude KMS events) 확인란의 선택을 취소합니다.

    • [Amazon RDS Data API 이벤트 제외(Exclude Amazon RDS Data API events)]를 선택하여 추적에서 Amazon Relational Database Service Data API 이벤트를 필터링합니다. 기본 설정은 모든 Amazon RDS Data API 이벤트를 포함하는 것입니다. Amazon RDS Data API 이벤트에 대한 자세한 내용은 Amazon RDS for Aurora 사용 설명서에서 AWS CloudTrail을 사용하여 데이터 API 호출 로깅 단원을 참조하세요.

    완료되면 추적 업데이트(Update trail)를 선택합니다.

이벤트 읽기 및 쓰기

관리 이벤트를 로그하도록 추적을 구성할 때 읽기 전용 이벤트만 로그할지, 쓰기 전용 이벤트만 로그할지, 둘 다를 로그할지 여부를 지정할 수 있습니다.

  • 읽기(Read)

    읽기 전용 이벤트에는 리소스는 읽지만 변경되지 않는 API 작업이 포함됩니다. 예를 들어 읽기 전용 이벤트에는 Amazon EC2 DescribeSecurityGroupsDescribeSubnets API 작업이 포함됩니다. 이러한 작업은 Amazon EC2 리소스에 대한 정보만 반환하고 구성을 변경하지 않습니다.

  • 쓰기(Write)

    쓰기 전용 이벤트에는 리소스를 수정하는(또는 수정 가능) API 작업이 포함됩니다. 예를 들어 Amazon EC2 RunInstancesTerminateInstances API 작업은 인스턴스를 수정합니다.

예: 별도의 추적에 대한 읽기 및 쓰기 이벤트 로깅

다음 예에서는 계정에 대한 로그 활동을 별도의 S3 버킷으로 분할하도록 추적을 구성하는 방법을 보여 줍니다. 즉, 한 버킷은 읽기 전용 이벤트를 수신하고 두 번째 버킷은 쓰기 전용 이벤트를 수신합니다.

  1. 추적을 생성하고 read-only-bucket이라는 S3 버킷을 선택하여 로그 파일을 수신합니다. 그런 다음 추적을 업데이트하여 [읽기(Read)] 관리 이벤트를 로그하도록 지정합니다.

  2. 두 번째 추적을 생성하고 write-only-bucket이라는 S3 버킷을 선택하여 로그 파일을 수신합니다. 그런 다음 추적을 업데이트하여 [쓰기(Write)] 관리 이벤트를 로그하도록 지정합니다.

  3. 계정에서 Amazon EC2 DescribeInstancesTerminateInstances API 작업이 발생합니다.

  4. DescribeInstances API 작업은 읽기 전용 이벤트이며 이 이벤트는 첫 번째 추적에 대한 설정과 일치합니다. 추적은 이벤트를 로그하고 read-only-bucket에 전달합니다.

  5. TerminateInstances API 작업은 쓰기 전용 이벤트이며 이 이벤트는 두 번째 추적에 대한 설정과 일치합니다. 추적은 이벤트를 로그하고 write-only-bucket에 전달합니다.

AWS Command Line Interface를 사용하여 이벤트 로깅

AWS CLI을 사용하여 관리 이벤트를 로깅하도록 트레일을 구성할 수 있습니다.

트레일이 관리 이벤트를 로깅하는지 여부를 확인하려면 get-event-selectors 명령을 실행하십시오.

aws cloudtrail get-event-selectors --trail-name TrailName

다음 예는 추적에 대한 기본 설정을 반환합니다. 기본적으로 트레일은 모든 관리 이벤트를 로깅하고, 모든 이벤트 소스에서 이벤트를 로깅하며, 데이터 이벤트는 로깅하지 않습니다.

{ "TrailARN": "arn:aws:cloudtrail:us-east-1:111122223333:trail/TrailName", "AdvancedEventSelectors": [ { "Name": "Management events selector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ] } ] } ] }

관리 이벤트를 로깅하도록 트레일을 구성하려면 put-event-selectors 명령을 실행하십시오. 다음 예제에서는 두 S3 객체에 대한 모든 관리 이벤트를 포함하도록 트레일을 구성하는 방법을 보여 줍니다. 추적 하나당 1~5 개의 이벤트 선택기를 지정할 수 있습니다. 추적 하나당 1~250 개의 데이터 리소스를 지정할 수 있습니다.

참고

이벤트 선택기 개수와 상관없이 S3 데이터 리소스 수는 최대 250개입니다.

aws cloudtrail put-event-selectors --trail-name TrailName --event-selectors '[{ "ReadWriteType": "All", "IncludeManagementEvents":true, "DataResources": [{ "Type": "AWS::S3::Object", "Values": ["arn:aws:s3:::mybucket/prefix", "arn:aws:s3:::mybucket2/prefix2"] }] }]'

다음 예에서는 추적에 대해 구성된 이벤트 선택기를 반환합니다.

{ "TrailARN": "arn:aws:cloudtrail:us-east-1:111122223333:trail/TrailName", "EventSelectors": [ { "ReadWriteType": "All", "IncludeManagementEvents": true, "DataResources": [ { "Type": "AWS::S3::Object", "Values": [ "arn:aws:s3:::mybucket/prefix", "arn:aws:s3:::mybucket2/prefix2", ] } ], "ExcludeManagementEventSources": [] } ] }

트레일 로그에서 AWS Key Management Service(AWS KMS) 이벤트를 제외하려면 put-event-selectors 명령을 실행하고 값이 kms.amazonaws.com인 속성 ExcludeManagementEventSources를 추가합니다. 다음 예에서는 TrailName이라는 추적이 읽기 전용 및 쓰기 전용 관리 이벤트를 포함하되 AWS KMS 이벤트는 제외하도록 이벤트 선택기를 생성합니다. AWS KMS에서는 대량의 이벤트를 생성할 수 있으므로 이 예제의 사용자는 이벤트를 제한하여 트레일 비용을 관리할 수 있습니다.

aws cloudtrail put-event-selectors --trail-name TrailName --event-selectors '[{"ReadWriteType": "All","ExcludeManagementEventSources": ["kms.amazonaws.com"],"IncludeManagementEvents": true}]'

다음 예제에서는 추적에 대해 구성된 이벤트 선택기를 반환합니다.

{ "TrailARN": "arn:aws:cloudtrail:us-east-1:111122223333:trail/TrailName", "EventSelectors": [ { "ReadWriteType": "All", "IncludeManagementEvents": true, "DataResources": [], "ExcludeManagementEventSources": [ "kms.amazonaws.com" ] } ] }

추적 로그에서 Amazon RDS Data API 이벤트를 제외하려면 put-event-selectors 명령을 실행하고 값이 rdsdata.amazonaws.comExcludeManagementEventSources 속성을 추가합니다. 다음 예에서는 TrailName이라는 추적이 읽기 전용 및 쓰기 전용 관리 이벤트를 포함하되 Amazon RDS Data API 이벤트는 제외하도록 이벤트 선택기를 생성합니다. Amazon RDS Data API에서는 대량의 이벤트를 생성할 수 있으므로 이 예의 사용자는 이벤트를 제한하여 추적 비용을 관리할 수 있습니다.

{ "TrailARN": "arn:aws:cloudtrail:us-east-1:111122223333:trail/TrailName", "EventSelectors": [ { "ReadWriteType": "All", "IncludeManagementEvents": true, "DataResources": [], "ExcludeManagementEventSources": [ "rdsdata.amazonaws.com" ] } ] }

추적에 AWS KMS 또는 Amazon RDS Data API 이벤트를 로그하려면 다음 명령과 같이 ExcludeManagementEventSources의 값으로 빈 문자열을 전달합니다.

aws cloudtrail put-event-selectors --trail-name TrailName --event-selectors '[{"ReadWriteType": "All","ExcludeManagementEventSources": [],"IncludeManagementEvents": true}]'

Disable, Delete, ScheduleKey와 같은 추적과 관련된 AWS KMS 이벤트를 로깅하고 Encrypt, Decrypt, GenerateDataKey와 같은 대량의 AWS KMS 이벤트는 제외하려면 다음 예와 같이 쓰기 전용 관리 이벤트를 로깅하고 AWS KMS 이벤트를 로깅하도록 기본 설정을 유지합니다.

aws cloudtrail put-event-selectors --trail-name TrailName --event-selectors '[{"ReadWriteType": "WriteOnly","ExcludeManagementEventSources": [],"IncludeManagementEvents": true}]'

AWS SDK를 사용하여 이벤트 로깅

GetEventSelectors 작업을 사용하여 트레일이 트레일에 대한 관리 이벤트를 로깅하는지 여부를 확인합니다. PutEventSelectors 작업을 사용하여 관리 이벤트를 로깅하도록 트레일을 구성할 수 있습니다. 자세한 내용은 AWS CloudTrail API 참조를 참조하세요.

Amazon CloudWatch Logs에 이벤트 전송

CloudTrail은 CloudWatch Logs로의 데이터 및 관리 이벤트 전송을 지원합니다. CloudWatch Logs 로그 그룹에 이벤트를 전송하도록 추적을 구성하면 CloudTrail은 추적에 지정된 이벤트만 전송합니다. 예를 들어, 데이터 이벤트만 로그하도록 추적을 구성하면 해당 추적은 CloudWatch Logs 로그 그룹으로 관리 이벤트만 전송합니다. 자세한 내용은 Amazon CloudWatch Logs로 CloudTrail 로그 파일 모니터링 단원을 참조하세요.