in source/lambda/es_loader/siem/sf_config_snapshot.py [0:0]
def rename_config_field_name(logdata):
# "resourceType": "AWS::S3::Bucket"
try:
logdata['configuration']['owner_id'] = (
logdata['configuration']['owner'].pop('id'))
except (AttributeError, KeyError, TypeError):
pass
# "resourceType": "AWS::EC2::Instance"
try:
logdata['configuration']['state_code'] = (
logdata['configuration']['state'].pop('code'))
except (AttributeError, KeyError, TypeError):
pass
try:
logdata['configuration']['state_name'] = (
logdata['configuration']['state'].pop('name'))
except (AttributeError, KeyError, TypeError):
pass
# "resourceType": "AWS::Lambda::Function"
try:
if isinstance(logdata['configuration']['stateReason'], str):
logdata['configuration']['stateReason'] = {
'message': logdata['configuration']['stateReason']}
logdata['configuration']['stateReason']['code'] = (
logdata['configuration'].pop('stateReasonCode'))
except (AttributeError, KeyError, TypeError):
pass
# "resourceType": "AWS::ElasticLoadBalancing::LoadBalancer"
try:
if isinstance(logdata['configuration']['securityGroups'][0], str):
logdata['configuration']['securityGroups'] = [
{'groupId': item} for item in logdata['configuration']['securityGroups']]
except (IndexError, KeyError):
pass
try:
if isinstance(logdata['configuration']['availabilityZones'][0], str):
logdata['configuration']['availabilityZones'] = [
{'zoneName': item} for item in logdata['configuration']['availabilityZones']]
except (IndexError, KeyError):
pass
try:
if isinstance(logdata['configuration']['subnets'][0], str):
logdata['configuration']['subnets'] = [
{'subnetIdentifier': item} for item in logdata['configuration']['subnets']]
except (IndexError, KeyError):
pass
# "resourceType": "AWS::RDS::DBCluster"
# "resourceType": "AWS::Elasticsearch::Domain"
try:
if isinstance(logdata['configuration']['endpoint'], str):
logdata['configuration']['endpoint'] = {
'address': logdata['configuration']['endpoint']}
except (AttributeError, KeyError, TypeError):
pass
# "resourceType": "AWS::AutoScaling::LaunchConfiguration"
try:
if isinstance(logdata['configuration']['iamInstanceProfile'], str):
logdata['configuration']['iamInstanceProfile'] = {
'arn': logdata['configuration']['iamInstanceProfile']}
except (AttributeError, KeyError, TypeError):
pass
# "resourceType": "AWS::WAFv2::WebACL"
try:
if isinstance(logdata['configuration']['rules'][0]['statement'], dict):
new_list = []
for item in logdata['configuration']['rules']:
item['statement'] = json.dumps(item['statement'])
new_list.append(item)
logdata['configuration']["rules"] = new_list
except (IndexError, KeyError):
pass
# "resourceType": "AWS::EC2::VPCPeeringConnection"
try:
logdata['configuration']['status_message'] = (
logdata['configuration']['status'].pop('message'))
logdata['configuration']['status'] = (
logdata['configuration']['status'].pop('code'))
except (AttributeError, KeyError, TypeError):
pass
return logdata