收集 Okera Dynamic Access Platform (ODAP) 审核日志

支持的服务:

本文档介绍了如何使用云存储(Amazon S3、Google Cloud Storage 或 Azure Blob Storage)将 Okera Dynamic Access Platform (ODAP) 审核日志注入到 Google Security Operations。

Okera Dynamic Access Platform (ODAP) 是一种数据访问权限控制和治理平台,可为数据湖和分析平台提供精细的访问权限控制、自动数据发现和分类以及全面的审核日志记录。该平台会生成 JSON 格式的审核日志,用于捕获所有数据访问权限事件、政策更改和管理操作。

准备工作

请确保满足以下前提条件:

  • Google SecOps 实例
  • 有效的 Okera ODAP 部署(2.0 版或更高版本)
  • 对 Okera 集群配置(Helm 图表或配置 YAML)的管理员访问权限
  • 对以下云平台之一的特权访问权限:
    • AWS (S3, IAM),适用于 Amazon S3 存储
    • GCP (Cloud Storage, IAM),适用于 Google Cloud Storage
    • Azure (存储账号),适用于 Azure Data Lake Storage Gen2
  • Okera 集群必须具有对云存储位置的写入权限

配置 Okera ODAP 审核日志导出

Okera ODAP 审核日志通过集群配置 YAML 文件进行配置,并使用 Okera Helm 图表进行部署。审核日志以 JSON 格式写入到共享云存储位置。

确定您的云存储平台

根据您的 Okera 部署,选择以下云存储平台之一:

  • Amazon S3:适用于在 AWS 上运行的 Okera 集群
  • Google Cloud Storage:适用于在 GCP 上运行的 Okera 集群
  • Azure Data Lake Storage Gen2:适用于在 Azure 上运行的 Okera 集群

配置审核日志存储位置

  1. 访问您的 Okera 集群配置 YAML 文件。
  2. 找到审核日志配置部分。
  3. 根据您的云平台配置审核日志目标位置:

    • 对于 Amazon S3

      WATCHER_LOG_DST_DIR: "s3://your-company/okera/ops/"
      WATCHER_AUDIT_LOG_DST_DIR: "s3://your-company/okera/audit/"
      WATCHER_S3_REGION: "us-east-1"
      WATCHER_S3_ENCRYPT: "true"
      WATCHER_AUDIT_UPLOAD_INTERVAL_SEC: "15"
      

      替换以下内容:

      • your-company:您的 S3 存储桶名称
      • us-east-1:您的 AWS 区域
    • 对于 Google Cloud Storage

      WATCHER_LOG_DST_DIR: "gs://your-company/okera/ops/"
      WATCHER_AUDIT_LOG_DST_DIR: "gs://your-company/okera/audit/"
      WATCHER_AUDIT_UPLOAD_INTERVAL_SEC: "15"
      

      替换以下内容:

      • your-company:您的 GCS 存储桶名称
    • 对于 Azure Data Lake Storage Gen2

      WATCHER_LOG_DST_DIR: "abfs://okera-ops@yourstorageaccount.dfs.core.windows.net/"
      WATCHER_AUDIT_LOG_DST_DIR: "abfs://okera-audit@yourstorageaccount.dfs.core.windows.net/"
      WATCHER_AUDIT_UPLOAD_INTERVAL_SEC: "15"
      

      替换以下内容:

      • yourstorageaccount:您的 Azure 存储账号名称
      • okera-opsokera-audit:您的容器名称
  4. 保存配置文件。

  5. 使用 Helm 图表更新 Okera 集群:

    helm upgrade okera okera/okera -f your-config.yaml
    
  6. 验证审核日志是否正在写入到配置的位置:

    • 对于 S3

      aws s3 ls s3://your-company/okera/audit/
      
    • 对于 GCS

      gsutil ls gs://your-company/okera/audit/
      
    • 对于 Azure

      az storage blob list --account-name yourstorageaccount --container-name okera-audit
      

审核日志格式

Okera 审核日志以 JSON 格式写入,具有以下特征:

  • 每个文件包含多个 JSON 记录,每行一个(NDJSON 格式)
  • 记录包括所有数据访问事件、政策更改和管理操作
  • 文件按日期在存储位置中整理
  • okera_system.audit_logs 数据集提供了一个可查询的审核数据视图

为 Google SecOps 配置云存储访问权限

请根据您的云存储平台,按照下面的相应指南操作:

对于 Amazon S3

  1. 创建一个 IAM 用户,该用户对包含 Okera 审核日志的 S3 存储桶具有读取权限。
  2. 按照 AWS S3 配置指南 中的步骤执行以下操作:
    • 创建 IAM 用户
    • 生成访问密钥
    • 授予 AmazonS3ReadOnlyAccess 或具有 s3:GetObjects3:ListBucket 权限的自定义政策

对于 Google Cloud Storage

  1. 检索 Google SecOps 服务帐号电子邮件地址:

    1. 前往 SIEM 设置 > Feed
    2. 点击 Add New Feed (添加新 Feed)。
    3. 点击 Configure a single feed (配置单个 Feed)。
    4. 输入 Feed 的名称(例如 okera-audit-logs)。
    5. 选择 Google Cloud Storage V2 作为来源类型
    6. 选择 Okera DAP 作为日志类型
    7. 点击 Get Service Account (获取服务账号)。
    8. 复制显示的服务帐号电子邮件地址。
  2. 向服务帐号授予对 GCS 存储桶的访问权限:

    1. 在 GCP Console 中,前往 Cloud Storage > 存储分区
    2. 点击包含 Okera 审核日志的存储桶。
    3. 前往权限 标签页。
    4. 点击授予访问权限
    5. 添加主账号中,粘贴 Google SecOps 服务帐号电子邮件地址。
    6. 分配角色 中,选择 Storage Object Viewer
    7. 点击保存

对于 Azure Blob Storage

  1. 检索存储账号访问密钥:

    1. 在 Azure 门户中,前往您的存储账号
    2. 安全性 + 网络 下,选择访问密钥
    3. 点击显示密钥
    4. 复制密钥 1密钥 2
  2. 记下 Blob 服务端点:

    • 格式:https://yourstorageaccount.blob.core.windows.net/

在 Google SecOps 中配置 Feed 以注入 Okera ODAP 审核日志

对于 Amazon S3

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

    • S3 URIs3://your-company/okera/audit/
    • 来源删除选项:选择从不(建议保留审核日志)
    • 最长文件存在时间:包含在过去指定天数内修改的文件(默认值为 180 天)
    • 访问密钥 ID:具有对 S3 存储桶的读取权限的 IAM 用户访问密钥
    • 私有访问密钥:IAM 用户私有密钥
    • 资产命名空间资产命名空间
    • 注入标签:要应用于此 Feed 中的事件的标签
  9. 点击下一步 ,然后点击提交

对于 Google Cloud Storage

  1. 前往 SIEM 设置 > Feed
  2. 点击 Add New Feed (添加新 Feed)。
  3. 点击 Configure a single feed (配置单个 Feed)。
  4. Feed 名称 输入唯一名称(例如 okera-audit-gcs)。
  5. 选择 Google Cloud Storage V2 作为来源类型
  6. 选择 Okera DAP 作为日志类型
  7. 点击下一步
  8. 为以下字段指定值:

    • 存储桶网址gs://your-company/okera/audit/
    • 来源删除选项:选择从不(建议保留审核日志)
    • 最长文件存在时间:包含在过去指定天数内修改的文件(默认值为 180 天)
    • 资产命名空间资产命名空间
    • 注入标签:要应用于此 Feed 中的事件的标签
  9. 点击下一步 ,然后点击提交

对于 Azure Blob Storage

  1. 前往 SIEM 设置 > Feed
  2. 点击 Add New Feed (添加新 Feed)。
  3. 点击 Configure a single feed (配置单个 Feed)。
  4. Feed 名称 输入唯一名称(例如 okera-audit-azure)。
  5. 选择 Microsoft Azure Blob Storage V2 作为来源类型
  6. 选择 Okera DAP 作为日志类型
  7. 点击下一步
  8. 为以下字段指定值:

    • Azure URIhttps://yourstorageaccount.blob.core.windows.net/okera-audit/
    • 来源删除选项:选择从不(建议保留审核日志)
    • 最长文件存在时间:包含在过去指定天数内修改的文件(默认值为 180 天)
    • 共享密钥:存储账号访问密钥
    • 资产命名空间资产命名空间
    • 注入标签:要应用于此 Feed 中的事件的标签
  9. 点击下一步 ,然后点击提交

验证审核日志注入

  1. 等待 10-15 分钟,让初始注入完成。
  2. 前往 Google SecOps 中的搜索
  3. 运行搜索查询,验证 Okera 审核日志是否正在注入:

    metadata.vendor_name = "Okera"
    
  4. 验证事件是否显示最近的时间戳。

  5. 查看 Feed 状态:

    1. 前往 SIEM 设置 > Feed
    2. 找到您的 Okera 审核 Feed。
    3. 验证状态 是否显示有效
    4. 查看上次成功注入 时间戳。

问题排查

Google SecOps 中未显示任何日志

  • 验证 Okera 是否正在将审核日志写入到配置的云存储位置
  • 检查 Feed 配置中的存储路径是否与 WATCHER_AUDIT_LOG_DST_DIR 设置匹配
  • 验证云存储权限是否已正确配置
  • 查看 Feed 状态以了解错误消息

权限错误

  • S3:验证 IAM 用户是否具有 s3:GetObjects3:ListBucket 权限
  • GCS:验证 Google SecOps 服务帐号是否具有 Storage Object Viewer 角色
  • Azure:验证存储账号访问密钥是否正确且未过期

Okera 未写入审核日志

  • 验证 WATCHER_AUDIT_LOG_DST_DIR 配置是否已正确设置
  • 检查 Okera 集群是否具有对云存储位置的写入权限
  • 验证 Helm 图表更新是否已成功应用
  • 检查 Okera 集群日志中是否存在与审核日志上传相关的错误

迁移到 Databricks Unity Catalog

如果您计划从 Okera ODAP 迁移到 Databricks Unity Catalog,请执行以下操作:

  1. 查看 Databricks Unity Catalog 审核日志文档
  2. 将 Unity Catalog 审核日志配置为传送到云存储
  3. 为 Unity Catalog 审核日志创建新的 Google SecOps Feed
  4. 在迁移期间维护这两个 Feed
  5. 迁移完成后,停用 Okera Feed

如需获得 Okera ODAP 或迁移到 Unity Catalog 方面的帮助,请与 Databricks 支持团队联系。

UDM 映射表

日志字段 UDM 映射 逻辑
extensions.auth.type extensions.auth.type 身份验证类型
json_entry.request_time metadata.event_timestamp 事件发生时的时间戳
metadata.event_type metadata.event_type 事件类型
json_entry.statement_type metadata.product_event_type 特定于产品的事件类型
metadata.product_name metadata.product_name 产品名称
metadata.vendor_name metadata.vendor_name 供应商/公司名称
json_entry.session_id network.session_id 会话标识符
json_entry.connected_user principal.user.userid 用户标识符
json_entry.auth_failure security_result.action 执行的操作
json_entry.status security_result.summary 安全结果摘要
json_entry.client_application target.application 应用名称
json_entry.client_network_address target.ip IP 地址
json_entry.client_network_address target.port 端口号
json_entry.request_id target.resource.attribute.labels 资源的属性的键值对
json_entry.num_results_read target.resource.attribute.labels
json_entry.num_results_returned target.resource.attribute.labels
json_entry.peak_memory_usage target.resource.attribute.labels
json_entry.statement target.resource.attribute.labels
json_entry.bytes_scanned target.resource.attribute.labels
json_entry.for_reporting target.resource.attribute.labels
json_entry.auth_failure target.resource.attribute.labels
json_entry.default_db target.resource.name 资源的名称
target.resource.resource_type target.resource.resource_type 资源类型
json_entry.user target.user.userid 用户标识符

更新日志

查看此解析器的更新日志

需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。