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

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

从中收集数据 AWS 服务

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

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

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

  • Amazon Route 53 resolver 查询日志

  • AWS Security Hub 调查结果

  • Amazon Virtual Private Cloud (Amazon VPC) 流日志

  • AWS WAF v2 日志

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

CloudTrail 事件日志

AWS CloudTrail 为您提供账户的 AWS API 调用历史记录,包括使用、 AWS 软件开发工具包 AWS Management Console、命令行工具和某些 AWS 服务进行的 API 调用。 CloudTrail 还允许您识别哪些用户和账户为支持的服务调用了 AWS API CloudTrail、发出呼叫的源 IP 地址以及调用的发生时间。有关更多信息,请参阅 AWS CloudTrail 《用户指南》

Security Lake 可以收集与 S3 和 Lambda 的 CloudTrail 管理事件和 CloudTrail 数据事件相关的日志。 CloudTrail 管理事件、S3 数据事件和 Lambda 数据事件是安全湖中的三个独立来源。因此,当您将其中一个添加为摄取日志源时,它们的 sourceName 会显示不同的值。管理事件(也称为控制平面事件)可让您深入了解对中的资源执行的管理操作 AWS 账户。 CloudTrail 数据事件,也称为数据平面操作,显示对您的资源或资源内部执行的资源操作 AWS 账户。这些操作通常是大规模活动。

要在 Security Lake 中收集 CloudTrail 管理事件,您必须至少有一个用于收集读取和写入 CloudTrail 管理事件的 CloudTrail多区域组织跟踪。您必须为该跟踪启用日志记录。如果您在其他服务中配置了日志记录,那么您无需更改日志记录配置即可将其添加为 Security Lake 中的日志源。Security Lake 会通过独立且重复的事件流直接从这些服务中拉取数据。

多区域跟踪可将多个区域的日志文件传输到单个 AWS 账户的单个 Amazon Simple Storage Service (Amazon S3) 桶中。如果您已经通过 CloudTrail 控制台或管理了多区域跟踪 AWS Control Tower,则无需采取进一步的操作。

  • 有关创建和管理通过跟踪的信息 CloudTrail,请参阅《AWS CloudTrail 用户指南》中的为组织创建跟踪

  • 有关创建和管理通过跟踪的信息 AWS Control Tower,请参阅《AWS Control Tower 用户指南》 AWS CloudTrail中的使用记录 AWS Control Tower 操作

当您将 CloudTrail 事件添加为来源时,Security Lake 会立即开始收集您的 CloudTrail 事件日志。它 CloudTrail 通过独立且重复的事件流直接使用 CloudTrail 管理和数据事件。

Security Lake 不会管理您的 CloudTrail 事件,也不会影响您的现有 CloudTrail 配置。要直接管理 CloudTrail 事件的访问和保留,必须使用 CloudTrail 服务控制台或 API。有关更多信息,请参阅AWS CloudTrail 用户指南中的使用 CloudTrail 事件历史记录查看事件

以下列表提供了指向映射参考的 GitHub 存储库链接,以了解 Security Lake 如何将 CloudTrail 事件标准化为 OCSF。

GitHub OCSF 事件存储库 CloudTrail

亚马逊 EKS 审核日志

当您将 Amazon EKS 审计日志添加为来源时,Security Lake 会开始收集有关在弹性 Kubernetes 服务 (EKS) 集群中运行的 Kubernetes 资源上执行的活动的深入信息。EKS 审核日志可帮助您在 Amazon Elastic Kubernetes Service 中检测您的 EKS 集群中可能存在的可疑活动。

Security Lake 通过独立且重复的审计日志流直接使用 Amazon EKS 控制平面日志记录功能中的 EKS 审核日志事件。此过程旨在无需额外设置,也不影响您可能拥有的现有 Amazon EKS 控制平面日志配置。有关更多信息,请参阅《Amazon EKS 用户指南》中的 Amazon EKS 控制面板日志

只有 OCSF v1.1.0 支持 Amazon EKS 审核日志。有关 Security Lake 如何将 EKS 审核日志事件标准化为 OCSF 的信息,请参阅 GitHub OCSF 存储库中针对 Amazon EKS 审核日志事件 (v1.1.0) 的映射参考。

Route 53 Resolver 查询日志

Route 53 Resolver 查询日志可以跟踪由 Amazon Virtual Private Cloud (Amazon VPC) 中的资源进行的 DNS 查询。这可以帮助您了解应用程序的运行情况并发现安全威胁。

在 Security Lake 中添加 Route 53 Resolver 查询日志作为来源时,Security Lake 会立即开始通过独立且重复的事件流直接从 Route 53 收集 Resolver 查询日志。

Security Lake 不会管理您的 Route 53 日志,也不会影响现有的 Resolver 查询日志配置。要管理 Resolver 查询日志,您必须使用 Route 53 服务控制台。有关更多信息,请参阅《Amazon Route 53 开发人员指南》中的管理 Resolver 查询日志记录配置

以下列表提供了指向映射参考的 GitHub 存储库链接,以了解 Security Lake 如何将 Route 53 日志标准化为 OCSF。

GitHub 存放 Route 53 日志的 OCSF 存储库

Security Hub 调查发现

Security Hub 的调查结果可帮助您了解自己的安全状况, AWS 并允许您根据安全行业标准和最佳实践检查您的环境。Security Hub 从各种来源收集调查结果,包括与其他第三方产品集成的集成 AWS 服务,以及对照 Security Hub 控制措施进行检查。Security Hub 以一种名为 AWS 安全调查结果格式 (ASFF) 的标准格式处理调查结果。

当您在 Security Lake 中添加 Security Hub 调查发现作为来源时,Security Lake 会立即开始通过独立且重复的事件流直接从 Security Hub 收集您的调查发现。Security Lake 还会将调查发现从 ASFF 转换为开放式网络安全架构框架 (OCSF) (OCSF)。

Security Lake 不会管理您的 Security Hub 调查发现,也不会影响您的 Security Hub 设置。要管理 Security Hub 的调查结果,必须使用 Security Hub 服务控制台、API 或 AWS CLI。有关更多信息,请参阅《AWS Security Hub 用户指南》中的 AWS Security Hub中的调查发现

以下列表提供了指向映射参考的 GitHub 存储库链接,以了解 Security Lake 如何将 Security Hub 的调查结果标准化为 OCSF。

GitHub OCSF 存储库,用于存放 Security Hub 调查结果

Amazon VPC 流日志

Amazon VPC 的 VPC 流日志功能可以捕获环境中进出网络接口的 IP 流量信息。

当您在 Security Lake 中添加 VPC 流日志作为来源时,Security Lake 会立即开始收集 VPC 流日志。它通过独立且重复的流日志流直接使用来自 Amazon VPC 的 VPC 流日志。

Security Lake 不会管理您的 VPC 流日志,也不会影响您的 Amazon VPC 配置。要管理流日志,您必须使用 Amazon VPC 服务控制台。有关更多信息,请参阅《Amazon VPC 开发人员指南》中的使用流日志

以下列表提供了指向映射参考的 GitHub 存储库链接,以了解 Security Lake 如何将 VPC 流日志标准化为 OCSF。

GitHub 用于 VPC 流日志的 OCSF 存储库

AWS WAF 日志

当你在 Security Lake 中添加 AWS WAF 为日志源时,Security Lake 会立即开始收集日志。 AWS WAF 是一种 Web 应用程序防火墙,可用于监控最终用户向您的应用程序发送的 Web 请求并控制对您的内容的访问。记录的信息包括从您的 AWS 资源 AWS WAF 收到网络请求的时间、有关该请求的详细信息以及请求匹配的规则的详细信息。

Security Lake AWS WAF 通过独立且重复的 AWS WAF 日志流直接使用日志。此过程旨在无需进行额外设置,也不影响您可能拥有的现有 AWS WAF 配置。有关如何使用 AWS WAF 来保护应用程序资源的更多信息,请参阅《 AWS WAF 开发人员指南》中的AWS WAF 工作原理

重要

如果您使用 Amazon CloudFront 分发作为中的资源类型 AWS WAF,则必须选择美国东部(弗吉尼亚北部)才能在 Security Lake 中提取全球日志。

AWS WAF 只有 OCSF v1.1.0 支持日志。有关 Security Lake 如何将 AWS WAF 日志事件标准化为 OCSF 的信息,请参阅 OCSF AWS WAF 日志存储库 (v1. GitHub 1.0) 中的映射参考。

将添加 AWS 服务 为来源

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

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 服务 为源,请使用 Security Lake 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"

更新角色权限

如果您没有所需的角色权限或资源(新 AWS Lambda 函数和 Amazon Simple Queue Service (Amazon SQS) Simple Queue Service 队列),无法从新版本的数据源摄取数据,则必须更新角色权限并创建一组新的资源来处理来自AmazonSecurityLakeMetaStoreManagerV2您的源的数据。

选择您的首选方法,然后按照说明更新您的角色权限并创建新资源来处理来自指定区域中新版本 AWS 日志源的数据。这是一次性操作,因为权限和资源会自动应用于 future 的数据源版本。

Console
更新角色权限(控制台)
  1. 打开 Security Lake 控制台:https://console.aws.amazon.com/securitylake/

    使用委派 Security Lake 管理员的凭证进行登录。

  2. 在导航窗格中的设置下,选择常规

  3. 选择 “更新角色权限”

  4. 在 “服务访问权限” 部分,执行以下任一操作:

    • 创建和使用新的服务角色-您可以使用由 Security Lake 创建的 AmazonSecurityLakeMetaStoreManagerV2 角色。

    • 使用现有的服务角色-您可以从服务角色名称列表中选择现有的服务角色

  5. 选择 应用

API

更新角色权限 (API)

要以编程方式更新权限,请使用 Security Lake API 的UpdateDataLake操作。要使用更新权限 AWS CLI,请运行update-data-lake命令。

要更新您的角色权限,必须将AmazonSecurityLakeMetastoreManager策略附加到该角色。

删除 AmazonSecurityLakeMetaStoreManager 角色

重要

将角色权限更新为后AmazonSecurityLakeMetaStoreManagerV2,请先确认数据湖是否正常运行,然后再移除旧AmazonSecurityLakeMetaStoreManager角色。建议至少等待 4 小时后再移除角色。

如果您决定删除该角色,则必须先从中删除该AmazonSecurityLakeMetaStoreManager角色 AWS Lake Formation。

按照以下步骤从 Lake Formation 控制台中移除该AmazonSecurityLakeMetaStoreManager角色。

  1. 登录并打开 Lake AWS Management Console Formation 控制台,网址为 https://console.aws.amazon.com/lakeformation/

  2. 在 Lake Formation 控制台的导航窗格中,选择管理角色和任务

  3. AmazonSecurityLakeMetaStoreManager从每个区域中删除。

移除 AWS 服务 作为来源的

选择您的访问方法,然后按照以下步骤删除原生支持的 Security L AWS 服务 ake 源。您可以移除一个或多个区域的来源。移除来源后,Security Lake 将停止从指定区域和账户中的来源收集数据,订阅用户也无法再从来源获取新数据。但是,订阅用户仍然可以获取 Security Lake 在该来源被移除之前从中收集的数据。您只能使用这些说明删除原生支持的源代码 AWS 服务 。有关移除自定义来源的更多信息,请参阅从自定义源收集数据

Console
  1. 打开 Security Lake 控制台:https://console.aws.amazon.com/securitylake/

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

  3. 选择一个来源,然后选择禁用

  4. 选择要停止从该来源收集数据的一个或多个区域。Security Lake 将停止从所选区域中的所有账户的来源收集数据。

API

要以编程方式将 AWS 服务 作为来源删除,请使用 Security Lake API 的DeleteAwsLogSource操作。如果你使用的是 AWS Command Line Interface (AWS CLI),请运行 delete-aws-log- source 命令。sourceNameregions 参数是必需的。或者,您可以将删除范围限制为特定accounts或特定sourceVersion

重要

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

以下示例删除了指定账户和区域中的 VPC 流日志作为来源。

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

以下示例删除了指定账户和区域中作为来源的 Route 53。

$ aws securitylake delete-aws-log-source \ --sources sourceName=ROUTE53,accounts='["123456789012"]',regions='["us-east-1", "us-east-2"]',sourceVersion="2.0"

前面的示例是针对 Linux、macOS 或 Unix 进行格式化的,它们使用反斜杠 (\) 行继续符来提高可读性。

获取来源集合的状态

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

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

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

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

API

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

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

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