Description
AWS CloudTrail is a web service that records AWS API calls for your account and delivers log files to you. The recorded information includes the identity of the API caller, the time of the API call, the source IP address of the API caller, the request parameters, and the response elements returned by the AWS service. CloudTrail provides a history of AWS API calls for an account, including API calls made via the Management Console, SDKs, command line tools, and higher-level AWS services (such as CloudFormation).
Rationaleβ
The AWS API call history produced by CloudTrail enables security analysis, resource change tracking, and compliance auditing. Additionally,
- Ensuring that a multi-regions trail exists will ensure that unexpected activity occurring in otherwise unused regions is detected.
- Ensuring that a multi-regions trail exists will ensure that
Global Service Logging
is enabled for a trail by default to capture recording of events generated on AWS global services. - For a multi-regions trail, ensuring that management events configured for all type of Read/Writes ensures recording of management operations that are performed on all resources in an AWS account.
Impactβ
S3 lifecycle features can be used to manage the accumulation and management of logs over time. See the following AWS resource for more information on these features:
Auditβ
Perform the following to determine if CloudTrail is enabled for all regions:
From Consoleβ
- Sign in to the AWS Management Console and open the CloudTrail console at https://console.aws.amazon.com/cloudtrail.
- Click on
Trails
on the left navigation pane.
- You will be presented with a list of trails across all regions.
- Ensure at least one Trail has
Yes
specified in theMulti-region trail
column. - Click on a trail via the link in the Name column.
- Ensure
Logging
is set toON
. - Ensure
Multi-region trail
is set toYes
. - In section
Management Events
ensureAPI activity
set toALL
.
From Command Lineβ
- List all trails:
aws cloudtrail describe-trails
- Ensure
IsMultiRegionTrail
is set totrue
:
aws cloudtrail get-trail-status --name <trailname shown in describe-trails>
- Ensure
IsLogging
is set totrue
:
aws cloudtrail get-event-selectors --trail-name <trailname shown in describe-trails>
- Ensure there is at least one
fieldSelector
for a Trail that equalsManagement
:
- This should NOT output any results for
"Field": "readOnly"
if eithertrue
orfalse
is returned one of the checkboxes is not selected forread
orwrite
.
Example of correct output:
"TrailARN": "<your_trail_ARN>",
"AdvancedEventSelectors": [
{
"Name": "Management events selector",
"FieldSelectors": [
{
"Field": "eventCategory",
"Equals": [
"Management"
]
}
]
}
]
Default Valueβ
Not Enabled.
Referencesβ
- CCE-78913-1
- https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-concepts.html#cloudtrail-concepts-management-events
- https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-and-data-events-with-cloudtrail.html?icmpid=docs_cloudtrail_console#logging-management-events
- https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-supported-services.html#cloud-trail-supported-services-data-events