

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

# 从 Security Lake AWS 服务 中收集数据
<a name="internal-sources"></a>

Amazon Security Lake 可以从以下原生支持的 AWS 服务中收集日志和事件：
+ AWS CloudTrail 管理和数据事件（S3、Lambda）
+ 亚马逊 Elastic Kubernetes Service（亚马逊 EKS）审核日志
+ Amazon Route 53 resolver 查询日志
+ AWS Security Hub CSPM 调查结果
+ Amazon Virtual Private Cloud (Amazon VPC) 流日志
+ AWS WAF v2 日志

Security Lake 会自动将这些数据转换为[安全湖中的开放网络安全架构框架 (OCSF)](open-cybersecurity-schema-framework.md) 和 Apache Parquet 格式。

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



## 先决条件：验证权限
<a name="add-internal-sources-permissions"></a>

要将 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`和权限。

------
#### [ 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 服务 为来源
<a name="add-internal-sources"></a>

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

------
#### [ Console ]

**添加 AWS 日志源（控制台）**

1. 在上打开 Security Lake 控制台[https://console.aws.amazon.com/securitylake/](https://console.aws.amazon.com/securitylake/)。

1. 从导航窗格中选择**来源**。

1. 选择 AWS 服务 要从中收集数据的，然后选择**配置**。

1. 在**源设置**部分，启用源并选择要用于数据摄取的数据源的**版本**。默认情况下，最新版本的数据源由 Security Lake 摄取。
**重要**  
如果您没有在指定区域启用新版本 AWS 日志源所需的角色权限，请联系您的 Security Lake 管理员。有关更多信息，请参阅[更新角色权限](https://docs.aws.amazon.com/security-lake/latest/userguide/internal-sources.html#update-role-permissions)。

   要让订阅者获取所选版本的数据源，您还必须更新订阅者设置。有关如何编辑订阅者的详细信息，请参阅 [Amazon Security Lake 中的订阅者管理](https://docs.aws.amazon.com//security-lake/latest/userguide/subscriber-management.html)。

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

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

1. 选择**启用**。

------
#### [ API ]

**添加 AWS 日志源 (API)**

要以编程方式将添加 AWS 服务 为源，请使用 Security Lake API 的[CreateAwsLogSource](https://docs.aws.amazon.com/security-lake/latest/APIReference/API_CreateAwsLogSource.html)操作。如果您使用的是 AWS Command Line Interface (AWS CLI)，请运行该[create-aws-log-source](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/securitylake/create-aws-log-source.html)命令。`sourceName` 和 `regions` 参数是必需的。或者，您可以将来源的范围限制为特定`accounts`或特定`sourceVersion`。

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

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

**注意**  
如果您将此请求应用于尚未启用 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"
```

------

## 获取来源集合的状态
<a name="get-status-internal-sources"></a>

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

------
#### [ Console ]

**获取当前区域中日志收集的状态**

1. 在上打开 Security Lake 控制台[https://console.aws.amazon.com/securitylake/](https://console.aws.amazon.com/securitylake/)。

1. 在导航窗格上，选择**账户**。

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

------
#### [ API ]

要获取当前区域中日志收集的状态，请使用 Security Lake API 的[GetDataLakeSources](https://docs.aws.amazon.com/security-lake/latest/APIReference/API_GetDataLakeSources.html)操作。如果您使用的是 AWS CLI，请运行该[get-data-lake-sources](https://docs.aws.amazon.com/cli/latest/reference/securitylake/get-data-lake-sources.html)命令。对于`accounts`参数，您可以将一个或多个指定 AWS 账户 IDs 为列表。如果您的请求成功，Security Lake 将返回当前区域中这些账户的快照，包括 Security Lake 正在从哪些 AWS 来源收集数据以及每个来源的状态。如果您不包含`accounts`参数，则响应将包含当前区域中配置了 Security Lake 的所有账户的日志收集状态。

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

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

------

## 移除 AWS 服务 作为来源的
<a name="remove-internal-sources"></a>

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

------
#### [ Console ]

1. 在上打开 Security Lake 控制台[https://console.aws.amazon.com/securitylake/](https://console.aws.amazon.com/securitylake/)。

1. 从导航窗格中选择**来源**。

1. 选择一个来源，然后选择**禁用**。

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

------
#### [ API ]

要以编程方式将 AWS 服务 作为来源删除，请使用 Security Lake API 的[DeleteAwsLogSource](https://docs.aws.amazon.com/security-lake/latest/APIReference/API_DeleteAwsLogSource.html)操作。如果您使用的是 AWS Command Line Interface (AWS CLI)，请运行该[delete-aws-log-source](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/securitylake/delete-aws-log-source.html)命令。`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 进行格式化的，它们使用反斜杠 (\$1) 行继续符来提高可读性。

------