教程:内部用户数据库和 HTTP 基本身份验证
本教程介绍了另一个常见的精细访问控制用例:内部用户数据库和针对 OpenSearch 控制面板的 HTTP 基本身份验证中使用的主用户。
开始使用精细访问控制
-
使用以下设置创建域:
-
OpenSearch 1.0 或更高版本,或 Elasticsearch 7.9 或更高版本
-
公有访问权限
-
对内部用户数据库中的主用户的精细访问控制(对于本教程的其余部分,为
TheMasterUser
) -
控制面板的 Amazon Cognito 身份验证已禁用
-
以下访问策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "*" ] }, "Action": [ "es:ESHttp*" ], "Resource": "arn:aws:es:
region
:account
:domain/domain-name
/*" } ] } -
所有到达域的流量所需的 HTTPS
-
节点到节点加密
-
静态数据加密
-
-
导航到 OpenSearch 控制面板。
-
使用
TheMasterUser
进行登录。 -
选择 Try our sample data (试用我们的示例数据)。
-
添加示例飞行数据。
-
选择安全、内部用户、创建内部用户。
-
命名用户
new-user
并指定密码。然后选择 Create (创建)。 -
依次选择 Roles (角色)、Create role (创建角色)。
-
将角色命名为
new-role
。 -
对于索引权限,为索引模式指定
dashboards_sample_data_fli*
。 -
对于操作组,请选择读取。
-
对于 Document Level Security Query (文档级安全查询),请指定以下查询:
{ "match": { "FlightDelay": true } }
-
对于字段级安全性,请选择 Exclude(不包括)并指定
FlightNum
。 -
对于匿名,指定
Dest
。 -
选择 Create (创建) 。
-
选择映射的用户、管理映射。然后添加
new-user
到用户,选择映射。 -
返回角色列表,然后选择 opensearch_dashboards_user。选择映射的用户、管理映射。然后添加
new-user
到用户,选择映射。 -
在新的私有浏览器窗口中,导航到控制面板,使用
new-user
进行登录,然后选择 Explore on my own (自行浏览)。 -
转到 Dev Tools (开发人员工具),然后运行原定设置搜索:
GET _search { "query": { "match_all": {} } }
请注意权限错误。
new-user
没有运行集群范围内搜索的权限。 -
运行另一个搜索:
GET dashboards_sample_data_flights/_search { "query": { "match_all": {} } }
请注意,在所有匹配的文档中,有一个为
true
的FlightDelay
字段,一个匿名化的Dest
字段,但没有FlightNum
字段。 -
在原始浏览器窗口中,以
TheMasterUser
身份登录,选择 Dev Tools (开发人员工具),然后执行相同的搜索。请注意权限、命中数、匹配文档和包含字段的差异。