本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
从 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) 策略是否有权执行以下操作:
建议该角色具有以下条件和资源范围,且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 Glue 数据库和表。 AWS 服务
如果您使用 AWS KMS 密钥对数据湖进行服务器端加密,则还需要获得权限。kms:DescribeKey
添加 AWS 服务 作为来源
添加 AWS 服务 为源后,Security Lake 会自动开始从中收集安全日志和事件。这些说明告诉你如何在 Security Lake 中添加原生支持的 AWS 服务 源代码。有关添加自定义源的说明,请参阅从 Security Lake 中的自定义来源收集数据。
- Console
-
- API
-
添加 AWS 日志源 (API)
要以编程方式将添加 AWS 服务 为源,请使用 Security Lake API 的CreateAwsLogSource操作。如果您使用的是 AWS Command Line Interface (AWS CLI),请运行该create-aws-log-source命令。sourceName 和 regions 参数是必需的。或者,您可以将来源的范围限制为特定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
-
- API
-
要获取当前区域中日志收集的状态,请使用 Security Lake API 的GetDataLakeSources操作。如果您使用的是 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"
移除 AWS 服务 作为来源的
选择您的访问方法,然后按照以下步骤删除原生支持的 Security L AWS 服务 ake 源。您可以移除一个或多个区域的来源。移除来源后,Security Lake 将停止从指定区域和账户中的来源收集数据,订阅用户也无法再从来源获取新数据。但是,订阅用户仍然可以获取 Security Lake 在该来源被移除之前从中收集的数据。您只能使用这些说明移除用作来源的原生支持的 AWS 服务 。有关移除自定义来源的更多信息,请参阅从 Security Lake 中的自定义来源收集数据。
- Console
-
- API
-
要以编程方式将 AWS 服务 作为来源删除,请使用 Security Lake API 的DeleteAwsLogSource操作。如果您使用的是 AWS Command Line Interface (AWS CLI),请运行该delete-aws-log-source命令。sourceName 和 regions 参数是必需的。或者,您可以将移除范围限制为特定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 进行格式化的,它们使用反斜杠 (\) 行继续符来提高可读性。