

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

# 教程：Amazon OpenSearch Serverless（控制台）安全入门
<a name="gsg-serverless"></a>

本教程将引导您完成使用 Amazon OpenSearch Serverless 控制台创建和管理安全策略的基本步骤。

在本教程中，您将完成以下步骤：

1. [配置权限](#gsgpermissions)

1. [创建加密策略](#gsg-encryption)

1. [创建网络策略](#gsg-network)

1. [配置数据访问策略](#gsg-data-access)

1. [创建集合](#gsgcreate-collection)

1. [上传和搜索数据](#gsgindex-collection)

本教程将引导您完成使用设置收藏夹的过程 Amazon Web Services 管理控制台。有关使用中的相同步骤 Amazon CLI，请参阅[教程：亚马逊 OpenSearch 无服务器 (CLI) 安全入门](gsg-serverless-cli.md)。

## 步骤 1：配置权限
<a name="gsgpermissions"></a>

**注意**  
如果您已经在使用更广泛的基于身份的策略，如 `Action":"aoss:*"` 或 `Action":"*"`，则可以跳过此步骤。但在生产环境中，建议您遵循最低权限原则，仅分配完成任务所需的最低权限。

要完成本教程，您必须拥有正确的 IAM 权限。您的用户或角色必须已经附加[基于身份的策略](security-iam-serverless.md#security-iam-serverless-id-based-policies)，并且具有以下最低权限：

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "aoss:ListCollections",
        "aoss:BatchGetCollection",
        "aoss:CreateCollection",
        "aoss:CreateSecurityPolicy",
        "aoss:GetSecurityPolicy",
        "aoss:ListSecurityPolicies",
        "aoss:CreateAccessPolicy",
        "aoss:GetAccessPolicy",
        "aoss:ListAccessPolicies"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}
```

------

有关 OpenSearch 无服务器权限的完整列表，请参阅[适用于 Amazon OpenSearch Serverless 的身份和访问管理](security-iam-serverless.md)。

## 步骤 2：创建加密策略
<a name="gsg-encryption"></a>

[加密策略](serverless-encryption.md)指定了 Amazon KMS OpenSearch Serverless 用于加密集合的密钥。您可以使用 Amazon 托管式密钥 或不同的密钥对集合进行加密。在本教程中，为简单起见，我们将使用 Amazon 托管式密钥对集合进行加密。

**创建加密策略**

1. 在[https://console.aws.amazon.com/aos/家](https://console.amazonaws.cn/aos/home )中打开亚马逊 OpenSearch 服务控制台。

1. 展开左侧导航窗格中的 **Serverless**（无服务器），然后选择 **Encryption policies**（加密策略）。

1. 选择 **Create encryption policy**（创建加密策略）。

1. 将该策略命名为 **books-policy**。对于描述，请输入 **Encryption policy for books collection**（适用于书籍集合的加密策略）。

1. 在 **Resources**（资源）下，输入 **books**（书籍），您将使用它为您的集合命名。如果您想扩大范围，可以添加星号 (`books*`)，以使该策略适用于以“books”（书籍）一词开头的所有集合。

1. 对于**加密**，保持选中 “**使用 Amazon Web Services 自有密钥**”。

1. 选择**创建**。

## 步骤 3：创建网络策略
<a name="gsg-network"></a>

[网络策略](serverless-network.md)决定您的馆藏是否可通过互联网从公共网络访问，或者是否必须通过 OpenSearch 无服务器托管的 VPC 终端节点进行访问。在本教程中，我们将配置公共访问权限。

**创建网络策略**

1. 选择左侧导航窗格中的 **Network policies**（网络策略），然后选择 **Create network policy**（创建网络策略）。

1. 将该策略命名为 **books-policy**。对于描述，请输入 **Network policy for books collection**（适用于书籍集合的网络策略）。

1. 在 **Rule 1**（规则 1）下，将规则命名为 **Public access for books collection**（针对书籍集合的公共访问权限）。

1. 在本教程中，为简单起见，我们将配置针对 *books*（书籍）集合的公共访问权限。对于访问权限类型，选择 **Public**（公共）。

1. 我们将从 OpenSearch 仪表板访问该集合。为此，您需要为仪表板*和* OpenSearch 端点配置网络访问权限，否则仪表板将无法运行。

   对于资源类型，启用** OpenSearch终端节点访问权限**和** OpenSearch控制面板访问权限**。

1. 在两个输入框中，输入 **Collection Name = books**（集合名称 = 书籍）。此设置将缩小该策略的范围，使其仅适用于单个集合 (`books`)。您的规则应如下所示：  
![搜索界面显示两个用于收藏或前缀术语选择的输入字段，均设置为 “图书”。](http://docs.amazonaws.cn/opensearch-service/latest/developerguide/images/serverless-tutorial-network.png)

1. 选择**创建**。

## 步骤 4：创建数据访问策略
<a name="gsg-data-access"></a>

您的集合数据将不可访问，直到您配置数据访问权限为止。[数据访问策略](serverless-data-access.md)与您在步骤 1 中配置的 IAM 基于身份的策略是分开的。它们允许用户访问集合中的实际数据。

在本教程中，我们将为单个用户提供将数据索引到 *books*（书籍）集合所需的权限。

**创建数据访问策略**

1. 选择左侧导航窗格中的 **Data access policies**（数据访问策略），然后选择 **Create access policy**（创建访问策略）。

1. 将该策略命名为 **books-policy**。对于描述，请输入 **Data access policy for books collection**（适用于书籍集合的数据访问策略）。

1. 为策略定义方法选择 **JSON**，然后将以下策略粘贴到 JSON 编辑器中。

   将委托人 ARN 替换为用于登录 OpenSearch 控制面板和索引数据的账户的 ARN。

   ```
   [
      {
         "Rules":[
            {
               "ResourceType":"index",
               "Resource":[
                  "index/books/*"
               ],
               "Permission":[
                  "aoss:CreateIndex",
                  "aoss:DescribeIndex", 
                  "aoss:ReadDocument",
                  "aoss:WriteDocument",
                  "aoss:UpdateIndex",
                  "aoss:DeleteIndex"
               ]
            }
         ],
         "Principal":[
            "arn:aws:iam::{{123456789012}}:{{user}}/{{my-user}}"
         ]
      }
   ]
   ```

   此策略将为单个用户提供在 *books*（书籍）集合中创建索引、索引某些数据和以及搜索这些数据所需的最低权限。

1. 选择**创建**。

## 步骤 5：创建集合
<a name="gsgcreate-collection"></a>

您已经配置了加密和网络策略，现在您可以创建相匹配的集合，安全设置将自动应用于该集合。

**创建 OpenSearch 无服务器集合**

1. 选择左侧导航窗格中的 **Collections**（集合），然后选择 **Create collection**（创建集合）。

1. 将该集合命名为 **books**（书籍）。

1. 对于集合类型，选择 **Search**（搜索）。

1. 在 “**加密**” 下， OpenSearch Serverless 会通知您集合名称与`books-policy`加密策略匹配。

1. 在 “**网络访问设置”** 下， OpenSearch Serverless 会通知您集合名称与`books-policy`网络策略匹配。

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

1. 在**数据访问策略选项**下， OpenSearch Serverless 会通知您集合名称与`books-policy`数据访问策略相匹配。

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

1. 查看集合配置并选择 **Submit**（提交）。集合通常需要不到一分钟的时间来初始化。

## 步骤 6：上传和搜索数据
<a name="gsgindex-collection"></a>

您可以使用 Postman 或 curl 将数据上传到 OpenSearch 无服务器集合。为简洁起见，这些示例使用 OpenSearch 仪表板控制台中的**开发工具**。

**索引和搜索集合中的数据**

1. 选择左侧导航窗格中的 **Collections**（集合），然后选择 **books**（书籍）集合以打开其详细信息页面。

1. 为该集合选择 OpenSearch 仪表板 URL。该 URL 采用 `https://{{collection-id}}.us-east-1.aoss.amazonaws.com/_dashboards` 格式。

1. 使用您在数据[Amazon 访问策略中指定的委托人的访问权限和密钥](https://docs.amazonaws.cn/powershell/latest/userguide/pstools-appendix-sign-up.html)登录控制面 OpenSearch 板。

1. 在 OpenSearch 仪表板中，打开左侧导航菜单并选择**开发工具**。

1. 要创建名为 *books-index* 的单个索引，请运行以下命令：

   ```
   PUT books-index{{ }}
   ```  
![OpenSearch 仪表板控制台显示带有 JSON 响应的图书索引的 PUT 请求。](http://docs.amazonaws.cn/opensearch-service/latest/developerguide/images/serverless-createindex.png)

1. 要将单个文档索引到 *books-index* 中，请运行以下命令：

   ```
   PUT books-index/_doc/1
   { 
     "title": "The Shining",
     "author": "Stephen King",
     "year": 1977
   }
   ```

1. 要在 OpenSearch 仪表板中搜索数据，您需要配置至少一种索引模式。 OpenSearch 使用这些模式来确定要分析的索引。打开控制面板主菜单，选择**堆栈管理**，选择**索引模式**，然后选择**创建索引模式**。对于本教程，请输入 *books-index*。

1. 选择**下一步**，然后选择**创建索引模式**。创建模式后，您可以查看各种文档字段，例如 `author` 和 `title`。

1. 要开始搜索您的数据，请再次打开主菜单，然后选择 **Discover**（发现），或者使用[搜索 API](https://opensearch.org/docs/latest/opensearch/rest-api/search/)。