教程:Amazon OpenSearch Serverless(控制台)安全入门 - 亚马逊 OpenSearch 服务

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

教程:Amazon OpenSearch Serverless(控制台)安全入门

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

在本教程中,您将完成以下步骤:

本教程将指导您完成使用AWS Management Console设置集合的步骤。有关使用 AWS CLI 的相同步骤,请参阅 教程:亚马逊 OpenSearch 无服务器 (CLI) 安全入门

步骤 1:配置权限

注意

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

要完成本教程,您必须拥有正确的 IAM 权限。您的用户或角色必须已经附加基于身份的策略,并且具有以下最低权限:

{ "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 的身份和访问管理

步骤 2:创建加密策略

加密策略指定了 AWS KMS OpenSearch Serverless 用于加密集合的密钥。您可以使用 AWS 托管式密钥或其他密钥对集合进行加密。在本教程中,为简单起见,我们将使用 AWS 托管式密钥对集合进行加密。

创建加密策略
  1. 打开亚马逊 OpenSearch 服务控制台,网址为 https://console.aws.amazon.com/aos/home

  2. 展开左侧导航窗格中的 Serverless(无服务器),然后选择 Encryption policies(加密策略)。

  3. 选择 Create encryption policy(创建加密策略)。

  4. 将该策略命名为 books-policy。对于描述,请输入 Encryption policy for books collection(适用于书籍集合的加密策略)。

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

  6. 对于加密,保持选中使用 AWS 拥有的密钥

  7. 选择创建

步骤 3:创建网络策略

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

创建网络策略
  1. 选择左侧导航窗格中的 Network policies(网络策略),然后选择 Create network policy(创建网络策略)。

  2. 将该策略命名为 books-policy。对于描述,请输入 Network policy for books collection(适用于书籍集合的网络策略)。

  3. Rule 1(规则 1)下,将规则命名为 Public access for books collection(针对书籍集合的公共访问权限)。

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

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

    对于资源类型,启用 OpenSearch端点访问权限 OpenSearch控制面板访问权限

  6. 在两个输入框中,输入 Collection Name = books(集合名称 = 书籍)。此设置将缩小该策略的范围,使其仅适用于单个集合 (books)。您的规则应如下所示:

    Search interface showing two input fields for collection or prefix term selection, both set to "books".
  7. 选择创建

步骤 4:创建数据访问策略

您的集合数据将不可访问,直到您配置数据访问权限为止。数据访问策略与您在步骤 1 中配置的 IAM 基于身份的策略是分开的。它们允许用户访问集合中的实际数据。

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

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

  2. 将该策略命名为 books-policy。对于描述,请输入 Data access policy for books collection(适用于书籍集合的数据访问策略)。

  3. 为策略定义方法选择 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(书籍)集合中创建索引、索引某些数据和以及搜索这些数据所需的最低权限。

  4. 选择创建

步骤 5:创建集合

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

创建 OpenSearch 无服务器集合
  1. 选择左侧导航窗格中的 Collections(集合),然后选择 Create collection(创建集合)。

  2. 将该集合命名为 books(书籍)。

  3. 对于集合类型,选择 Search(搜索)。

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

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

  6. 请选择 Next(下一步)

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

  8. 请选择 Next(下一步)

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

步骤 6:上传和搜索数据

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

索引和搜索集合中的数据
  1. 选择左侧导航窗格中的 Collections(集合),然后选择 books(书籍)集合以打开其详细信息页面。

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

  3. 使用您在数据AWS访问策略中指定的委托人的访问权限和密钥登录控制面 OpenSearch 板。

  4. 在 OpenSearch 仪表板中,打开左侧导航菜单并选择开发工具

  5. 要创建名为 books-index 的单个索引,请运行以下命令:

    PUT books-index
    OpenSearch Dashboards console showing PUT request for books-index with JSON response.
  6. 要将单个文档索引到 books-index 中,请运行以下命令:

    PUT books-index/_doc/1 { "title": "The Shining", "author": "Stephen King", "year": 1977 }
  7. 要在 OpenSearch 仪表板中搜索数据,您需要配置至少一种索引模式。 OpenSearch 使用这些模式来确定要分析的索引。打开控制面板主菜单,选择堆栈管理,选择索引模式,然后选择创建索引模式。对于本教程,请输入 books-index

  8. 选择下一步,然后选择创建索引模式。创建模式后,您可以查看各种文档字段,例如 authortitle

  9. 要开始搜索您的数据,请再次打开主菜单,然后选择 Discover(发现),或者使用搜索 API