Cloudtrail Events Structure
Introduction
Understanding the structure of a CloudTrail event is crucial for effectively analyzing and interpreting the logs generated by AWS CloudTrail. Each event in CloudTrail captures detailed information about actions taken in your AWS account, providing valuable insights into user activity and service operations. In this lesson, we will break down the anatomy of a CloudTrail event, exploring its key components and fields to help you gain a deeper understanding of the data captured by CloudTrail.
Overview of a CloudTrail Event
A CloudTrail event is a JSON-formatted record that provides a detailed account of an API call or activity that occurred within your AWS environment. Each event captures information such as who made the call, what action was taken, when it occurred, where it was made from, and how AWS responded.
Here’s a high-level breakdown of the structure of a typical CloudTrail event:
{
"eventVersion": "1.08",
"userIdentity": { ... },
"eventTime": "2023-08-31T14:26:48Z",
"eventSource": "ec2.amazonaws.com",
"eventName": "RunInstances",
"awsRegion": "us-west-2",
"sourceIPAddress": "203.0.113.0",
"userAgent": "aws-cli/2.0",
"requestParameters": { ... },
"responseElements": { ... },
"requestID": "12345678-1234-1234-1234-123456789012",
"eventID": "abcd1234-1234-5678-1234-abcd56781234",
"eventType": "AwsApiCall",
"recipientAccountId": "123456789012",
"errorCode": null,
"errorMessage": null,
"resources": [ ... ],
"additionalEventData": { ... },
"vpcEndpointId": "vpce-1a2b3c4d",
"eventCategory": "Management"
}
Key Components of a CloudTrail Event
eventVersion
Description: Indicates the version of the event format. AWS may update this version as the event structure evolves over time.
Usage: Helps ensure compatibility with tools that process or analyze CloudTrail logs.
userIdentity
Description: Contains information about the identity of the user or service that made the API call. This field is crucial for identifying the source of the action.
Subfields:
type
: The type of identity making the call (e.g., IAM User, AssumedRole, Root, AWS Service).arn
: The Amazon Resource Name (ARN) of the user or service.accountId
: The AWS account ID of the user.userName
: The name of the IAM user (if applicable).
eventTime
Description: The exact timestamp when the event occurred, in ISO 8601 format (UTC).
Usage: Essential for building timelines during incident response or auditing.
eventSource
Description: The AWS service that was the target of the API call (e.g.,
ec2.amazonaws.com
,s3.amazonaws.com
).Usage: Identifies the service affected by the event, helping to categorize and prioritize log analysis.
eventName
Description: The name of the API operation that was invoked (e.g.,
RunInstances
,PutObject
,DescribeInstances
).Usage: Critical for understanding what action was taken, especially when identifying potentially malicious activity.
awsRegion
Description: The AWS region where the API call was made (e.g.,
us-west-2
,eu-central-1
).Usage: Helps localize the event to a specific geographic region, which can be important for compliance and operational purposes.
sourceIPAddress
Description: The IP address from which the API call was made.
Usage: Useful for identifying the origin of the request, especially when investigating unauthorized access.
userAgent
Description: The user agent string associated with the API request, indicating the tool, SDK, or method used to make the call (e.g.,
aws-cli/2.0
,Boto3/1.17
).Usage: Provides context about how the request was made, which can help in understanding user behavior or detecting anomalies.
requestParameters
Description: A JSON object containing the parameters that were passed to the API call.
Usage: Helps in understanding the specifics of the request, such as which resources were targeted or what configurations were set.
responseElements
Description: A JSON object containing the response returned by the AWS service after the API call was executed.
Usage: Allows you to see the outcome of the request, including any data returned by the service.
requestID
Description: A unique identifier for the API request, assigned by AWS.
Usage: Can be used for tracking and correlating related events, especially when troubleshooting or during forensic analysis.
eventID
Description: A unique identifier for the CloudTrail event itself.
Usage: Useful for referencing specific events in logs or when discussing them with AWS Support.
eventType
Description: The type of event, typically
AwsApiCall
for most API operations.Usage: Helps categorize the event and understand its context within the larger set of log data.
recipientAccountId
Description: The AWS account ID that received the event.
Usage: Important when monitoring cross-account activities, ensuring that the correct account is being audited.
errorCode
anderrorMessage
Description: If the API call failed, these fields will contain the error code and message returned by the service.
Usage: Crucial for troubleshooting failed operations and understanding why a request didn’t succeed.
resources
Description: A list of AWS resources that were affected by the API call.
Usage: Helps identify which resources were created, modified, or deleted as a result of the API operation.
additionalEventData
Description: Contains supplementary information about the event, such as details specific to certain API calls or AWS services.
Usage: Provides more context for specialized events or actions.
vpcEndpointId
Description: The ID of the VPC endpoint that was used to make the API call, if applicable.
Usage: Useful for understanding network traffic flow, especially in environments using VPC endpoints for private connectivity.
eventCategory
Description: Categorizes the event as a
Management
event,Data
event, or other types.Usage: Helps in filtering and analyzing specific types of events.
Last updated