View a markdown version of this page

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

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

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

在本教程中,您将使用 Amazon OpenSearch Serverless 控制台创建和管理安全策略。

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

本教程向您展示如何使用设置收藏夹 AWS 管理控制台。有关使用中的相同步骤 AWS CLI,请参阅教程:亚马逊 OpenSearch 无服务器 (CLI) 安全入门

步骤 1:配置权限

注意

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

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

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

步骤 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. 在 “资源” 下输入books,这是您命名收藏的名称。如果您想扩大范围,可以添加一个星号 (books*),使该政策适用于所有以 “图书” 一词开头的馆藏。

  6. 对于加密,保持选中 “使用 AWS 自有密钥”。

  7. 选择创建

步骤 3:创建网络策略

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

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

  2. 将该策略命名为 books-policy。要获取描述,请输入Network policy for books collection

  3. 规则 1 下,命名规则Public access for books collection

  4. 为了简化本教程,请配置图书收藏的公共访问权限。对于访问权限类型,选择 Public(公共)。

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

    对于资源类型,启用对 OpenSearch端点的访问和对 OpenSearch仪表板的访问权限

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

    搜索界面显示两个用于收藏或前缀术语选择的输入字段,均设置为 “图书”。
  7. 选择创建

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

在配置数据访问权限之前,您无法访问您的馆藏数据。数据访问策略与您在步骤 1 中配置的 IAM 基于身份的策略是分开的。它们允许用户访问集合中的实际数据。

在本教程中,您将为单个用户提供将数据索引到图书馆藏所需的权限。

创建数据访问策略
  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 无服务器会自动应用安全设置。

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

  2. 在 “无服务器生成” 字段中,如果尚未启用 “经典版”,请选择 “切换到经典版”。

  3. 在集合名称中输入books

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

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

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

  7. 选择下一步

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

  9. 选择下一步

  10. 在 “配置 OpenSearch 用户界面” 下,为您的集合配置 OpenSearch 应用程序和工作区。选择 “选择现有 OpenSearch 应用程序” 或 “创建新 OpenSearch 应用程序”,然后选择或创建工作区。选择下一步

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

注意

本教程使用 Classic 集合创建流程来演示在集合创建过程中如何自动匹配预配置的安全策略。有关使用 NextGen 流程创建集合的信息,请参阅创建集合

步骤 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 仪表板控制台显示带有 JSON 响应的图书索引的 PUT 请求。
  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