从 Security Lake AWS 服务 中收集数据 - Amazon Security Lake

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

从 Security Lake AWS 服务 中收集数据

Amazon Security Lake 可以从以下原生支持的 AWS 服务中收集日志和事件:

  • AWS CloudTrail 管理和数据事件(S3、Lambda)

  • 亚马逊 Elastic Kubernetes Service(亚马逊)审核日志 EKS

  • Amazon Route 53 resolver 查询日志

  • AWS Security Hub 调查结果

  • 亚马逊 Virtual Private Cloud(亚马逊VPC)流日志

  • AWS WAF v2 日志

Security Lake 会自动将这些数据转换为在 Security Lake 中打开网络安全架构框架 (OCSF) 和 Apache Parquet 格式。

提示

要将上述一项或多项服务添加为 Security Lake 中的日志源,除了 CloudTrail 管理事件外,无需在这些服务中单独配置日志记录。如果您在这些服务中配置了日志记录,那么您无需更改日志记录配置即可将其添加为 Security Lake 中的日志源。Security Lake 会通过独立且重复的事件流直接从这些服务中拉取数据。

先决条件:验证权限

要将 AWS 服务 作为来源添加到 Security Lake 中,您必须拥有必要的权限。验证附加到用于添加源的角色的 AWS Identity and Access Management (IAM) 策略是否有权执行以下操作:

  • glue:CreateDatabase

  • glue:CreateTable

  • glue:GetDatabase

  • glue:GetTable

  • glue:UpdateTable

  • iam:CreateServiceLinkedRole

  • s3:GetObject

  • s3:PutObject

建议该角色具有以下条件和资源范围,且s3:PutObject具有S3:getObject和权限。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowUpdatingSecurityLakeS3Buckets", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::aws-security-data-lake*", "Condition": { "StringEquals": { "aws:ResourceAccount": "${aws:PrincipalAccount}" } } } ] }

这些操作允许您从收集日志和事件,并将它们发送到正确的 AWS Glue 数据库和表。 AWS 服务

如果您使用 AWS KMS 密钥对数据湖进行服务器端加密,则还需要获得权限。kms:DescribeKey

将添加 AWS 服务 为来源

添加 AWS 服务 为源后,Security Lake 会自动开始从中收集安全日志和事件。这些说明告诉你如何在 Security Lake 中添加原生支持的 AWS 服务 源代码。有关添加自定义源的说明,请参阅从 Security Lake 中的自定义来源收集数据

Console
添加 AWS 日志源(控制台)
  1. 在上打开 Security Lake 控制台https://console.aws.amazon.com/securitylake/

  2. 从导航窗格中选择来源

  3. 选择 AWS 服务 要从中收集数据的,然后选择配置

  4. 源设置部分,启用源并选择要用于数据摄取的数据源的版本。默认情况下,最新版本的数据源由 Security Lake 摄取。

    重要

    如果您没有在指定区域启用新版本 AWS 日志源所需的角色权限,请联系您的 Security Lake 管理员。有关更多信息,请参阅更新角色权限

    要让订阅者获取所选版本的数据源,您还必须更新订阅者设置。有关如何编辑订阅者的详细信息,请参阅 Amazon Security Lake 中的订阅者管理

    或者,您可以选择仅采集最新版本,并禁用所有以前用于数据摄取的源版本。

  5. 在 “区域” 部分中,选择要为源收集数据的区域。Security Lake 将从所选区域中的所有账户的来源收集数据。

  6. 选择启用

API

添加 AWS 日志源 (API)

要以编程方式将添加 AWS 服务 为源,请使用安全湖API的CreateAwsLogSource操作。如果您使用的是 AWS Command Line Interface (AWS CLI),请运行该create-aws-log-source命令。sourceNameregions 参数是必需的。或者,您可以将来源的范围限制为特定accounts或特定sourceVersion

重要

当你没有在命令中提供参数时,Security Lake 会假设缺少的参数指的是整个参数集。例如,如果您未提供accounts参数,则该命令将应用于组织中的整组账户。

以下示例将VPC流日志添加为指定账户和区域中的来源。此示例是针对 Linux、macOS 或 Unix 进行格式化的,它使用反斜杠 (\) 行继续符来提高可读性。

注意

如果您将此请求应用于尚未启用 Security Lake 的区域,则会收到一条错误消息。您可以通过在该区域启用 Security Lake 或使用regions参数仅指定已启用 Security Lake 的区域来解决此错误。

$ aws securitylake create-aws-log-source \ --sources sourceName=VPC_FLOW,accounts='["123456789012", "111122223333"]',regions=["us-east-2"],sourceVersion="2.0"

获取来源集合的状态

选择您的访问方式,然后按照步骤获取当前区域中启用日志收集的账户和来源的快照。

Console
获取当前区域中日志收集的状态
  1. 在上打开 Security Lake 控制台https://console.aws.amazon.com/securitylake/

  2. 在导航窗格上,选择账户

  3. 将光标悬停在 “来源” 列中的数字上,查看为所选账户启用了哪些日志。

API

要获取当前区域中日志收集的状态,请使用安全湖的GetDataLakeSources操作API。如果您使用的是 AWS CLI,请运行get-data-lake-sources命令。对于accounts参数,您可以将一个或多个指定 AWS 账户 IDs为列表。如果您的请求成功,Security Lake 将返回当前区域中这些账户的快照,包括 Security Lake 正在从哪些 AWS 来源收集数据以及每个来源的状态。如果您不包含accounts参数,则响应将包含当前区域中配置了 Security Lake 的所有账户的日志收集状态。

例如,以下 AWS CLI 命令检索当前区域中指定账户的日志收集状态。此示例是针对 Linux、macOS 或 Unix 进行格式化的,它使用反斜杠 (\) 行继续符来提高可读性。

$ aws securitylake get-data-lake-sources \ --accounts "123456789012" "111122223333"