教學課程:內部使用者資料庫和 HTTP 基本身分驗證 - Amazon OpenSearch Service

教學課程:內部使用者資料庫和 HTTP 基本身分驗證

本教學課程涵蓋另一種熱門的精細存取控制使用案例:內部使用者資料庫中的主要使用者,以及適用於 OpenSearch Dashboards 的 HTTP 基本身分驗證。

開始使用精細存取控制

  1. 使用下列設定建立網域

    • OpenSearch 1.0 或更高版本,或者 Elasticsearch 7.9 或更高版本

    • 公用存取

    • 使用內部使用者資料庫 (本教學中的其餘部分稱為 TheMasterUser) 中的主要使用者進行精細存取控制。

    • Dashboards 的 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 Dashboards。

  3. 使用 TheMasterUser 登入。

  4. 選擇 Try our sample data (試用我們的範例資料)

  5. 新增範例航班資料。

  6. 選擇 Security (安全性)、Internal users (內部使用者)、Create internal user (建立內部使用者)。

  7. 命名使用者 new-user,然後指定密碼。然後選擇 Create (建立)

  8. 選擇 Roles (角色)Create role (建立角色)

  9. 將角色命名為 new-role

  10. 對於所有許可,請為索引模式指定 dashboards_sample_data_fli*

  11. 對於動作群組,請選擇 read (讀取)。

  12. 對於 Document level security (文件層級安全),指定以下查詢:

    { "match": { "FlightDelay": true } }
  13. 如需欄位層級的安全性,請選擇 Exclude (排除),然後指定 FlightNum

  14. 對於 Anonymization (匿名化),請指定 Dest

  15. 選擇 Create (建立)。

  16. 選擇 Mapped users (已映射的使用者)、Manage mapping (管理映射)。然後將 new-user 新增至 Users (使用者),然後選擇 Map (映射)。

  17. 傳回角色清單,然後選擇 opensearch_dashboards_user。選擇 Mapped users (已映射的使用者)、Manage mapping (管理映射)。然後將 new-user 新增至 Users (使用者),然後選擇 Map (映射)。

  18. 在新的私有瀏覽器視窗中,導覽至 Dashboards,使用 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 (開發工具) 並執行相同的搜尋。注意許可、命中數、相符文件以及所包含欄位中的差異。