in cartography/intel/aws/dynamodb.py [0:0]
def load_dynamodb_tables(session, data, region, current_aws_account_id, aws_update_tag):
ingest_table = """
MERGE (table:DynamoDBTable{id: {Arn}})
ON CREATE SET table.firstseen = timestamp(), table.arn = {Arn}, table.name = {TableName},
table.region = {Region}
SET table.lastupdated = {aws_update_tag}, table.rows = {Rows}, table.size = {Size},
table.provisioned_throughput_read_capacity_units = {ProvisionedThroughputReadCapacityUnits},
table.provisioned_throughput_write_capacity_units = {ProvisionedThroughputWriteCapacityUnits}
WITH table
MATCH (owner:AWSAccount{id: {AWS_ACCOUNT_ID}})
MERGE (owner)-[r:RESOURCE]->(table)
ON CREATE SET r.firstseen = timestamp()
SET r.lastupdated = {aws_update_tag}
"""
for table in data["Tables"]:
session.run(
ingest_table,
Arn=table['Table']['TableArn'],
Region=region,
ProvisionedThroughputReadCapacityUnits=table['Table']['ProvisionedThroughput']['ReadCapacityUnits'],
ProvisionedThroughputWriteCapacityUnits=table['Table']['ProvisionedThroughput']['WriteCapacityUnits'],
Size=table['Table']['TableSizeBytes'],
TableName=table['Table']['TableName'],
Rows=table['Table']['ItemCount'],
AWS_ACCOUNT_ID=current_aws_account_id,
aws_update_tag=aws_update_tag
)
load_gsi(session, table, region, current_aws_account_id, aws_update_tag)