

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

# 直接查询 OpenSearch 服务中的 Amazon Security Lake 数据
<a name="direct-query-security-lake-overview"></a>

本节将引导您完成在 Amazon Ser OpenSearch vice 中创建和配置数据源集成的过程，使您能够高效地查询和分析存储在 Security Lake 中的数据。

在接下来的页面中，您将学习如何设置 Security Lake 直接查询数据源、浏览必要的先决条件，以及如何使用执行 step-by-step程序。 AWS 管理控制台

**Topics**
+ [在 OpenSearch 服务中创建 Amazon Security Lake 数据源集成](direct-query-security-lake-creating.md)
+ [在 OpenSearch 控制面板中配置和查询 Security Lake 数据源](direct-query-security-lake-configure.md)
+ [定价](#direct-query-security-lake-pricing)
+ [限制](#direct-query-security-lake-limitations)
+ [建议](#direct-query-security-lake-recommendations)
+ [配额](#direct-query-security-lake-quotas)
+ [支持的 AWS 区域](#direct-query-security-lake-regions)

# 在 OpenSearch 服务中创建 Amazon Security Lake 数据源集成
<a name="direct-query-security-lake-creating"></a>

您可以使用 Amazon OpenSearch Serverless 直接查询亚马逊安全湖中的安全数据。为此，您需要创建一个数据源，使您能够在 Security Lake 数据上使用 OpenSearch零 ETL 功能。创建数据来源时，您可以直接搜索存储在 Security Lake 中的数据，从中获取见解并分析这些数据。您可以提高查询性能，并使用按需索引对选定的 Security Lake 数据集进行高级 OpenSearch 分析。

**Topics**
+ [先决条件](#direct-query-s3security-lake-prereq)
+ [过程](#direct-query-security-lake-create)
+ [后续步骤](#direct-query-security-lake-next-steps)
+ [其他资源](#direct-query-security-lake-additional-resources)

## 先决条件
<a name="direct-query-s3security-lake-prereq"></a>

开始使用之前，请确保您已阅读以下文档：
+ [限制](direct-query-security-lake-overview.md#direct-query-security-lake-limitations)
+ [建议](direct-query-security-lake-overview.md#direct-query-security-lake-recommendations)
+ [配额](direct-query-security-lake-overview.md#direct-query-security-lake-quotas)

创建数据来源之前，在 Security Lake 中执行以下操作：
+ **启用 Security Lake**。将 Security Lake 配置为收集与您的 OpenSearch 资源 AWS 区域 相同的日志。有关说明，请参阅《Amazon Security Lake 用户指南》中的 [Amazon Security Lake 入门](https://docs.aws.amazon.com/security-lake/latest/userguide/getting-started.html)。
+ **设置 Security Lake 权限**。请确保您已接受资源管理相关的服务关联角色权限，且控制台的**问题**页面未显示任何问题。。有关更多信息，请参阅《Amazon Security Lake 用户指南》中的[Security Lake 服务关联角色](https://docs.aws.amazon.com/security-lake/latest/userguide/using-service-linked-roles.html)。
+ **共享 Security Lake 数据来源**。使用与 Security Lake 相同的账户进行访问时，请确保没有消息要求 OpenSearch 在 Security Lake 控制台中向 Lake Formation 注册您的 Security Lake 存储桶。要进行跨账户 OpenSearch 访问，请在 Security Lake 控制台中设置 Lake Formation 查询订阅者。使用与您的 OpenSearch 资源关联的账户作为订阅者。有关更多信息，请参阅《Amazon Security Lake 用户指南》中的[Security Lake 的订阅用户管理](https://docs.aws.amazon.com/security-lake/latest/userguide/create-query-subscriber-procedures.html)。

此外，您还必须在 AWS 账户中具备以下资源：
+ **（可选）手动创建的 IAM 角色。**您可以使用此角色以管理对数据来源的访问权限。或者，您可以让 S OpenSearch ervice 自动为您创建具有所需权限的角色。如果选择使用手动创建的 IAM 角色，请按照 [手动创建的 IAM 角色所需权限](#direct-query-security-lake-additional-resources-required-permissions) 中的指导进行操作。

## 过程
<a name="direct-query-security-lake-create"></a>

您可以在 AWS 管理控制台中设置数据来源，用于连接 Security Lake 数据库。

### 要使用设置数据源 AWS 管理控制台
<a name="creating-direct-query-security-lake-console-create"></a>

1. 导航到亚马逊 OpenSearch 服务控制台，网址为[https://console.aws.amazon.com/aos/](https://console.aws.amazon.com/aos/)。

1. 在左侧导航窗格中，转到**集中管理**，然后选择**连接的数据来源**。

1. 选择**连接**。

1. 选择 **Security Lake** 作为数据来源类型。

1. 选择**下一步**。

1. 在**数据连接详细信息**下，输入名称和可选描述。

1. 在 **IAM 权限访问设置**下，选择如何管理对数据来源的访问权限。

   1. 如果要自动为此数据来源创建角色，请按照以下步骤操作：

      1. 选择**创建新角色**。

      1. 输入 IAM 角色的名称。

      1. 选择一个或多个 AWS Glue 表来定义可以查询哪些数据。

   1. 如果要使用您自行管理的现有角色，请按照以下步骤操作：

      1. 选择**使用现有角色**。

      1. 从下拉菜单中选择现有角色。
**注意**  
使用自有角色时，您必须通过从 IAM 控制台附加所需策略，确保该角色具备所有必要的权限。有关更多信息，请参阅 [手动创建的 IAM 角色所需权限](#direct-query-security-lake-additional-resources-required-permissions)。

1. （可选）在**标签**下，向数据来源添加标签。

1. 选择**下一步**。

1. 在 “**设置**” 下 OpenSearch，选择设置方式 OpenSearch。

   1. 查看默认资源名称和数据留存设置。

     使用默认设置时，将为您创建一个新的 OpenSearch应用程序和 Essentials 工作区，无需支付额外费用。 OpenSearch 使您能够分析多个数据源。OpenSearch 包含工作区，可为常见使用案例提供量身定制的体验。工作区支持访问控制，使您能够为特定使用案例创建私有空间，并仅与协作伙伴共享。

1. 使用自定义设置：

   1. 选择**自定义**。

   1. 根据需要编辑集合名称和数据留存设置。

   1. 选择要使用的 OpenSearch 应用程序和工作区。

1. 选择**下一步**。

1. 查看您的选择，如需进行任何更改，请选择**编辑**。

1. 选择**连接**以设置数据来源。创建数据来源期间，请留在此页面。准备就绪后，您将进入数据来源详情页面。

## 后续步骤
<a name="direct-query-security-lake-next-steps"></a>

### 访问 OpenSearch 仪表板并创建仪表板
<a name="direct-query-security-lake-next-steps-dashboard"></a>

创建数据源后， OpenSearch 服务会为您提供 OpenSearch仪表板 URL。使用此 URL 通过 SQL 或 PPL 查询数据。Security Lake 集成提供预打包的 SQL 和 PPL 查询模板，助您开始分析日志。

有关更多信息，请参阅 [在 OpenSearch 控制面板中配置和查询 Security Lake 数据源](direct-query-security-lake-configure.md)。

## 其他资源
<a name="direct-query-security-lake-additional-resources"></a>

### 手动创建的 IAM 角色所需权限
<a name="direct-query-security-lake-additional-resources-required-permissions"></a>

创建数据来源时，您可以选择一个 IAM 角色，以管理对数据的访问权限。你有两个选择：

1. 自动创建新的 IAM 角色

1. 使用手动创建的现有 IAM 角色。

如果您使用手动创建的角色，则需为该角色关联正确的权限。这些权限必须允许访问特定的数据源，并允许 S OpenSearch ervice 担任该角色，这样 S OpenSearch ervice 才能安全地访问您的数据并与之交互。此外，向该角色授予您要查询的任何数据库和表的 LakeFormation权限。向该角色`DESCRIBE`授予您要通过直接查询连接进行查询的 SecurityLake数据库的权限。至少向数据来源角色授予数据库中表的 `SELECT and DESCRIBE` 权限。

以下示例策略演示了创建和管理数据来源所需的最低权限。如果您拥有更广泛的权限，例如 `AdminstratorAccess` 策略，则这些权限包含示例策略中的最低权限。

在以下示例政策中，*placeholder text *用您自己的信息替换。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AmazonOpenSearchDirectQueryServerlessAccess",
            "Effect": "Allow",
            "Action": [
                "aoss:APIAccessAll",
                "aoss:DashboardsAccessAll"
            ],
            "Resource": "arn:aws:aoss:us-east-1:111122223333:collection/collectionname/*"
        },
        {
            "Sid": "AmazonOpenSearchDirectQueryGlueAccess",
            "Effect": "Allow",
            "Action": [
                "glue:GetDatabase",
                "glue:GetDatabases",
                "glue:GetPartition",
                "glue:GetPartitions",
                "glue:GetTable",
                "glue:GetTableVersions",
                "glue:GetTables",
                "glue:SearchTables",
                "glue:BatchGetPartition"
            ],
            "Resource": [
                "arn:aws:glue:us-east-1:111122223333:table/databasename/*",
                "arn:aws:glue:us-east-1:111122223333:database/databasename",
                "arn:aws:glue:us-east-1:111122223333:catalog",
                "arn:aws:glue:us-east-1:111122223333:database/default"
            ]
        },
        {
            "Sid": "AmazonOpenSearchDirectQueryLakeFormationAccess",
            "Effect": "Allow",
            "Action": [
                "lakeformation:GetDataAccess"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

该角色还必须具有指定目标 ID 的以下信任策略。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "directquery.opensearchservice.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

有关创建角色的说明，请参阅[使用自定义信任策略创建角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html)。

默认情况下，该角色只能访问直接查询数据来源索引。尽管您可以配置该角色以限制或授予对数据来源的访问权限，但建议不要调整该角色的访问权限。**如果您删除数据来源，该角色也将被删除**。如果任何其他用户被映射到该角色，则将移除其访问权限。

### 查询使用客户托管密钥加密的 Securty Lake 数据
<a name="querying-data-in-cmk-lake"></a>

如果与数据连接关联的 Security Lake 存储桶使用服务器端加密并由客户托管 AWS KMS key，则必须将 LakeFormation 服务角色添加到密钥策略中。这使得该服务能够访问并读取您查询的数据。

在以下示例政策中，*placeholder text *用您自己的信息替换。

```
{
    "Sid": "Allow LakeFormation to access the key",
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam::account:role/aws-service-role/lakeformation.amazonaws.com/AWSServiceRoleForLakeFormationDataAccess"
    },
    "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:DescribeKey"
    ],
    "Resource": "*"
}
```

# 在 OpenSearch 控制面板中配置和查询 Security Lake 数据源
<a name="direct-query-security-lake-configure"></a>

现在，您已经创建了数据源，可以在 OpenSearch 仪表板中对其进行设置。

在查询数据之前，本节将引导您了解 OpenSearch 仪表板中数据源的各种用例。首先，您需要在 OpenSearch 仪表板中导航到您的数据源。在左侧菜单的**管理**下，选择**数据来源**。然后，选择您之前在 OpenSearch 服务控制台中创建的数据源的名称。

## 从 Discover 查询 Security Lake 表
<a name="direct-query-security-lake-query-from-discover"></a>

如果您已根据 Security Lake 日志创建了表，则现在可以直接从 D OpenSearch iscover 中查询这些表。这使您能够直接通过熟悉的 Discover 界面，无缝访问并分析存储在 Security Lake 中的数据。通过在 Discover 中直接查询 Security Lake，您无需手动提取、转换和加载数据到独立的搜索索引中。为快速开始分析日志，Discover 提供一组 PPL 和 SQL 保存的查询。

首先选择您已配置的数据来源。选择要查询的关联数据库和表，然后使用搜索栏编写针对这些表的查询语句。要了解 Security Lake 集成支持哪些语句、命令和限制，请参阅 [支持的 SQL 和 PPL 命令](direct-query-supported-commands.md)。

要利用 Security Lake 提供的预构建查询，请前往 Discover 界面右上角的 **...**，选择**打开查询**，然后选择**模板**。在 Security Lake 支持的日志来源中，有许多预先构建的查询可供使用。搜索与使用案例相匹配的模板，复制要在搜索栏中使用的查询，并将模板字段（如区域和操作）替换为您自己的信息。

## 加速 Discover 的数据
<a name="accelerate-security-lake-data-from-discover"></a>

为了提高性能并在中更快地进行后续查询和分析 OpenSearch，您可以将 Discover 中的查询结果提取到 OpenSearch 索引视图中。

**创建索引视图**

1. 从 Discover 中，选择**创建索引视图**。

1. 在查询编辑器中，输入所需查询。您可以在此处创建新查询，也可以使用先前搜索中的现有查询。

1. 为新的索引视图指定名称。选择描述性名称，以便日后识别该视图。

1. 为索引视图配置数据留存设置。您可以指定数据在索引中保留的时间长度，从而在性能与存储成本之间取得平衡。

1. 创建索引视图。创建完成后，您的索引视图即可用于加快查询和分析。

如果您之前已创建过索引视图，则可以通过 Discover 进行访问。

**使用现有的索引视图**

1. 从 Discover 中，选择**选择索引视图**，以查看 Security Lake 现有索引视图的列表。

1. 选择要使用的索引视图。这会将视图应用于您当前的查询，可能显著加快数据检索和分析速度。

## 为数据来源创建控制面板视图
<a name="direct-query-security-lake-create-dashboard"></a>

使用 S OpenSearch ervice 时，您可以使用预先构建的仪表板模板分析常见的 AWS 日志类型。对于安全湖，有 VPC CloudTrail、和 WAF 日志的模板。这些模板可让您创建专为特定数据量身定制的控制面板。其中包括预先构建的查询以及为特定日志类型量身定制的控制面板。这使您能够快速启动并运行分析这些流行的 AWS 日志源，而不必从头开始构建所有内容。

**注意**  
控制面板使用索引视图，这些视图从 Security Lake 提取数据，并用于直接查询和收集计算。

按照以下步骤，使用其中一个预先构建的模板创建控制面板，以便您立即开始探索和分析数据。

**创建控制面板视图**

1. 导航到亚马逊 OpenSearch 服务控制台，网址为[https://console.aws.amazon.com/aos/](https://console.aws.amazon.com/aos/)。

1. 在左侧导航窗格中，选择**集中管理**，然后选择**连接的数据来源**。

1. 选择数据来源以打开详细信息页面。

1. 请选择**创建控制面板**。

1. 选择要创建的控制面板类型。

1. 输入控制面板的名称。

1. 输入控制面板的可选描述。

1. 选择一个或多个 AWS Glue 表格以在控制面板上查看。

1. 选择刷新控制面板中数据的频率。

1. 选择要使用 OpenSearch 的工作空间。

   1. 要创建新工作区，请选择**创建新工作区**。

   1. 要使用现有工作区，请选择**选择现有工作区**。

1. 为工作区输入名称。

1. 请选择**创建控制面板**。

## 问题排查
<a name="security-lake-troubleshooting"></a>

在某些情况下，返回的结果可能不合预期。如果遇到任何问题，请确保遵循 [建议](direct-query-security-lake-overview.md#direct-query-security-lake-recommendations)。

## 定价
<a name="direct-query-security-lake-pricing"></a>

亚马逊 OpenSearch 服务为安全湖直接查询提供 OpenSearch 计算单位 (OCU) 定价。当你运行直接查询时，你会产生 OCUs 每小时的费用，这些费用列为账单上的 DirectQuery OCU 使用类型。您还将单独向亚马逊安全湖收取费用。

直接查询分为两种类型：交互式查询和索引视图查询。
+ *交互式查询*用于填充数据选择器并对 Security Lake 中的数据进行分析。 OpenSearch Service 使用单独的预热任务处理每个查询，而无需维护延长的会话。
+ *索引视图查询*使用计算来维护服务中的索引视图。 OpenSearch 此类查询通常耗时更长，因为其将不同数量的数据量摄取到指定索引中。对于与 Security Lake 连接的数据源，索引数据存储在 OpenSearch 无服务器集合中，您需要按索引数据 (IndexingOCU)、搜索的数据 (SearchOCU) 和以 GB 为单位存储的数据付费。

有关更多信息，请参阅 [Amazon OpenSearch 服务定价](https://aws.amazon.com/opensearch-service/pricing/)中的 “直接查询” 和 “无服务器” 部分。

## 限制
<a name="direct-query-security-lake-limitations"></a>

以下限制适用于在 Security Lake 中进行直接查询：
+ 与 Security Lake 的直接查询集成仅适用于 OpenSearch 服务集合和 OpenSearch 用户界面。
+ OpenSearch 无服务器集合的网络有效载荷限制为 100 MiB。
+ Security Lake 的表管理在 Lake Formation 中执行。
+ Security Lake 仅支持将实体化视图作为索引视图。不支持覆盖索引。
+ AWS CloudFormation 尚不支持模板。
+ OpenSearch 与使用直接查询相比，SQ OpenSearch L 和 PPL 语句在使用 OpenSearch 索引时有不同的限制。直接查询支持子查询和查找等 JOINs高级命令，而 OpenSearch 索引上对这些命令的支持有限或根本不存在。有关更多信息，请参阅 [支持的 SQL 和 PPL 命令](direct-query-supported-commands.md)。

## 建议
<a name="direct-query-security-lake-recommendations"></a>

在 Security Lake 中使用直接查询时，我们建议采取以下措施：
+ 检查 Security Lake 状态，确保其运行顺畅且无任何问题。有关详细的故障排除步骤，请参阅《Amazon Security Lake 用户指南》中的[数据湖状态故障排除](https://docs.aws.amazon.com/security-lake/latest/userguide/securitylake-data-lake-troubleshoot.html)。
+ 验证查询访问权限：
  + 如果您使用与 Security Lake 委派管理员账户不同的账户查询 Security Lake，则[在 Security Lake 中设置具有查询权限的订阅用户](https://docs.aws.amazon.com/security-lake/latest/userguide/subscriber-query-access.html)。
  + 如果您使用同一个账户查询 Security Lake，请查看 Security Lake 中是否有任何关于向其注册托管 S3 存储桶的 LakeFormation消息。
+ 浏览查询模板和预构建控制面板，快速开始分析。
+ 熟悉开放式网络安全架构框架（OCSF）和 Security Lake：
  + 查看 [OCSF GitHub ](https://github.com/ocsf/examples/tree/main/mappings/markdown/AWS/v1.1.0/CloudTrail) 存储库中 AWS 源的架构映射示例
  + 通过访问[AWS 源版本 2 的 Security Lake 查询 (OCSF 1.1.0)，了解如何有效地查询 Security L](https://docs.aws.amazon.com/security-lake/latest/userguide/subscriber-query-examples2.html) ake
  + 使用分区提高查询性能：`accountid`、`region` 和 `time_dt`
+ 熟悉 SQL 语法，Security Lake 支持使用该语法进行查询。有关更多信息，请参阅 [支持 OpenSearch 的 SQL 命令和函数](supported-directquery-sql.md)。
+ 对查询设置限制，确保不会提取太多数据。

## 配额
<a name="direct-query-security-lake-quotas"></a>


| 说明 | 值 | 软限制？ | 注意 | 
| --- | --- | --- | --- | 
| 跨直接查询的账户级 TPS 限制 APIs | 3 TPS | 是 |  | 
| 最大数据来源数 | 20 | 是 | 限额为每个 AWS 账户。 | 
| 最大自动刷新索引或实体化视图数 | 30 | 是 |  限制适用于每个数据来源。 仅包括自动刷新设置为 true 的索引和实例化视图 (MVs)。  | 
| 最大并发查询数 | 30 | 是 |  限制适用于处于待处理或运行状态的查询。 包括交互式查询（例如，数据检索命令，如 `SELECT`）和索引查询（例如，`CREATE`/`ALTER`/`DROP` 之类的操作）。  | 
| 每次查询的最大并发 OCU 数 | 512 | 是 |  OpenSearch 计算单位 (OCU)。限制基于 15 个执行器和 1 个驱动程序，每个执行器配备 16 个 vCPU 和 32 GB 内存。表示并发处理能力。  | 
| 最大查询执行时间，以分钟为单位 | 30 | 否 | 仅适用于交互式查询（例如数据检索命令，如 SELECT）。对于 REFRESH 查询，限制为 6 小时。 | 
| 清除陈旧查询的期限 IDs | 90 天 | 是 |  这是 OpenSearch 服务清除较旧条目的查询元数据的时间段。例如，对于超过 90 天的查询，调用 GetDirectQuery或 GetDirectQueryResult 失败。  | 

## 支持的 AWS 区域
<a name="direct-query-security-lake-regions"></a>

Secur AWS 区域 ity Lake 支持以下方式进行直接查询：
+ 亚太地区（孟买）
+ 亚太地区（新加坡）
+ 亚太地区（悉尼）
+ 亚太地区（东京）
+ 加拿大（中部）
+ 欧洲地区（法兰克福）
+  欧洲地区（爱尔兰）
+ 欧洲地区（斯德哥尔摩）
+ 美国东部（弗吉尼亚州北部）
+ 美国东部（俄亥俄州）
+ 美国西部（俄勒冈州）
+ 欧洲地区（巴黎） 
+ 欧洲地区（伦敦）
+ 南美洲（圣保罗）