教程:内部用户数据库和 HTTP 基本身份验证 - Amazon Opensearch Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

教程:内部用户数据库和 HTTP 基本身份验证

本教程介绍了另一个常见的精细访问控制用例:内部用户数据库和针对 OpenSearch 控制面板的 HTTP 基本身份验证中使用的主用户。

开始使用精细访问控制

  1. 使用以下设置创建域

    • 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

    • 节点到节点加密

    • 静态数据加密

  2. 导航到 OpenSearch 控制面板。

  3. 使用 TheMasterUser 进行登录。

  4. 选择 Try our sample data (试用我们的示例数据)

  5. 添加示例飞行数据。

  6. 选择安全内部用户创建内部用户

  7. 命名用户 new-user 并指定密码。然后选择 Create (创建)

  8. 依次选择 Roles (角色)Create role (创建角色)

  9. 将角色命名为 new-role

  10. 对于索引权限,为索引模式指定 dashboards_sample_data_fli*

  11. 对于操作组,请选择读取

  12. 对于 Document Level Security Query (文档级安全查询),请指定以下查询:

    { "match": { "FlightDelay": true } }
  13. 对于字段级安全性,请选择 Exclude(不包括)并指定 FlightNum

  14. 对于匿名,指定 Dest

  15. 选择创建

  16. 选择映射的用户管理映射。然后添加 new-user用户,选择映射

  17. 返回角色列表,然后选择 opensearch_dashboards_user。选择映射的用户管理映射。然后添加 new-user用户,选择映射

  18. 在新的私有浏览器窗口中,导航到控制面板,使用 new-user 进行登录,然后选择 Explore on my own (自行浏览)

  19. 转到 Dev Tools (开发人员工具),然后运行原定设置搜索:

    GET _search { "query": { "match_all": {} } }

    请注意权限错误。new-user 没有运行集群范围内搜索的权限。

  20. 运行另一个搜索:

    GET dashboards_sample_data_flights/_search { "query": { "match_all": {} } }

    请注意,在所有匹配的文档中,有一个为 FlightDelaytrue 字段,一个匿名化的 Dest 字段,但没有 FlightNum 字段。

  21. 在原始浏览器窗口中,以 TheMasterUser 身份登录,选择 Dev Tools (开发人员工具),然后执行相同的搜索。请注意权限、命中数、匹配文档和包含字段的差异。