本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
教程: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 托管式密钥对集合进行加密。
创建加密策略
-
在 https://console.aws.amazon.com/aos/home
打开 Amazon OpenSearch Service 控制台。 -
展开左侧导航窗格中的 Serverless(无服务器),然后选择 Encryption policies(加密策略)。
-
选择 Create encryption policy(创建加密策略)。
-
将该策略命名为 books-policy。对于描述,请输入 Encryption policy for books collection(适用于书籍集合的加密策略)。
-
在 Resources(资源)下,输入 books(书籍),您将使用它为您的集合命名。如果您想扩大范围,可以添加星号 (
books*
),以使该策略适用于以“books”(书籍)一词开头的所有集合。 -
对于加密,保持选中使用 Amazon Web Services 拥有的密钥。
-
选择创建。
步骤 3:创建网络策略
网络策略决定是否可以通过互联网从公共网络访问您的集合,或者是否必须通过 OpenSearch 无服务器托管的 VPC 端点访问您的集合。在本教程中,我们将配置公共访问权限。
创建网络策略
-
选择左侧导航窗格中的 Network policies(网络策略),然后选择 Create network policy(创建网络策略)。
-
将该策略命名为 books-policy。对于描述,请输入 Network policy for books collection(适用于书籍集合的网络策略)。
-
在 Rule 1(规则 1)下,将规则命名为 Public access for books collection(针对书籍集合的公共访问权限)。
-
在本教程中,为简单起见,我们将配置针对 books(书籍)集合的公共访问权限。对于访问权限类型,选择 Public(公共)。
-
我们将从 OpenSearch 控制面板访问该集合。为了做到这一点,您需要配置针对控制面板和 OpenSearch 端点的网络访问权限,否则控制面板将无法运行。
对于资源类型,同时启用 Access to OpenSearch endpoints(针对 OpenSearch 端点的访问权限)和 Access to OpenSearch Dashboards(针对 OpenSearch 控制面板的访问权限)。
-
在两个输入框中,输入 Collection Name = books(集合名称 = 书籍)。此设置将缩小该策略的范围,使其仅适用于单个集合 (
books
)。您的规则应如下所示: -
选择创建。
步骤 4:创建数据访问策略
您的集合数据将不可访问,直到您配置数据访问权限为止。数据访问策略与您在步骤 1 中配置的 IAM 基于身份的策略是分开的。它们允许用户访问集合中的实际数据。
在本教程中,我们将为单个用户提供将数据索引到 books(书籍)集合所需的权限。
创建数据访问策略
-
选择左侧导航窗格中的 Data access policies(数据访问策略),然后选择 Create access policy(创建访问策略)。
-
将该策略命名为 books-policy。对于描述,请输入 Data access policy for books collection(适用于书籍集合的数据访问策略)。
-
为策略定义方法选择 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(书籍)集合中创建索引、索引某些数据和以及搜索这些数据所需的最低权限。
-
选择创建。
步骤 5:创建集合
您已经配置了加密和网络策略,现在您可以创建相匹配的集合,安全设置将自动应用于该集合。
创建 OpenSearch 无服务器集合
-
选择左侧导航窗格中的 Collections(集合),然后选择 Create collection(创建集合)。
-
将该集合命名为 books(书籍)。
-
对于集合类型,选择 Search(搜索)。
-
在 Encryption(加密)下,OpenSearch 无服务器将通知您集合名称与
books-policy
加密策略相匹配。 -
在 Network access settings(网络访问权限设置)下,OpenSearch 无服务器将通知您集合名称与
books-policy
网络策略相匹配。 -
选择下一步。
-
在 Data access policy options(数据访问策略选项)下,OpenSearch 无服务器会通知您集合名称与
books-policy
数据访问策略相匹配。 -
选择下一步。
-
查看集合配置并选择 Submit(提交)。集合通常需要不到一分钟的时间来初始化。
步骤 6:上传和搜索数据
您可以使用 Postman 或 curl 将数据上传到 OpenSearch 无服务器集合。为简洁起见,这些示例使用 OpenSearch 控制面板控制台中的 Dev Tools(开发工具)。
索引和搜索集合中的数据
-
选择左侧导航窗格中的 Collections(集合),然后选择 books(书籍)集合以打开其详细信息页面。
-
选择集合的 OpenSearch 控制面板 URL。该 URL 采用
https://
格式。collection-id
.us-east-1.aoss.amazonaws.com/_dashboards -
使用您在数据访问策略中指定的主体的 Amazon 访问和秘密密钥登录到 OpenSearch 控制面板。
-
在 OpenSearch 控制面板中,打开左侧导航菜单,然后选择 Dev Tools(开发工具)。
-
要创建名为 books-index 的单个索引,请运行以下命令:
PUT books-index
-
要将单个文档索引到 books-index 中,请运行以下命令:
PUT books-index/_doc/1 { "title": "The Shining", "author": "Stephen King", "year": 1977 }
-
要在 OpenSearch 控制面板中搜索数据,您需要配置至少一个索引模式。OpenSearch 将使用这些模式来标识您要分析的索引。打开控制面板主菜单,选择堆栈管理,选择索引模式,然后选择创建索引模式。对于本教程,请输入 books-index。
-
选择下一步,然后选择创建索引模式。创建模式后,您可以查看各种文档字段,例如
author
和title
。 -
要开始搜索您的数据,请再次打开主菜单,然后选择 Discover(发现),或者使用搜索 API
。