View a markdown version of this page

从中收集数据 AWS 服务 在安全湖中 - Amazon Security Lake

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

从中收集数据 AWS 服务 在安全湖中

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

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

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

  • Amazon Route 53 resolver 查询日志

  • AWS Security Hub CSPM 发现

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

  • AWS WAF v2 日志

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

提示

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

先决条件:验证权限

要在 S AWS 服务 ecurity 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和资源范围。

JSON
{ "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 服务 并将它们发送到正确的 AWS Glue 数据库和表。

如果您使用 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-sou rce 命令。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

要获取当前区域的日志收集状态,请使用安全湖 API 的GetDataLakeSources操作。如果你使用的是 AWS CLI,请运行 get-data-lake-sou rces 命令。对于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"

正在移除 AWS 服务 作为来源

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

Console
  1. 在以下位置打开 Security Lake 控制台https://console.aws.amazon.com/securitylake/

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

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

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

API

要以编程方式移除 AWS 服务 作为源代码,请使用安全湖 API 的DeleteAwsLogSource操作。如果你使用的是 AWS Command Line Interface (AWS CLI),请运行 delete-aws-log-sou rce 命令。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 格式的,它们使用反斜杠 (\) 续行符来提高可读性。