AWS Timestream是一种快速,可扩展且成本效益高的时间序列数据库,非常适合存储大量的时间序列数据,包括审计日志。以下是使用AWS Timestream存储审计日志的示例代码:
import boto3
# 创建AWS Timestream客户端对象
client = boto3.client('timestream-write')
# 创建AWS Timestream表格
table_name = 'audit_log'
database_name = 'my_database'
retention_properties = {
'MemoryStoreRetentionPeriodInHours': 24,
'MagneticStoreRetentionPeriodInDays': 30
}
dimensions = [
{'Name': 'user', 'Value': 'john.doe'},
{'Name': 'host', 'Value': 'example.com'}
]
client.create_database(DatabaseName=database_name)
client.create_table(
DatabaseName=database_name,
TableName=table_name,
RetentionProperties=retention_properties,
Dimensions=dimensions
)
import time
# 记录审计日志
log_data = {
'event_type': 'login_attempt',
'user': 'john.doe',
'host': 'example.com',
'status': 'failed',
'timestamp': time.time()
}
# 将审计日志数据写入AWS Timestream表格
record = {
'Dimensions': dimensions,
'MeasureName': 'status',
'MeasureValue': str(log_data['status']),
'Time': str(log_data['timestamp']),
'TimeUnit': 'SECONDS'
}
response = client.write_records(
DatabaseName=database_name,
TableName=table_name,
Records=[record]
)
使用AWS Timestream存储审计日志方案非常简单且效果非常好。由于Timestream是一种高度可扩展的服务,如果您需要将来存储更多的审计日志,AWS