教學課程:內部使用者資料庫和 HTTP 基本身分驗證
本教學課程涵蓋另一種熱門的精細存取控制使用案例:內部使用者資料庫中的主要使用者,以及適用於 OpenSearch Dashboards 的 HTTP 基本身分驗證。
開始使用精細存取控制
-
使用下列設定建立網域:
-
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
-
節點對節點加密
-
靜態資料加密
-
-
導覽至 OpenSearch Dashboards。
-
使用
TheMasterUser
登入。 -
選擇 Try our sample data (試用我們的範例資料)。
-
新增範例航班資料。
-
選擇 Security (安全性)、Internal users (內部使用者)、Create internal user (建立內部使用者)。
-
命名使用者
new-user
,然後指定密碼。然後選擇 Create (建立)。 -
選擇 Roles (角色)、Create role (建立角色)。
-
將角色命名為
new-role
。 -
對於所有許可,請為索引模式指定
dashboards_sample_data_fli*
。 -
對於動作群組,請選擇 read (讀取)。
-
對於 Document level security (文件層級安全),指定以下查詢:
{ "match": { "FlightDelay": true } }
-
如需欄位層級的安全性,請選擇 Exclude (排除),然後指定
FlightNum
。 -
對於 Anonymization (匿名化),請指定
Dest
。 -
選擇 Create (建立)。
-
選擇 Mapped users (已映射的使用者)、Manage mapping (管理映射)。然後將
new-user
新增至 Users (使用者),然後選擇 Map (映射)。 -
傳回角色清單,然後選擇 opensearch_dashboards_user。選擇 Mapped users (已映射的使用者)、Manage mapping (管理映射)。然後將
new-user
新增至 Users (使用者),然後選擇 Map (映射)。 -
在新的私有瀏覽器視窗中,導覽至 Dashboards,使用
new-user
登入,然後選擇 Explore on my own (自行探索)。 -
移至 Dev Tools (開發工具) 並執行預設搜尋:
GET _search { "query": { "match_all": {} } }
請注意許可錯誤。
new-user
沒有執行全叢集搜尋的許可。 -
執行另一項搜尋:
GET dashboards_sample_data_flights/_search { "query": { "match_all": {} } }
請注意,所有相符文件的都有值為
FlightDelay
的true
欄位、匿名化的Dest
欄位,並不包含FlightNum
欄位。 -
在原始瀏覽器視窗中,以
TheMasterUser
的身分登入、選擇 Dev Tools (開發工具) 並執行相同的搜尋。注意許可、命中數、相符文件以及所包含欄位中的差異。