教程:Amazon OpenSearch 无服务器中的安全性入门(控制台) - 亚马逊 OpenSearch 服务
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

教程:Amazon OpenSearch 无服务器中的安全性入门(控制台)

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

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

本教程将指导您完成使用Amazon Web Services Management Console设置集合的步骤。有关使用 Amazon CLI 的相同步骤,请参阅 教程:Amazon 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:创建加密策略

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

创建加密策略
  1. https://console.aws.amazon.com/aos/home 打开 Amazon OpenSearch Service 控制台。

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

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

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

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

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

  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 端点的网络访问权限,否则控制面板将无法运行。

    对于资源类型,同时启用 Access to OpenSearch endpoints(针对 OpenSearch 端点的访问权限)和 Access to OpenSearch Dashboards(针对 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. Encryption(加密)下,OpenSearch 无服务器将通知您集合名称与 books-policy 加密策略相匹配。

  5. Network access settings(网络访问权限设置)下,OpenSearch 无服务器将通知您集合名称与 books-policy 网络策略相匹配。

  6. 选择下一步

  7. Data access policy options(数据访问策略选项)下,OpenSearch 无服务器会通知您集合名称与 books-policy 数据访问策略相匹配。

  8. 选择下一步

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

步骤 6:上传和搜索数据

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

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

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

  3. 使用您在数据访问策略中指定的主体的 Amazon 访问和秘密密钥登录到 OpenSearch 控制面板。

  4. 在 OpenSearch 控制面板中,打开左侧导航菜单,然后选择 Dev Tools(开发工具)。

  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