CloudTrail 로그 파일의 예 - AWS CloudTrail

CloudTrail 로그 파일의 예

CloudTrail은 계정에 대한 이벤트를 모니터링합니다. 사용자가 추적을 생성하면 CloudTrail에서 이러한 이벤트를 로그 파일 형태로 Amazon S3 버킷에 전달합니다. 로그 파일에 대한 자세한 내용은 다음을 참조하십시오.

CloudTrail 로그 파일 이름 형식

CloudTrail은 Amazon S3 버킷으로 전달하는 로그 파일 객체에 대해 다음 파일 이름 형식을 사용합니다.

AccountID_CloudTrail_RegionName_YYYYMMDDTHHmmZ_UniqueString.FileNameFormat
  • YYYY, MM, DD, HHmm은 로그 파일이 전송된 연도, 월, 일, 시, 분에 대한 숫자입니다. 시간은 24시간 형식입니다. Z는 시간이 UTC 기준임을 나타냅니다.

    참고

    로그 파일에는 해당 파일이 전송된 시간 이전에 기록된 레코드가 포함될 수 있습니다.

  • 로그 파일 이름의 16자 UniqueString 구성 요소는 파일의 덮어쓰기를 방지할 목적으로 사용됩니다. 특별한 의미가 없으므로 로그 처리 소프트웨어가 무시해도 됩니다.

  • FileNameFormat은 파일의 인코딩입니다. 현재 인코딩은 json.gz이며, 압축 gzip 형식의 JSON 텍스트 파일입니다.

CloudTrail 로그 파일 이름의 예

111122223333_CloudTrail_us-east-2_20150801T0210Z_Mu0KsOhtH1ar15ZZ.json.gz

로그 파일의 예

로그 파일에는 하나 이상의 레코드가 포함되어 있습니다. 다음 예는 로그 파일의 생성을 시작한 작업에 대한 레코드를 보여 주는 로그의 조각입니다.

Amazon EC2 로그 예

Amazon Elastic Compute Cloud(Amazon EC2)는 AWS Cloud에서 확장 가능한 컴퓨팅 용량을 제공합니다. 가상 서버를 시작하고 보안 및 네트워크를 구성하며 스토리지를 관리할 수 있습니다. 또한 Amazon EC2는 요구 사항의 변경이나 사용량 스파이크를 처리하기 위해 빠르게 확장 또는 축소할 수 있으므로 서버 트래픽을 예측할 필요가 줄어듭니다. 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용 설명서를 참조하세요.

다음 예에서는 Alice라는 IAM 사용자가 AWS CLI에서 i-ebeaf9e2 인스턴스에 대한 ec2-start-instances명령을 사용하여 Amazon EC2 StartInstances 작업을 호출했음을 보여줍니다.

{"Records": [{ "eventVersion": "1.0", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Alice", "accessKeyId": "EXAMPLE_KEY_ID", "accountId": "123456789012", "userName": "Alice" }, "eventTime": "2014-03-06T21:22:54Z", "eventSource": "ec2.amazonaws.com", "eventName": "StartInstances", "awsRegion": "us-east-2", "sourceIPAddress": "205.251.233.176", "userAgent": "ec2-api-tools 1.6.12.2", "requestParameters": {"instancesSet": {"items": [{"instanceId": "i-ebeaf9e2"}]}}, "responseElements": {"instancesSet": {"items": [{ "instanceId": "i-ebeaf9e2", "currentState": { "code": 0, "name": "pending" }, "previousState": { "code": 80, "name": "stopped" } }]}} }]}

다음 예에서는 Alice라는 IAM 사용자가 AWS CLI에서 ec2-stop-instances를 사용하여 Amazon EC2 StopInstances 작업을 호출했음을 보여줍니다.

{"Records": [{ "eventVersion": "1.0", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "EXAMPLE_KEY_ID", "userName": "Alice" }, "eventTime": "2014-03-06T21:01:59Z", "eventSource": "ec2.amazonaws.com", "eventName": "StopInstances", "awsRegion": "us-east-2", "sourceIPAddress": "205.251.233.176", "userAgent": "ec2-api-tools 1.6.12.2", "requestParameters": { "instancesSet": {"items": [{"instanceId": "i-ebeaf9e2"}]}, "force": false }, "responseElements": {"instancesSet": {"items": [{ "instanceId": "i-ebeaf9e2", "currentState": { "code": 64, "name": "stopping" }, "previousState": { "code": 16, "name": "running" } }]}} }]}

다음 예에서는 Amazon EC2 콘솔 백엔드가 IAM 사용자 Alice가 시작한 요청에 대한 응답으로 CreateKeyPair 작업을 호출했음을 보여줍니다. responseElements에는 키 페어의 해시가 포함되어 있으며, AWS가 키 구성 요소를 제거했습니다.

{"Records": [{ "eventVersion": "1.0", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "EXAMPLE_KEY_ID", "userName": "Alice", "sessionContext": {"attributes": { "mfaAuthenticated": "false", "creationDate": "2014-03-06T15:15:06Z" }} }, "eventTime": "2014-03-06T17:10:34Z", "eventSource": "ec2.amazonaws.com", "eventName": "CreateKeyPair", "awsRegion": "us-east-2", "sourceIPAddress": "72.21.198.64", "userAgent": "EC2ConsoleBackend, aws-sdk-java/Linux/x.xx.fleetxen Java_HotSpot(TM)_64-Bit_Server_VM/xx", "requestParameters": {"keyName": "mykeypair"}, "responseElements": { "keyName": "mykeypair", "keyFingerprint": "30:1d:46:d0:5b:ad:7e:1b:b6:70:62:8b:ff:38:b5:e9:ab:5d:b8:21", "keyMaterial": "\u003csensitiveDataRemoved\u003e" } }]}

IAM 로그의 예

AWS Identity and Access Management(IAM)는 AWS 고객이 사용자와 각 사용자 권한을 관리할 수 있도록 하는 웹 서비스입니다. IAM을 사용하면 사용자, 액세스 키와 같은 보안 자격 증명, 사용자가 액세스할 수 있는 AWS 리소스를 제어하는 권한을 관리할 수 있습니다. 자세한 내용은 IAM 사용 설명서를 참조하세요.

다음 예에서는 사용자 Alice가 AWS CLI에서 CreateUser 작업을 호출하여 이름이 Bob인 새 사용자를 생성했음을 보여 줍니다.

{"Records": [{ "eventVersion": "1.0", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "EXAMPLE_KEY_ID", "userName": "Alice" }, "eventTime": "2014-03-24T21:11:59Z", "eventSource": "iam.amazonaws.com", "eventName": "CreateUser", "awsRegion": "us-east-2", "sourceIPAddress": "127.0.0.1", "userAgent": "aws-cli/1.3.2 Python/2.7.5 Windows/7", "requestParameters": {"userName": "Bob"}, "responseElements": {"user": { "createDate": "Mar 24, 2014 9:11:59 PM", "userName": "Bob", "arn": "arn:aws:iam::123456789012:user/Bob", "path": "/", "userId": "EXAMPLEUSERID" }} }]}

다음 예에서는 IAM 사용자 Alice가 AWS Management Console에서 AddUserToGroup 작업을 호출하여 Bob을 관리자 그룹에 추가했음을 보여 줍니다.

{"Records": [{ "eventVersion": "1.0", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "EXAMPLE_KEY_ID", "userName": "Alice", "sessionContext": {"attributes": { "mfaAuthenticated": "false", "creationDate": "2014-03-25T18:45:11Z" }} }, "eventTime": "2014-03-25T21:08:14Z", "eventSource": "iam.amazonaws.com", "eventName": "AddUserToGroup", "awsRegion": "us-east-2", "sourceIPAddress": "127.0.0.1", "userAgent": "AWSConsole", "requestParameters": { "userName": "Bob", "groupName": "admin" }, "responseElements": null }]}

다음 예에서는 IAM 사용자 Alice가 AWS CLI에서 CreateRole 작업을 호출하여 새 IAM 역할을 생성했음을 보여 줍니다.

{ "Records": [{ "eventVersion": "1.0", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "EXAMPLE_KEY_ID", "userName": "Alice" }, "eventTime": "2014-03-25T20:17:37Z", "eventSource": "iam.amazonaws.com", "eventName": "CreateRole", "awsRegion": "us-east-2", "sourceIPAddress": "127.0.0.1", "userAgent": "aws-cli/1.3.2 Python/2.7.5 Windows/7", "requestParameters": { "assumeRolePolicyDocument": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"\", \n\"Effect\": \"Allow\",\n \"Principal\": {\n \"AWS\": \"arn:aws:iam::210987654321:root\"\n },\n \"Action\": \"sts:AssumeRole\"\n }\n ]\n}", "roleName": "TestRole" }, "responseElements": { "role": { "assumeRolePolicyDocument": "%7B%0A%20%20%22Version%22%3A%20%222012-10-17%22%2C%0A%20%20%22Statement%22%3A%20%5B%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%22Sid%22%3A%20%22%22%2C%0A%20%20%20%20%20%20%22Effect%22%3A%20%22Allow%22%2C%0A%20%20%20%20%20%20%22Principal%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%22AWS%22%3A%20%22arn%3Aaws%3Aiam%3A%3A803981987763%3Aroot%22%0A%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%22Action%22%3A%20%22sts%3AAssumeRole%22%0A%20%20%20%20%7D%0A%20%20%5D%0A%7D", "roleName": "TestRole", "roleId": "AROAIUU2EOWSWPGX2UJUO", "arn": "arn:aws:iam::123456789012:role/TestRole", "createDate": "Mar 25, 2014 8:17:37 PM", "path": "/" } } }] }

오류 코드 및 메시지 로그의 예

다음 예에서는 IAM 사용자 Alice가 AWS CLI에서 UpdateTrail 작업을 호출하여 myTrail2라는 추적을 업데이트했지만 추적 이름을 찾을 수 없음을 보여 줍니다. 이 로그는 errorCodeerrorMessage 요소에 이 오류를 표시합니다.

{"Records": [{ "eventVersion": "1.04", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "EXAMPLE_KEY_ID", "userName": "Alice" }, "eventTime": "2016-07-14T19:15:45Z", "eventSource": "cloudtrail.amazonaws.com", "eventName": "UpdateTrail", "awsRegion": "us-east-2", "sourceIPAddress": "205.251.233.182", "userAgent": "aws-cli/1.10.32 Python/2.7.9 Windows/7 botocore/1.4.22", "errorCode": "TrailNotFoundException", "errorMessage": "Unknown trail: myTrail2 for the user: 123456789012", "requestParameters": {"name": "myTrail2"}, "responseElements": null, "requestID": "5d40662a-49f7-11e6-97e4-d9cb6ff7d6a3", "eventID": "b7d4398e-b2f0-4faa-9c76-e2d316a8d67f", "eventType": "AwsApiCall", "recipientAccountId": "123456789012" }]}

CloudTrail 인사이트 이벤트 로그의 예

다음 예에서는 CloudTrail 인사이트 이벤트 로그를 보여 줍니다. Insights 이벤트는 실제로 비정상적인 쓰기 관리 API 활동 또는 오류 응답 활동 기간의 시작과 끝을 표시하는 한 쌍의 이벤트입니다. state 필드에는 비정상적인 활동 기간의 시작 또는 종료 시 이벤트가 로깅되었는지 여부가 표시됩니다. 이벤트 이름인 UpdateInstanceInformation은 비정상적인 활동이 발생했음을 확인하기 위해 CloudTrail에서 관리 이벤트를 분석한 AWS Systems Manager API와 동일한 이름입니다. 시작 및 종료 이벤트에는 고유한 eventID 값이 있지만 쌍에서 사용하는 sharedEventID 값도 있습니다. 인사이트 이벤트는 정상적인 활동 패턴인 baseline과 시작 인사이트 이벤트를 트리거한 평균적인 비정상적 활동인 insight, 그리고 종료 이벤트에서 인사이트 이벤트가 지속되는 동안 평균적인 비정상적 활동의 insight 값을 표시합니다. CloudTrail Insights에 대한 자세한 내용은 추적에 대한 Insights 이벤트 로깅 단원을 참조하세요.

{ "Records": [ { "eventVersion": "1.07", "eventTime": "2019-11-14T00:51:00Z", "awsRegion": "us-east-1", "eventID": "EXAMPLE8-9621-4d00-b913-beca2EXAMPLE", "eventType": "AwsCloudTrailInsight", "recipientAccountId": "123456789012", "sharedEventID": "EXAMPLE2-1729-42f1-b735-5d8c0EXAMPLE", "insightDetails": { "state": "Start", "eventSource": "ssm.amazonaws.com", "eventName": "UpdateInstanceInformation", "insightType": "ApiCallRateInsight", "insightContext": { "statistics": { "baseline": { "average": 85.4202380952 }, "insight": { "average": 664 } } } }, "eventCategory": "Insight" }, { "eventVersion": "1.07", "eventTime": "2019-11-14T00:52:00Z", "awsRegion": "us-east-1", "eventID": "EXAMPLEc-28be-486c-8928-49ce6EXAMPLE", "eventType": "AwsCloudTrailInsight", "recipientAccountId": "123456789012", "sharedEventID": "EXAMPLE2-1729-42f1-b735-5d8c0EXAMPLE", "insightDetails": { "state": "End", "eventSource": "ssm.amazonaws.com", "eventName": "UpdateInstanceInformation", "insightType": "ApiCallRateInsight", "insightContext": { "statistics": { "baseline": { "average": 85.4202380952 }, "insight": { "average": 664 }, "insightDuration": 1 } } }, "eventCategory": "Insight" } ] }