收集 AWS Control Tower 日志

支持的语言:

本文档介绍了如何将 AWS Control Tower 日志注入到 Google Security Operations 中。借助 AWS Control Tower,您可以跨多个 AWS 账号实现治理、合规性和安全监控。通过此集成,您可以分析 AWS Control Tower 中的日志,从而提高可见性和安全性。

准备工作

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

  • Google SecOps 实例
  • 对 AWS 的特权访问权限

配置 Amazon S3 存储桶

  1. 按照以下用户指南创建 Amazon S3 存储桶创建存储桶
  2. 保存相应存储桶的名称区域以备后用。
  3. 按照以下用户指南创建用户:创建 IAM 用户
  4. 选择创建的用户
  5. 选择安全凭据标签页。
  6. 访问密钥部分中,点击创建访问密钥
  7. 选择第三方服务作为使用情形
  8. 点击下一步
  9. 可选:添加说明标记。
  10. 点击创建访问密钥
  11. 点击 Download CSV file(下载 CSV 文件),保存访问密钥不公开的访问密钥以供日后使用。
  12. 点击完成
  13. 选择权限标签页。
  14. 权限政策部分中,点击添加权限
  15. 选择添加权限
  16. 选择直接附加政策
  17. 搜索并选择 AmazonS3FullAccessCloudWatchLogsFullAccess 政策。
  18. 点击下一步
  19. 点击添加权限

在 AWS Control Tower 中配置 CloudTrail

  1. 登录 AWS Management Console
  2. 前往 AWS Control Tower
  3. 在搜索栏中输入 CloudTrail,然后从服务列表中选择该服务。
  4. 点击创建轨迹以创建新轨迹。

  5. 指定试用设置:

    • 跟踪名称:为跟踪提供有意义的名称(例如 ControlTowerTrail)。
    • 将跟踪应用于所有区域:请确保为将跟踪应用于所有区域选择
    • 管理事件:确保将读/写事件设置为全部
    • 可选:数据事件:启用 S3 数据事件和 Lambda 数据事件,以捕获详细的数据活动。
    • 可选:日志文件验证:启用此功能可确保日志文件在存储后不会被篡改。
  6. 事件选择器中,选择记录管理事件数据事件

如何配置 CloudTrail

  1. 前往 AWS IAM 控制台。
  2. 点击角色
  3. 搜索 CloudTrail 使用的角色 AWSServiceRoleForCloudTrail(在您设置 CloudTrail 时,系统会自动创建该角色)。
  4. 在角色的权限标签页中,点击附加政策
  5. 搜索 CloudTrailS3DeliveryPolicy
  6. 选中 CloudTrailS3DeliveryPolicy 政策旁边的复选框。
  7. 点击 Attach policy
  8. 前往 AWS CloudTrail 控制台。
  9. 存储位置部分,选择 S3 作为日志文件的目标位置。
  10. 选择您之前创建的 S3 存储桶
  11. 在系统提示您授予 CloudTrail 向所选存储桶写入日志的权限时,点击允许
  12. 检查您的设置,然后点击创建(如果您要修改现有轨迹,请点击保存更改)。

设置 Feed

您可以通过两种不同的入口点在 Google SecOps 平台中设置 Feed:

  • SIEM 设置 > Feed
  • 内容中心 > 内容包

通过“SIEM 设置”>“Feed”设置 Feed

如需为相应产品系列中的不同日志类型配置多个 Feed,请参阅按产品配置 Feed

如需配置单个 Feed,请按以下步骤操作:

  1. 依次前往 SIEM 设置> Feed
  2. 点击添加新 Feed
  3. 在下一页上,点击配置单个 Feed
  4. Feed 名称字段中,输入 Feed 的名称(例如 AWS Control Tower 日志)。
  5. 选择 Amazon S3 作为来源类型
  6. 选择 AWS Control Tower 作为日志类型
  7. 点击下一步
  8. 为以下输入参数指定值:

    • 区域:Amazon S3 存储桶所在的区域。
    • S3 URI:存储桶 URI。
      • s3://your-log-bucket-name/
        • your-log-bucket-name 替换为您的 S3 存储桶的实际名称。
    • URI is a:根据您的存储桶结构,选择目录目录(包括子目录)
    • 源删除选项:根据您的提取偏好设置选择删除选项。

    • 访问密钥 ID:有权从 S3 存储桶读取数据的用户的访问密钥。

    • 私有访问密钥:具有从 S3 存储桶读取权限的用户的私有密钥。

    • 资源命名空间资源命名空间

    • 注入标签:要应用于此 Feed 中事件的标签。

  9. 点击下一步

  10. 最终确定界面中查看新的 Feed 配置,然后点击提交

设置来自内容中心的 Feed

为以下字段指定值:

  • 区域:Amazon S3 存储桶所在的区域。
  • S3 URI:存储桶 URI。
    • s3://your-log-bucket-name/
      • your-log-bucket-name 替换为您的 S3 存储桶的实际名称。
  • URI is a:根据您的存储桶结构,选择目录目录(包括子目录)
  • 源删除选项:根据您的提取偏好设置选择删除选项。
  • 访问密钥 ID:有权从 S3 存储桶读取数据的用户的访问密钥。

  • 私有访问密钥:具有从 S3 存储桶读取权限的用户的私有密钥。

高级选项

  • Feed 名称:用于标识 Feed 的预填充值。
  • 来源类型:用于将日志收集到 Google SecOps 中的方法。
  • 资产命名空间与 Feed 关联的命名空间
  • 提取标签:应用于相应 Feed 中所有事件的标签。

UDM 映射表

日志字段 UDM 映射 逻辑
awsAccountId target.user.group_identifiers 与事件关联的 AWS 账号 ID。
digestPublicKeyFingerprint target.file.sha1 用于对摘要进行签名的公钥的指纹。
digestPublicKeyFingerprint target.resource.attribute.labels.value 用于对摘要进行签名的公钥的指纹。
digestS3Bucket target.resource.name 存储摘要的 S3 存储桶的名称。
digestS3Object target.file.full_path S3 存储桶中摘要对象的路径。
digestSignatureAlgorithm network.tls.cipher 用于签署摘要的算法。
digestSignatureAlgorithm target.resource.attribute.labels.value 用于签署摘要的算法。
digestStartTime metadata.event_timestamp 摘要时间段的开始时间。如果 eventTime 不可用,则用作事件时间。
eventCategory security_result.category_details 事件的类别。
eventID metadata.product_log_id 活动的唯一 ID。
eventName metadata.product_event_type 活动的名称。
eventName security_result.summary 用于生成安全结果摘要的事件的名称。
eventSource target.application 事件的来源。
eventTime metadata.event_timestamp 事件发生的时间。
eventType additional.fields.value.string_value 事件的类型。
logFiles.hashValue about.file.sha256 相应日志文件的 SHA-256 哈希值。
logFiles.s3Bucket about.resource.name 存储日志文件的 S3 存储桶的名称。
logFiles.s3Object about.file.full_path S3 存储桶中日志文件对象的路径。
previousDigestHashValue target.file.sha256 上一个摘要的 SHA-256 哈希值。
recipientAccountId target.resource.attribute.labels.value 事件接收者的 AWS 账号 ID。
Records.awsRegion principal.location.name 发生事件的 AWS 区域。
Records.errorCode security_result.rule_id 与请求关联的错误代码(如果有)。
Records.errorMessage security_result.description 与请求关联的错误消息(如果有)。
Records.eventCategory security_result.category_details 事件的类别。
Records.eventID metadata.product_log_id 活动的唯一 ID。
Records.eventName metadata.product_event_type 活动的名称。
Records.eventName security_result.summary 用于生成安全结果摘要的事件的名称。
Records.eventSource target.application 事件的来源。
Records.eventTime metadata.event_timestamp 事件发生的时间。
Records.eventType additional.fields.value.string_value 事件的类型。
Records.requestID target.resource.attribute.labels.value 相应请求的 ID。
Records.requestParameters.groupName target.group.group_display_name 与请求关联的群组的名称(如有)。
Records.requestParameters.userName src.user.userid 与请求关联的用户的名称(如有)。
Records.requestParameters.userName src.user.user_display_name 与请求关联的用户的名称(如有)。
Records.responseElements.ConsoleLogin security_action 控制台登录尝试的结果。
Records.responseElements.ConsoleLogin security_result.summary 控制台登录尝试的结果,用于生成安全结果摘要。
Records.sourceIPAddress principal.hostname 主账号的 IP 地址。如果不是有效的 IP,则用作主机名。
Records.sourceIPAddress principal.ip 主账号的 IP 地址。
Records.tlsDetails.cipherSuite network.tls.cipher 用于 TLS 连接的加密套件。
Records.tlsDetails.tlsVersion network.tls.version 用于连接的 TLS 版本。
Records.userAgent network.http.user_agent 请求的用户代理。
Records.userIdentity.accessKeyId additional.fields.value.string_value 用于请求的访问密钥 ID。
Records.userIdentity.accountId principal.user.group_identifiers 用户的 AWS 账号 ID。
Records.userIdentity.arn principal.user.attribute.labels.value 用户的 ARN。
Records.userIdentity.arn target.user.userid 用户的 ARN。如果 userName 不可用,则用作 userid。
Records.userIdentity.principalId principal.user.product_object_id 用户的委托人 ID。
Records.userIdentity.sessionContext.attributes.mfaAuthenticated principal.user.attribute.labels.value 是否为相应请求使用了 MFA。
Records.userIdentity.sessionContext.sessionIssuer.userName principal.user.userid 发出会话的用户名。
Records.userIdentity.type principal.resource.type 用于请求的身份类型。
Records.userIdentity.userName target.user.userid 用户的用户名。
- extensions.auth.mechanism 设置为“REMOTE”。
- metadata.event_type 根据 eventName 设置为“STATUS_UPDATE”“USER_RESOURCE_ACCESS”“USER_LOGIN”或“GENERIC_EVENT”。
- metadata.log_type 设置为“AWS_CONTROL_TOWER”。
- metadata.product_name 设置为“AWS Control Tower”。
- metadata.vendor_name 设置为“AWS”。
- principal.asset.attribute.cloud.environment 设置为“AMAZON_WEB_SERVICES”。
- security_result.action 根据 errorCode 设置为“ALLOW”或“BLOCK”。
- security_result.severity 设置为“INFORMATIONAL”。

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