本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
亚马逊的精细访问控制OpenSearch服务
精细的访问控制提供了更多方法来控制对您在亚马逊上的数据的访问权限OpenSearch服务。例如,根据请求发出者,您可能希望搜索仅返回一个索引中的结果。您可能想隐藏文档中的某些字段或完全排除某些文档。
精细访问控制提供了以下功能:
-
基于角色的访问控制
-
索引、文档和字段级别的安全性
-
OpenSearch多租户仪表板
-
的 HTTP 基本身份验证OpenSearch和OpenSearch仪表板
主题
大局:精细的访问控制和OpenSearch服务安全
亚马逊OpenSearch服务安全有三个主要层面:
- Network
-
第一个安全层是网络,它决定请求是否到达OpenSearch服务域。如果您在创建域时选择 Public access (公共访问),则来自任何连接到 Internet 的客户端的请求都能到达域终端节点。如果您选择 VPC access (VPC 访问),则客户端必须连接到 VPC(并且关联的安全组必须允许它)才能使请求到达终端节点。有关更多信息,请参阅在 VPC 中启动您的 Amazon OpenSearch Service 域:
- 域访问策略
-
第二个安全层是域访问策略。在请求到达域终端节点后,基于资源的访问策略允许或拒绝请求访问给定 URI。访问策略在请求本身到达 OpenSearch 前在域“边缘”接受或拒绝请求。
- 精细访问控制
-
第三个也是最后一个安全层是精细访问控制。在基于资源的访问策略允许请求到达域终端节点后,精细访问控制对用户凭证进行评估,并对用户进行身份验证或拒绝请求。如果精细访问控制对用户进行身份验证,它将获取映射到该用户的所有角色,并使用完整的权限集来确定如何处理请求。
注意
如果基于资源的访问策略包含 IAM 角色或用户,则客户端必须发送使用 Amazon Signature 版本 4 进行签名的请求。因此,访问策略可能会与精细访问控制发生冲突,特别是在您使用内部用户数据库和 HTTP 基本身份验证时。您无法使用用户名和密码签署请求和IAM 证书。通常,如果您启用精细访问控制,我们建议您使用不需要已签名请求的域访问策略。
下列示意图说明了一个常见配置:启用了精细访问控制的 VPC 访问域、基于 IAM 的访问策略和 IAM 主用户。

下列示意图说明了另一个常见配置:启用了精细访问控制的公共访问域、不使用 IAM 委托人的访问策略以及内部用户数据库中的主用户。

示例
考虑向 movies/_search?q=thor
发出 GET
请求。用户是否有权搜索 movies
索引? 如果是这样,用户是否有权查看该索引中的所有文档? 响应是否应忽略或匿名化任何字段? 对于主用户,响应可能如下所示:
{
"hits": {
"total": 7,
"max_score": 8.772789,
"hits": [{
"_index": "movies",
"_type": "_doc",
"_id": "tt0800369",
"_score": 8.772789,
"_source": {
"directors": [
"Kenneth Branagh",
"Joss Whedon"
],
"release_date": "2011-04-21T00:00:00Z",
"genres": [
"Action",
"Adventure",
"Fantasy"
],
"plot": "The powerful but arrogant god Thor is cast out of Asgard to live amongst humans in Midgard (Earth), where he soon becomes one of their finest defenders.",
"title": "Thor",
"actors": [
"Chris Hemsworth",
"Anthony Hopkins",
"Natalie Portman"
],
"year": 2011
}
},
...
]
}
}
如果具有更有限的权限的用户发出完全相同的请求,则响应可能如下所示:
{
"hits": {
"total": 2,
"max_score": 8.772789,
"hits": [{
"_index": "movies",
"_type": "_doc",
"_id": "tt0800369",
"_score": 8.772789,
"_source": {
"year": 2011,
"release_date": "3812a72c6dd23eef3c750c2d99e205cbd260389461e19d610406847397ecb357",
"plot": "The powerful but arrogant god Thor is cast out of Asgard to live amongst humans in Midgard (Earth), where he soon becomes one of their finest defenders.",
"title": "Thor"
}
},
...
]
}
}
响应的命中次数较少,并且每次命中的字段较少。此外,release_date
字段是匿名的。如果不具有权限的用户发出相同的请求,集群将返回错误:
{
"error": {
"root_cause": [{
"type": "security_exception",
"reason": "no permissions for [indices:data/read/search] and User [name=limited-user, roles=[], requestedTenant=null]"
}],
"type": "security_exception",
"reason": "no permissions for [indices:data/read/search] and User [name=limited-user, roles=[], requestedTenant=null]"
},
"status": 403
}
如果用户提供的凭证无效,则集群将返回 Unauthorized
异常。
重要概念
角色 是使用精细访问控制的核心方式。在此情况下,角色与 IAM 角色不同。角色包含任意权限组合:集群范围的、特定于索引的、文档级别的和字段级别的。
配置一个角色后,可以将该角色映射 到一个或多个用户。例如,您可以将三个角色映射到单个用户:一个角色提供对控制面板的访问权限,一个角色提供对 index1
的只读访问权限,还有一个角色提供对 index2
的写入访问权限。您也可以将所有这些权限包含在单个角色中。
用户 是向 OpenSearch 集群发出请求的人员或应用程序。用户拥有他们在提出请求时指定的证书,可以是 IAM 访问密钥或用户名和密码。在亚马逊上进行精细的访问控制OpenSearch服务,您可以为自己选择一项或另一项主用户当你配置你的域名时。主用户具有集群的完全权限,并管理角色和角色映射。
-
如果您为主用户选择 IAM,则必须使用 Amazon 签名版本 4 对集群的所有请求进行签名。
如果您想在多个集群上使用相同的用户,想要使用 Amazon Cognito 访问控制面板,或者如果您有,我们建议您使用 IAMOpenSearch支持签名版本 4 签名的客户端。
-
如果您选择内部用户数据库,则可以使用 HTTP 基本身份验证(以及 IAM 凭证)向集群发出请求。大多数客户端支持基本身份验证,包括 curl
,其也支持帶 --aws-sigv4 選項 的 Amazon Signature 版本 4。内部用户数据库存储在 OpenSearch 索引中,因此您无法与其他集群共享该数据库。 在以下情况下,我们建议您使用内部用户数据库:如果不需要跨多个集群重用用户,如果您想要使用 HTTP 基本身份验证访问控制面板(而不是 Amazon Cognito)或您的客户端仅支持基本身份验证。内部用户数据库是最简单的入门方式OpenSearch服务。
启用精细访问控制
使用控制台、Amazon CLI 或配置 API 启用精细访问控制。要查看步骤,请参阅 创建和管理亚马逊OpenSearch服务域。
精细的访问控制需要OpenSearch或 Elasticsearch 6.7 或更高 它还要求所有到该域的流量都使用 HTTPS,静态数据加密,以及node-to-node加密。根据您如何配置细粒度访问控制的高级功能,对请求的额外处理可能需要各个数据节点上的计算和内存资源。一旦启用精细访问控制,便无法将其禁用。
在现有域上启用精细访问控制
您可以对正在运行的现有域启用细粒度访问控制OpenSearch或 Elasticsearch 6.7 或更高
在现有域上(控制台)上启用精细访问控制
-
选择域、Actions(操作)和 Edit security configuration(编辑安全配置)。
-
选择 Enable fine-grained access control(启用精细访问控制)。
-
选择如何创建主用户:
-
如果要使用 IAM 进行用户管理,请选择 Set IAM ARN as master user (将 IAM ARN 设置为主用户),然后为 IAM 角色指定 ARN。
-
如果要使用内部用户数据库,请选择创建主用户并指定用户名和密码。
-
-
(可选)选择 Enable migration period for open/IP-based access policy(为开放/基于 IP 的访问策略启用迁移期)。此设置启用了 30 天过渡期,在此期间,现有用户可以继续访问域而不发生中断,并且现有开放和基于 IP 的访问策略将继续适用于您的域。在此迁移期间,我们建议管理员为该域创建必要的角色并将其映射到用户。如果您使用基于身份的策略,而不是开放或基于 IP 的访问策略,则可以禁用此设置。
此外,您还需要更新客户端,以便在迁移期间处理精细访问控制。例如,如果您使用细粒度访问控制映射 IAM 角色,则必须更新客户端才能开始使用 Amazon Signature 版本 4 签署请求。如果您使用精细访问控制配置 HTTP 基本身份验证,则必须更新客户端才能在请求中提供相应的基本身份验证凭证。
在迁移期间,访问的用户OpenSearch该域的仪表板端点将直接登陆到探索页面而不是登录页面。管理员和主用户可以选择 Login(登录),以使用管理员凭据登录并配置角色映射。
重要
OpenSearch服务会在 30 天后自动禁用迁移期。我们建议您在创建必要的角色并将其映射到用户之后立即终止它。迁移期结束后,您无法重新启用它。
-
选择保存更改。
更改将会触发蓝/绿部署,在此期间,集群运行状况变为红色,但所有集群操作不会受到影响。
在现有域 (CLI) 上启用精细访问控制
将 AnonymousAuthEnabled
设置为 true
以通过精细访问控制启用迁移期:
aws opensearch update-domain-config --domain-name
test-domain
--regionus-east-1
\ --advanced-security-options '{ "Enabled": true, "InternalUserDatabaseEnabled":true, "MasterUserOptions": {"MasterUserName":"master-username
","MasterUserPassword":"master-password
"},"AnonymousAuthEnabled": true}'
关于 default_role
精细访问控制需要角色映射。如果你的域名使用基于身份的访问策略,OpenSearch服务会自动将您的用户映射到名为的新角色默认角色以帮助您正确迁移现有用户。此临时映射可确保在您创建自己的角色映射之前,您的用户仍然可以成功发送 IAM 签名的 GET 和 PUT 请求。
该角色不会给你添加任何安全漏洞或缺陷OpenSearch服务域。我们建议您在设置自己的角色并相应地映射它们之后删除默认角色。
迁移方案
下表介绍了在现有域上启用精细访问控制之前和之后每种身份验证方法的行为,以及管理员为将用户正确映射到角色所必须采取的步骤:
身份验证方法 | 启用精细访问控制之前 | 启用精细访问控制之后 | 管理员任务 |
---|---|---|---|
基于身份的策略 |
满足 IAM policy 的所有用户都可以访问该域。 |
您无需启用迁移期。 OpenSearch服务会自动将所有满足 IAM 策略的用户映射到默认角色这样他们就可以继续访问该域。 |
|
基于 IP 的策略 |
来自允许的 IP 地址或 CIDR 块的所有用户均可访问该域。 |
在 30 天的迁移期间,来自允许的 IP 地址或 CIDR 块的所有用户均可继续访问该域。 |
|
开放访问策略 |
互联网上的所有用户均可访问该域。 |
在 30 天的迁移期间,互联网上的所有用户均可继续访问该域。 |
|
正在访问OpenSearch以主用户身份使用仪表板
精细的访问控制具有OpenSearch仪表板插件可简化管理任务。可以使用控制面板管理用户、角色、映射、操作组和租户。这个OpenSearch但是,仪表板登录页面和底层身份验证方法会有所不同,具体取决于您管理用户和配置域的方式。
-
如果要使用 IAM 进行用户管理,请使用 控制面板的 Amazon Cognito 认证 OpenSearch 访问控制面板。否则,控制面板将显示一个不起作用的登录页面。请参阅限制。
采用 Amazon Cognito 身份验证,身份池中的某个代入角色必须与您为主用户指定的 IAM 角色匹配。有关此配置的更多信息,请参阅(可选)配置精细访问和教程:使用 IAM 主用户和 Amazon Cognito 身份验证配置域。
-
如果您选择使用内部用户数据库,则可以使用主用户名和密码登录控制面板。您必须通过 HTTPS 访问控制面板。面向控制面板的 Amazon Cognito 和 SAML 身份验证都取代了此登录屏幕。
有关此配置的更多信息,请参阅教程:使用内部用户数据库和 HTTP 基本身份验证配置域。
-
如果选择使用 SAML 身份验证,则可以使用来自外部身份提供程序的凭据登录。有关更多信息,请参阅仪表板的 SAML 身份验证 OpenSearch:
管理权限
如重要概念中所述,您可以使用角色、用户和映射管理精细访问控制权限。此部分介绍如何创建和应用这些资源。我们建议您以主用户身份登录控制面板来执行这些操作。

注意
您选择授予用户的权限因使用案例而有很大差异。我们无法在本文档中涵盖所有场景。在决定向用户授予哪些权限时,请务必参考OpenSearch以下各节中提到的集群和索引权限,并始终遵循最小权限原则
创建角色
您可以使用以下方法创建用于精细访问控制的新角色OpenSearch仪表板或_plugins/_security
在 REST API 中操作。有关更多信息,请参阅创建角色
精细访问控制还包含大量预定义角色opensearch_dashboards_user
角色包括用户处理索引模式、可视化内容、控制面板和租户所需的权限。我们建议将它映射到任何访问仪表板的用户或后端角色,以及其他允许访问其他索引的角色。
亚马逊OpenSearch服务不提供以下内容OpenSearch角色:
observability_full_access
observability_read_access
reports_read_access
reports_full_access
亚马逊OpenSearch服务提供了多个不可用的角色OpenSearch:
ultrawarm_manager
ml_full_access
cold_manager
notifications_full_access
notifications_read_access
集群级安全性
集群级权限包括用于发出广泛请求(例如 _mget
、_msearch
和 _bulk
)、监控运行状况、拍摄快照等操作的功能。在创建角色时,使用 Cluster Permissions (集群权限)部分管理这些权限。有关集群级权限的完整列表,请参阅集群权限
您通常可以使用默认操作组的组合来实现所需的安全状况,而不是个人权限。有关集群级操作组的列表,请参阅集群级
索引级安全性
索引级权限包括用于执行创建新索引、搜索索引、读取和写入文档、删除文档、管理别名等操作的功能。在创建角色时,使用 Index Permissions (索引权限)部分管理这些权限。有关索引级权限的完整列表,请参阅索引权限
您通常可以使用默认操作组的组合来实现所需的安全状况,而不是个人权限。有关索引级操作组的列表,请参阅索引级
文档级安全性
文档级安全性允许您限制用户可在索引中查看的文档。创建角色时,指定索引模式和OpenSearch查询。映射到该角色的任何用户只能查看与查询匹配的文档。文档级安全性将影响搜索时收到的命中数。
有关更多信息,请参阅文档级安全性
字段级安全性
字段级安全性允许您控制用户可查看的文档字段。创建角色时,添加要包含或排除的字段的列表。如果包含字段,则映射到该角色的任何用户都只能查看这些字段。如果排除字段,则他们可以查看除 排除的字段之外的所有字段。字段级安全性将影响搜索时包含在命中内的字段数。
有关更多信息,请参阅字段级安全性
字段掩码
字段遮罩是字段级安全性的替代方法,它允许您匿名化字段中的数据,而不是将其完全删除。创建角色时,添加要遮罩的字段的列表。字段遮罩将影响搜索时是否能查看字段内容。
提示
如果您对字段应用标准掩码,OpenSearch服务使用安全的随机哈希,这可能会导致聚合结果不准确。要对掩码字段执行聚合,请改用基于模式的掩码。
创建用户
如果您启用了内部用户数据库,则可以使用以下方法创建用户OpenSearch仪表板或_plugins/_security
在 REST API 中操作。有关更多信息,请参阅创建用户
如果您为主用户选择了 IAM,请忽略控制面板的此部分。改为创建 IAM 角色。有关更多信息,请参阅 IAM 用户指南。
将角色映射到用户
角色映射是精细访问控制的最重要的方面。精细访问控制具有一些预定义的角色来帮助您入门,但除非您将角色映射到用户,否则,向集群发出的每个请求都会以权限错误结束。
后端角色可以帮助简化角色映射过程。您可以将该角色映射到所有 100 个用户共享的单个后端角色,而不是将同一个角色映射到 100 个独立用户。后端角色可以为 IAM 角色或任意字符串。
-
请在 Users(用户)部分指定用户、用户 ARN 和 Amazon Cognito 用户字符串。Cognito 用户字符串采用的形式为
Cognito/
。user-pool-id
/username
-
在 Backend roles (后端角色) 部分中指定后端角色和 IAM 角色 ARN。

您可以使用以下方法将角色映射到用户OpenSearch仪表板或_plugins/_security
在 REST API 中操作。有关更多信息,请参阅将角色映射到用户
创建操作组
操作组是可以在不同的资源中重用的权限集。您可以使用创建新的操作组OpenSearch仪表板或_plugins/_security
REST API 中的操作,尽管默认操作组足以满足大多数用例。有关原定设置操作组的更多信息,请参阅原定设置操作组
OpenSearch多租户仪表板
租户是用于保存索引模式、可视化内容、控制面板和其他控制面板对象的空间。仪表板多租户使您可以安全地与其他 Dashboard 用户共享您的工作(或将其保密)并动态配置租户。您可以控制哪些角色有权访问租户,以及这些角色是否具有读取或写入访问权限。全局租户是默认租户。要了解更多信息,请参阅OpenSearch多租户仪表板
查看当前租户或更改租户
导航到OpenSearch仪表板并登录。
-
选择右上角的用户图标,然后选择切换租户。
-
在创建可视化内容或控制面板之前验证租户。如果想与所有其他控制面板用户共享您的工作,请选择 Global (全球)。要与一部分控制面板用户共享您的工作,请选择其他共享租户。否则,请选择 Private (私有)。
注意
OpenSearch仪表板为每个租户维护一个单独的索引,并创建一个名为的索引模板tenant_template
。请勿删除或修改tenant_template
索引,因为它可能导致OpenSearch如果租户索引映射配置不正确,仪表板将出现故障。
推荐配置
由于精细访问控制与其他安全功能的交互方式,我们建议您使用适用于大多数使用案例的多种精细访问控制配置。
描述 | 主用户 | 域访问策略 |
---|---|---|
使用 IAM 证书调用OpenSearchAPI 和用途SAML 身份验证访问仪表板。使用控制面板 REST API 管理精细访问控制角色。 |
IAM 角色或用户 |
|
使用 IAM 证书或基本身份验证调用OpenSearchAPI。使用控制面板 REST API 管理精细访问控制角色。 这种配置提供了很大的灵活性,特别是如果你有OpenSearch仅支持基本身份验证的客户端。 如果您有现有身份提供商,则使用 SAML 身份验证访问控制面板。否则,请管理内部用户数据库中的控制面板用户。 |
用户名和密码 |
|
使用 IAM 证书调用OpenSearchAPI,并使用亚马逊 Cognito 访问控制面板。使用控制面板 REST API 管理精细访问控制角色。 |
IAM 角色或用户 |
|
使用 IAM 证书调用OpenSearchAPI,并阻止大多数人访问仪表板。使用 REST API 管理精细访问控制角色。 |
IAM 角色或用户 |
|
限制
精细访问控制具有几个重要限制:
-
如果域位于 VPC 中,则角色映射的
hosts
部分(将角色映射映射到主机名或 IP 地址)会不起作用。您仍可以将角色映射到用户和后端角色。 -
如果您为主用户选择 IAM,但不启用 Amazon Cognito 或 SAML 身份验证,控制面板将显示一个不起作用的登录页面。
-
如果您为主用户选择 IAM,则仍可以在内部用户数据库中创建用户。但是,由于此配置下未启用 HTTP 基本身份验证,因此,使用这些用户凭证签名的任何请求都将被拒绝。
-
如果您使用 SQL 查询您无权访问的索引,则您会收到“no permissions (无权限)”错误。如果索引不存在,则会收到“no such index (无此类索引)”错误。错误消息中的此类差异意味着,如果您碰巧猜到其名称,则可以确认索引的存在。
要最大程度地减小问题,请不要在索引名称中包含敏感信息。要拒绝所有对 SQL 的访问,请将以下元素添加到您的域访问策略:
{ "Effect": "Deny", "Principal": { "AWS": [ "*" ] }, "Action": [ "es:*" ], "Resource": "
arn:aws:es:us-east-1:123456789012:domain/my-domain
/_plugins/_sql" }
修改主用户
如果您忘记了主用户的详细信息,则可以使用控制台、Amazon CLI 或配置 API 重新配置它。
修改主用户(控制台)
-
导航到亚马逊OpenSearch服务控制台位于https://console.aws.amazon.com/aos/home/
。 -
选择域,然后选择 Actions(操作)、Edit security configuration(编辑安全配置)。
-
选择 Set IAM ARN as master user (将 IAM ARN 设置为主用户) 或 Create new master user (创建新的主用户)。
-
如果您之前使用了 IAM 主用户,则精细访问控制会将
all_access
角色重新映射到您指定的新 IAM ARN。 -
如果您之前使用了内部用户数据库,则精细访问控制会创建一个新的主用户。您可以使用新的主用户删除旧的主用户。
-
从内部用户数据库切换到 IAM 主用户不从内部用户数据库中删除任何用户。相反,它只是禁用 HTTP 基本身份验证。手动从内部用户数据库中删除用户,或保留这些用户,以防您需要重新启用 HTTP 基本身份验证。
-
-
选择保存更改。
其他主用户
在创建域时指定主用户,但如果需要,可以使用此主用户创建其他主用户。你有两个选择:OpenSearch仪表板或 REST API。
-
在控制面板中,选择 Security (安全性) 和 Roles (角色),然后将新主用户映射到
all_access
和security_manager
角色。 -
要使用 REST API,请发送以下请求:
PUT _plugins/_security/api/rolesmapping/all_access { "backend_roles": [ "
arn:aws:iam::123456789012:role/fourth-master-user
" ], "hosts": [], "users": [ "master-user
", "second-master-user
", "arn:aws:iam::123456789012:user/third-master-user
" ] }PUT _plugins/_security/api/rolesmapping/security_manager { "backend_roles": [ "
arn:aws:iam::123456789012:role/fourth-master-user
" ], "hosts": [], "users": [ "master-user
", "second-master-user
", "arn:aws:iam::123456789012:user/third-master-user
" ] }这些请求将替换 当前角色映射,因此,首先执行
GET
请求,以便您可以在PUT
请求中包含所有当前角色。如果您无法访问控制面板,并且希望将 IAM 角色从 Amazon Cognito 映射到all_access
角色,则 REST API 会特别有用。
手动快照
精细访问控制会给拍摄手动快照带来一些额外的复杂性。要注册快照存储库——即使您使用 HTTP 基本身份验证以实现所有其他目的——您必须将 manage_snapshots
角色映射到具有 iam:PassRole
权限的 IAM 角色来代入 TheSnapshotRole
,如 先决条件 中所定义。
然后,使用该 IAM 角色向域发送已签名请求,如注册手动快照存储库中所述。
集成
如果你使用其他Amazon服务和OpenSearch服务,您必须为这些服务提供具有适当权限的 IAM 角色。例如,Kinesis Data Firehose 交付流通常使用名为 firehose_delivery_role
的 IAM 角色。在控制面板中,创建一个用于精细访问控制的角色,并将 IAM 角色映射到该角色。在此情况下,新角色需要以下权限:
{ "cluster_permissions": [ "cluster_composite_ops", "cluster_monitor" ], "index_permissions": [{ "index_patterns": [ "
firehose-index*
" ], "allowed_actions": [ "create_index", "manage", "crud" ] }] }
权限将因每个服务执行的操作而异。为数据建立索引的 Amazon IoT 规则或 Amazon Lambda 函数可能需要对 Kinesis Data Firehose 的类似权限,而仅执行搜索的 Lambda 函数可使用更有限的集合。
REST API 差异
根据您的不同,细粒度访问控制 REST API 略有不同OpenSearch/弹性搜索版本。在发出 PUT
请求之前,请发出 GET
请求以验证预期请求正文。例如,对 _plugins/_security/api/user
的 GET
请求将返回所有用户,然后您可以修改并使用这些用户来发出有效的 PUT
请求。
在 Elasticsearch 6. x,用于创建用户的请求与以下内容类似:
PUT _opendistro/_security/api/user/new-user { "password": "some-password", "roles": ["new-backend-role"] }
开启OpenSearch或者是 Elasticsearch 7.x,请求看起来像这样(更改_plugins
到_opendistro
如果使用 Elasticsearch):
PUT _plugins/_security/api/user/new-user { "password": "some-password", "backend_roles": ["new-backend-role"] }
此外,在 Elasticsearch 6. x 中,租户是角色的属性:
GET _opendistro/_security/api/roles/all_access { "all_access": { "cluster": ["UNLIMITED"], "tenants": { "admin_tenant": "RW" }, "indices": { "*": { "*": ["UNLIMITED"] } }, "readonly": "true" } }
在OpenSearch还有 Elasticsearch 7.x,它们是有自己的 URI 的对象(更改_plugins
到_opendistro
如果使用 Elasticsearch)::
GET _plugins/_security/api/tenants { "global_tenant": { "reserved": true, "hidden": false, "description": "Global tenant", "static": false } }
有关以下内容的文档OpenSearchREST API,请参阅安全插件 API 参考
提示
如果您使用内部用户数据库,则可以使用 curl
curl -XGET -u '
master-user
:master-user-password
' 'domain-endpoint
/_search' curl -XGET -u 'master-user
:master-user-password
' 'domain-endpoint
/_plugins/_security/api/user'
步骤 5:测试权限
现在,您的角色已经正确映射,您可以以受限用户身份登录并测试权限。
-
在新的私有浏览器窗口中,导航到OpenSearch域的仪表板 URL,使用
limited-user
证书,然后选择自己探索。 -
转到 Dev Tools (开发人员工具),然后运行原定设置搜索:
GET _search { "query": { "match_all": {} } }
请注意权限错误。
limited-user
没有运行集群范围内搜索的权限。 -
运行另一个搜索:
GET opensearch_dashboards_sample_data_flights/_search { "query": { "match_all": {} } }
请注意,在所有匹配的文档中,有一个为
true
的FlightDelay
字段,一个匿名化的Dest
字段,但没有FlightNum
字段。 -
在原始浏览器窗口中,以
master-user
身份登录,选择 Dev Tools (开发人员工具),然后执行相同的搜索。请注意权限、命中数、匹配文档和包含字段的差异。