收集 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 存储桶

  1. 按照以下用户指南创建 Amazon S3 存储桶创建存储桶
  2. 保存存储桶的名称区域 ,以供日后参考(例如 redshift-audit-logs-to-secops)。

  3. Amazon S3 控制台 (https://console.aws.amazon.com/s3) 中选择已创建的存储桶。

  4. 选择权限 标签页。

  5. 存储分区政策 部分,点击修改

  6. 添加以下存储桶政策(将 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/*"
                ]
            }
        ]
    }
    
  7. 点击保存更改

启用用户活动日志参数

启用审核日志记录后,系统会自动捕获连接日志和用户日志。如需同时捕获用户活动日志(记录在数据库上运行之前的每个查询),您必须启用 enable_user_activity_logging 数据库参数。

  1. 登录 Amazon Redshift 控制台 (https://console.aws.amazon.com/redshiftv2/)。
  2. 在导航菜单中,依次前往配置 > 工作负载管理
  3. 选择与您的集群关联的参数组。
  4. 选择参数 标签页。
  5. 点击修改参数
  6. enable_user_activity_logging 参数值设置为 true
  7. 点击保存

启用 Amazon Redshift 审核日志记录到 S3

  1. 登录 Amazon Redshift 控制台 (https://console.aws.amazon.com/redshiftv2/)。
  2. 在导航菜单中,选择集群,然后选择要配置的集群。
  3. 选择属性 标签页。
  4. 数据库配置 面板中,点击修改 ,然后选择修改审核日志记录
  5. 修改审核日志记录 页面上,选择开启
  6. 对于日志目标位置,选择S3 存储桶
  7. 对于 S3 存储桶,选择您配置的存储桶(例如 redshift-audit-logs-to-secops)。
  8. 可选:输入 S3 密钥前缀 ,以整理存储桶中的日志文件(例如 audit-logs/)。
  9. 选择要导出的日志:
    • 连接日志 - 身份验证尝试、连接和断开连接
    • 用户日志 - 对数据库用户定义的更改
    • 用户活动日志 - 在数据库上运行之前的每个查询
  10. 点击保存更改

如需了解详情,请参阅 Amazon Redshift 管理指南中的数据库审核日志记录

为 Google SecOps 配置 IAM 用户

Google SecOps 需要一个具有 S3 存储桶读取权限的 IAM 用户,才能注入导出的审核日志。

  1. 按照以下用户指南创建用户创建 IAM 用户
  2. 选择已创建的用户
  3. 选择安全凭证 标签页。
  4. 访问密钥 部分,点击创建访问密钥
  5. 选择第三方服务 作为使用场景
  6. 点击下一步
    • 可选:添加说明标签。
  7. 点击创建访问密钥
  8. 点击下载 .csv 文件 以保存访问密钥Secret 访问密钥 ,供日后参考。
  9. 点击完成
  10. 选择权限 标签页。
  11. 权限政策 部分,点击添加权限
  12. 选择添加权限
  13. 选择直接关联政策
  14. 搜索 AmazonS3FullAccess 政策。
  15. 选择该政策。
  16. 点击下一步
  17. 点击添加权限

在 Google SecOps 中配置 Feed 以注入 AWS Redshift 日志

  1. 前往 SIEM 设置 > Feed
  2. 点击 Add New Feed (添加新 Feed)。
  3. 在下一页上,点击 Configure a single feed (配置单个 Feed)。
  4. Feed name (Feed 名称)输入一个唯一的名称。
  5. 选择 Amazon S3 V2 作为来源类型
  6. 选择 AWS Redshift 作为日志类型
  7. 点击下一步 ,然后点击提交
  8. 为以下字段指定值:

    • S3 URIs3://redshift-audit-logs-to-secops/audit-logs/
    • 来源删除选项:根据您的偏好选择删除选项
    • 最长文件存在时间:包含在过去指定天数内修改的文件(默认值为 180 天)
    • 访问密钥 ID:具有 S3 存储桶访问权限的用户访问密钥
    • Secret 访问密钥:具有 S3 存储桶访问权限的用户 Secret 密钥
    • 资产命名空间资产命名空间
    • 注入标签:要应用于此 Feed 中事件的标签
  9. 点击下一步 ,然后点击提交

UDM 映射表

日志字段 UDM 映射 逻辑
func_label additional.fields 已合并
lpclagg_label additional.fields 已合并
lpcltype_label additional.fields 已合并
msg metadata.description 直接映射
has_principal metadata.event_type 已映射:trueSTATUS_UPDATE
has_target_resource metadata.event_type 已映射:trueUSER_RESOURCE_ACCESS
has_user metadata.event_type 已映射:trueUSER_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)InfoINFORMATIONAL(?i)ErrorERROR(?i)WarningMEDIUM
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 专业人士的解答。