收集 AWS Redshift 日志
解析器版本: 1.0
本文档介绍了如何使用 Amazon S3 将 AWS Redshift 日志注入 Google Security Operations。
Amazon Redshift 是 Amazon Web Services 提供的一项全代管式 PB 级云数据仓库服务。它支持使用基于 SQL 的工具和商业智能应用对大型数据集进行快速查询和分析。Amazon Redshift 会记录数据库活动,包括身份验证尝试、连接、断开连接、用户定义更改以及针对数据库运行的查询。此集成使用 Amazon Redshift 的原生审核日志记录功能将日志文件传送到 S3 存储桶,然后 Google SecOps 使用 Amazon S3 V2 Feed 注入这些日志文件。
准备工作
请确保满足以下前提条件:
- Google SecOps 实例
- 对 AWS 管理控制台 的特权访问权限,并拥有以下管理权限:
- Amazon Redshift (集群、参数组)
- Amazon S3 (存储桶、存储桶政策)
- AWS IAM (用户、政策)
为 Amazon Redshift 审核日志记录配置 S3 存储桶
Amazon Redshift 会将审核日志文件上传到 S3 存储桶。您必须配置 S3 存储桶政策,以允许 Amazon Redshift 服务写入日志文件。
创建和配置 S3 存储桶
- 按照以下用户指南创建 Amazon S3 存储桶 :创建存储桶。
保存存储桶的名称 和区域 ,以供日后参考(例如
redshift-audit-logs-to-secops)。在 Amazon S3 控制台 (https://console.aws.amazon.com/s3) 中选择已创建的存储桶。
选择权限 标签页。
在存储分区政策 部分,点击修改 。
添加以下存储桶政策(将
redshift-audit-logs-to-secops替换为您的存储桶名称):{ "Version": "2012-10-17", "Statement": [ { "Sid": "Put bucket policy needed for audit logging", "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": [ "s3:PutObject", "s3:GetBucketAcl" ], "Resource": [ "arn:aws:s3:::redshift-audit-logs-to-secops", "arn:aws:s3:::redshift-audit-logs-to-secops/*" ] } ] }点击保存更改 。
启用用户活动日志参数
启用审核日志记录后,系统会自动捕获连接日志和用户日志。如需同时捕获用户活动日志(记录在数据库上运行之前的每个查询),您必须启用 enable_user_activity_logging 数据库参数。
- 登录 Amazon Redshift 控制台 (https://console.aws.amazon.com/redshiftv2/)。
- 在导航菜单中,依次前往配置 > 工作负载管理。
- 选择与您的集群关联的参数组。
- 选择参数 标签页。
- 点击修改参数 。
- 将 enable_user_activity_logging 参数值设置为 true 。
点击保存 。
启用 Amazon Redshift 审核日志记录到 S3
- 登录 Amazon Redshift 控制台 (https://console.aws.amazon.com/redshiftv2/)。
- 在导航菜单中,选择集群,然后选择要配置的集群。
- 选择属性 标签页。
- 在数据库配置 面板中,点击修改 ,然后选择修改审核日志记录 。
- 在修改审核日志记录 页面上,选择开启 。
- 对于日志目标位置,选择S3 存储桶。
- 对于 S3 存储桶,选择您配置的存储桶(例如
redshift-audit-logs-to-secops)。 - 可选:输入 S3 密钥前缀 ,以整理存储桶中的日志文件(例如
audit-logs/)。 - 选择要导出的日志:
- 连接日志 - 身份验证尝试、连接和断开连接
- 用户日志 - 对数据库用户定义的更改
- 用户活动日志 - 在数据库上运行之前的每个查询
- 点击保存更改 。
如需了解详情,请参阅 Amazon Redshift 管理指南中的数据库审核日志记录。
为 Google SecOps 配置 IAM 用户
Google SecOps 需要一个具有 S3 存储桶读取权限的 IAM 用户,才能注入导出的审核日志。
- 按照以下用户指南创建用户:创建 IAM 用户。
- 选择已创建的用户 。
- 选择安全凭证 标签页。
- 在访问密钥 部分,点击创建访问密钥 。
- 选择第三方服务 作为使用场景 。
- 点击下一步 。
- 可选:添加说明标签。
- 点击创建访问密钥 。
- 点击下载 .csv 文件 以保存访问密钥 和 Secret 访问密钥 ,供日后参考。
- 点击完成 。
- 选择权限 标签页。
- 在权限政策 部分,点击添加权限 。
- 选择添加权限 。
- 选择直接关联政策 。
- 搜索 AmazonS3FullAccess 政策。
- 选择该政策。
- 点击下一步 。
- 点击添加权限 。
在 Google SecOps 中配置 Feed 以注入 AWS Redshift 日志
- 前往 SIEM 设置 > Feed。
- 点击 Add New Feed (添加新 Feed)。
- 在下一页上,点击 Configure a single feed (配置单个 Feed)。
- 为 Feed name (Feed 名称)输入一个唯一的名称。
- 选择 Amazon S3 V2 作为来源类型 。
- 选择 AWS Redshift 作为日志类型 。
- 点击下一步 ,然后点击提交 。
为以下字段指定值:
- S3 URI:
s3://redshift-audit-logs-to-secops/audit-logs/ - 来源删除选项:根据您的偏好选择删除选项
- 最长文件存在时间:包含在过去指定天数内修改的文件(默认值为 180 天)
- 访问密钥 ID:具有 S3 存储桶访问权限的用户访问密钥
- Secret 访问密钥:具有 S3 存储桶访问权限的用户 Secret 密钥
- 资产命名空间:资产命名空间
- 注入标签:要应用于此 Feed 中事件的标签
- S3 URI:
点击下一步 ,然后点击提交 。
UDM 映射表
| 日志字段 | UDM 映射 | 逻辑 |
|---|---|---|
func_label |
additional.fields |
已合并 |
lpclagg_label |
additional.fields |
已合并 |
lpcltype_label |
additional.fields |
已合并 |
msg |
metadata.description |
直接映射 |
has_principal |
metadata.event_type |
已映射:true → STATUS_UPDATE |
has_target_resource |
metadata.event_type |
已映射:true → USER_RESOURCE_ACCESS |
has_user |
metadata.event_type |
已映射:true → USER_UNCATEGORIZED |
column1 |
metadata.product_event_type |
直接映射 |
requestID |
metadata.product_log_id |
直接映射 |
column20 |
network.application_protocol_version |
直接映射 |
column9 |
network.session_duration.seconds |
已重命名/映射 |
column21 |
network.session_id |
直接映射 |
xid |
network.session_id |
直接映射 |
column11 |
network.tls.cipher |
直接映射 |
column10 |
network.tls.version |
直接映射 |
column16 |
principal.application |
直接映射 |
column3 |
principal.asset.ip |
已合并 |
log_event.src_ip |
principal.asset.ip |
已合并 |
column3 |
principal.hostname |
直接映射 |
column3 |
principal.ip |
已合并 |
log_event.src_ip |
principal.ip |
已合并 |
region |
principal.location.name |
直接映射 |
column17 |
principal.platform_version |
直接映射 |
column4 |
principal.port |
直接映射 |
column5 |
principal.process.pid |
直接映射 |
pid |
principal.process.pid |
直接映射 |
accountID |
principal.user.userid |
直接映射 |
user_id |
principal.user.userid |
直接映射 |
authmethod_label |
security_result.detection_fields |
已合并 |
compression_label |
security_result.detection_fields |
已合并 |
driver_version_label |
security_result.detection_fields |
已合并 |
iamauthguid_label |
security_result.detection_fields |
已合并 |
mtu_label |
security_result.detection_fields |
已合并 |
plugin_name_label |
security_result.detection_fields |
已合并 |
ssl_compression_label |
security_result.detection_fields |
已合并 |
ssl_expansion_label |
security_result.detection_fields |
已合并 |
level |
security_result.severity |
已映射:(?i)Info → INFORMATIONAL,(?i)Error → ERROR,(?i)Warning → MEDIUM |
file |
target.file.full_path |
直接映射 |
expected_bucket_label |
target.resource.attribute.labels |
已合并 |
expected_s3_prefix_label |
target.resource.attribute.labels |
已合并 |
sql_query_label |
target.resource.attribute.labels |
已合并 |
time_zone_label |
target.resource.attribute.labels |
已合并 |
ClusterIdentifier |
target.resource.name |
直接映射 |
column6 |
target.resource.name |
直接映射 |
db |
target.resource.name |
直接映射 |
column7 |
target.user.user_display_name |
直接映射 |
user |
target.user.user_display_name |
直接映射 |
| 不适用 | metadata.event_type |
常量:USER_RESOURCE_ACCESS |
| 不适用 | security_result.severity |
常量:INFORMATIONAL |
| 不适用 | target.resource.type |
常量:DATABASE |
更新日志
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。