Skip to content

Commit a87c915

Browse files
authored
Merge pull request #72 from aws-samples/bug/cloudtrail-empty-data-event
Fixed updating with no data events
2 parents 0eba951 + 70dccfd commit a87c915

File tree

1 file changed

+44
-39
lines changed
  • aws_sra_examples/solutions/cloudtrail/cloudtrail_org/lambda/src

1 file changed

+44
-39
lines changed

aws_sra_examples/solutions/cloudtrail/cloudtrail_org/lambda/src/app.py

Lines changed: 44 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
########################################################################
55
import logging
66
import os
7+
78
import boto3
89
from botocore.exceptions import ClientError
910
from crhelper import CfnResource
@@ -20,10 +21,20 @@
2021
helper = CfnResource(json_logging=False, log_level="INFO", boto_level="CRITICAL")
2122

2223
AWS_SERVICE_PRINCIPAL = "cloudtrail.amazonaws.com"
23-
CLOUDFORMATION_PARAMETERS = ["AWS_PARTITION", "CLOUDTRAIL_NAME", "CLOUDWATCH_LOG_GROUP_ARN",
24-
"CLOUDWATCH_LOG_GROUP_ROLE_ARN", "ENABLE_DATA_EVENTS_ONLY", "ENABLE_LAMBDA_DATA_EVENTS",
25-
"ENABLE_S3_DATA_EVENTS", "KMS_KEY_ID", "S3_BUCKET_NAME", "S3_KEY_PREFIX", "TAG_KEY1",
26-
"TAG_VALUE1"]
24+
CLOUDFORMATION_PARAMETERS = [
25+
"AWS_PARTITION",
26+
"CLOUDTRAIL_NAME",
27+
"CLOUDWATCH_LOG_GROUP_ARN",
28+
"CLOUDWATCH_LOG_GROUP_ROLE_ARN",
29+
"ENABLE_DATA_EVENTS_ONLY",
30+
"ENABLE_LAMBDA_DATA_EVENTS",
31+
"ENABLE_S3_DATA_EVENTS",
32+
"KMS_KEY_ID",
33+
"S3_BUCKET_NAME",
34+
"S3_KEY_PREFIX",
35+
"TAG_KEY1",
36+
"TAG_VALUE1",
37+
]
2738

2839
try:
2940
# Process Environment Variables
@@ -61,10 +72,7 @@ def get_data_event_config(**params) -> dict:
6172
}
6273

6374
if params["enable_s3_data_events"]:
64-
s3_data_resource = {
65-
"Type": "AWS::S3::Object",
66-
"Values": [f"arn:{params['aws_partition']}:s3:::"]
67-
}
75+
s3_data_resource = {"Type": "AWS::S3::Object", "Values": [f"arn:{params['aws_partition']}:s3:::"]}
6876
event_selectors["DataResources"].append(s3_data_resource)
6977
logger.info("S3 Data Events Added to Event Selectors")
7078

@@ -166,31 +174,30 @@ def create(event, context) -> str:
166174
cloudtrail_name = params.get("CLOUDTRAIL_NAME")
167175

168176
CLOUDTRAIL_CLIENT.create_trail(
169-
**get_cloudtrail_parameters(True,
170-
cloudtrail_name=cloudtrail_name,
171-
cloudwatch_log_group_arn=params.get("CLOUDWATCH_LOG_GROUP_ARN"),
172-
cloudwatch_log_group_role_arn=params.get("CLOUDWATCH_LOG_GROUP_ROLE_ARN"),
173-
kms_key_id=params.get("KMS_KEY_ID"),
174-
s3_bucket_name=params.get("S3_BUCKET_NAME"),
175-
s3_key_prefix=params.get("S3_KEY_PREFIX"),
176-
tag_key1=params.get("TAG_KEY1"),
177-
tag_value1=params.get("TAG_VALUE1")
178-
))
177+
**get_cloudtrail_parameters(
178+
True,
179+
cloudtrail_name=cloudtrail_name,
180+
cloudwatch_log_group_arn=params.get("CLOUDWATCH_LOG_GROUP_ARN"),
181+
cloudwatch_log_group_role_arn=params.get("CLOUDWATCH_LOG_GROUP_ROLE_ARN"),
182+
kms_key_id=params.get("KMS_KEY_ID"),
183+
s3_bucket_name=params.get("S3_BUCKET_NAME"),
184+
s3_key_prefix=params.get("S3_KEY_PREFIX"),
185+
tag_key1=params.get("TAG_KEY1"),
186+
tag_value1=params.get("TAG_VALUE1"),
187+
)
188+
)
179189
logger.info("Created an Organization CloudTrail")
180190

181191
event_selectors = get_data_event_config(
182192
aws_partition=params.get("AWS_PARTITION", "aws"),
183193
enable_s3_data_events=(params.get("ENABLE_S3_DATA_EVENTS", "false")).lower() in "true",
184194
enable_lambda_data_events=(params.get("ENABLE_LAMBDA_DATA_EVENTS", "false")).lower() in "true",
185-
enable_data_events_only=(params.get("ENABLE_DATA_EVENTS_ONLY", "false")).lower() in "true"
195+
enable_data_events_only=(params.get("ENABLE_DATA_EVENTS_ONLY", "false")).lower() in "true",
186196
)
187197

188198
if event_selectors and event_selectors["DataResources"]:
189199

190-
CLOUDTRAIL_CLIENT.put_event_selectors(
191-
TrailName=cloudtrail_name,
192-
EventSelectors=[event_selectors]
193-
)
200+
CLOUDTRAIL_CLIENT.put_event_selectors(TrailName=cloudtrail_name, EventSelectors=[event_selectors])
194201

195202
logger.info("Data Events Enabled")
196203

@@ -220,31 +227,29 @@ def update(event, context):
220227
params = event.get("ResourceProperties")
221228
cloudtrail_name = params.get("CLOUDTRAIL_NAME")
222229
CLOUDTRAIL_CLIENT.update_trail(
223-
**get_cloudtrail_parameters(False,
224-
cloudtrail_name=cloudtrail_name,
225-
cloudwatch_log_group_arn=params.get("CLOUDWATCH_LOG_GROUP_ARN"),
226-
cloudwatch_log_group_role_arn=params.get("CLOUDWATCH_LOG_GROUP_ROLE_ARN"),
227-
kms_key_id=params.get("KMS_KEY_ID"),
228-
s3_bucket_name=params.get("S3_BUCKET_NAME"),
229-
s3_key_prefix=params.get("S3_KEY_PREFIX"),
230-
tag_key1=params.get("TAG_KEY1"),
231-
tag_value1=params.get("TAG_VALUE1")
232-
)
230+
**get_cloudtrail_parameters(
231+
False,
232+
cloudtrail_name=cloudtrail_name,
233+
cloudwatch_log_group_arn=params.get("CLOUDWATCH_LOG_GROUP_ARN"),
234+
cloudwatch_log_group_role_arn=params.get("CLOUDWATCH_LOG_GROUP_ROLE_ARN"),
235+
kms_key_id=params.get("KMS_KEY_ID"),
236+
s3_bucket_name=params.get("S3_BUCKET_NAME"),
237+
s3_key_prefix=params.get("S3_KEY_PREFIX"),
238+
tag_key1=params.get("TAG_KEY1"),
239+
tag_value1=params.get("TAG_VALUE1"),
240+
)
233241
)
234242
logger.info("Updated Organization CloudTrail")
235243

236244
event_selectors = get_data_event_config(
237245
aws_partition=params.get("AWS_PARTITION", "aws"),
238246
enable_s3_data_events=(params.get("ENABLE_S3_DATA_EVENTS", "false")).lower() in "true",
239247
enable_lambda_data_events=(params.get("ENABLE_LAMBDA_DATA_EVENTS", "false")).lower() in "true",
240-
enable_data_events_only=(params.get("ENABLE_DATA_EVENTS_ONLY", "false")).lower() in "true"
248+
enable_data_events_only=(params.get("ENABLE_DATA_EVENTS_ONLY", "false")).lower() in "true",
241249
)
242250

243-
if event_selectors and event_selectors["DataResources"]:
244-
CLOUDTRAIL_CLIENT.put_event_selectors(
245-
TrailName=cloudtrail_name,
246-
EventSelectors=[event_selectors]
247-
)
251+
if event_selectors:
252+
CLOUDTRAIL_CLIENT.put_event_selectors(TrailName=cloudtrail_name, EventSelectors=[event_selectors])
248253

249254
logger.info("Data Events Updated")
250255

0 commit comments

Comments
 (0)