xpack用戶管理


xpack對權限的管理包含兩個主要的概念,用戶和角色。角色可以限定具體的權限,包括讀、寫、管理等,
可以限定到index或具體字段級別。用戶則可以擁有一個或多個角色信息。有了這兩個概念就使得權限的管理非常明確清晰。

權限管理主要有兩種方式:

1.kibana mangement管理界面進行角色和用戶的管理操作

2.通過RESTful API的方式進行用戶管理
推薦使用第一種,直觀方便,但是需要收費。
###########################################################################################
下面是使用ESTful API的方式進行用戶管理的demo及相關信息:

權限控制流程:
1.創建角色

POST /_xpack/security/role/my_admin_role
{
"cluster": ["all"],
"indices": [
{
"names": [ "index1", "index2" ],
"privileges": ["all"],
"field_security" : {
"grant" : [ "title", "body" ]
},
"query": "{\"match\": {\"title\": \"foo\"}}" // optional
}
],
"run_as": [ "other_user" ], // optional
"metadata" : {
"version" : 1
}
}

request body
cluster:集群級別操作權限的列表
indices:索引權限列表
field_security:字段權限
names (required):賦予權限的索引名稱
privileges(required):索引級別的權限
query:查詢規則限定
metadata:暫時不了解其作用
run_as:允許已認證的用戶代表其他用戶執行操作

刪除角色

DELETE /_xpack/security/role/my_admin_role

api官網地址
https://www.elastic.co/guide/en/elasticsearch/reference/6.2/security-api-roles.html


2.添加用戶

POST /_xpack/security/user/jacknich
{
"password" : "j@rV1s",
"roles" : [ "admin", "other_role1" ],
"full_name" : "Jack Nicholson",
"email" : "jacknich@example.com",
"metadata" : {
"intelligence" : 7
}
}

request body
enabled:用戶是否有效
email:email地址
full_name:全稱
metadata:要與用戶關聯的任意元數據
password (required):密碼
roles (required):角色

修改密碼

PUT /_xpack/security/user/jacknich/_password
{
"password" : "s3cr3t"
}

用戶管理api

GET /_xpack/security/user
GET /_xpack/security/user/<username>
DELETE /_xpack/security/user/<username>
POST /_xpack/security/user/<username>
PUT /_xpack/security/user/<username>
PUT /_xpack/security/user/<username>/_disable
PUT /_xpack/security/user/<username>/_enable
PUT /_xpack/security/user/<username>/_password

api官網地址
https://www.elastic.co/guide/en/elasticsearch/reference/6.2/security-api-users.html


角色管理api

GET /_xpack/security/role
GET /_xpack/security/role/<name>
POST /_xpack/security/role/<name>/_clear_cache
POST /_xpack/security/role/<name>
PUT /_xpack/security/role/<name>
DELETE /_xpack/security/role/<name>

創建角色

POST /_xpack/security/role/my_admin_role
{
"cluster": ["all"],
"indices": [
{
"names": [ "index1", "index2" ],
"privileges": ["all"],
"field_security" : { // optional
"grant" : [ "title", "body" ]
},
"query": "{\"match\": {\"title\": \"foo\"}}" // optional
}
],
"run_as": [ "other_user" ], // optional
"metadata" : { // optional
"version" : 1
}
}

#################################################################
其他相關信息
內置賬號

username    role    權限
elastic    superuser    內置的超級用戶
kibana    kibana_system    用戶kibana用來連接elasticsearch並與之通信。Kibana服務器以該用戶身份提交請求以訪問集群監視API和 .kibana索引。不能訪問index。
logstash_system    logstash_system    用戶Logstash在Elasticsearch中存儲監控信息時使用

Security-Roles權限

ingest_admin    授予訪問權限以管理所有索引模板和所有攝取管道配置。這個角色不能提供創建索引的能力; 這些特權必須在一個單獨的角色中定義。
kibana_dashboard_only_user    授予對Kibana儀表板的訪問權限以及對.kibana索引的只讀權限。 這個角色無法訪問Kibana中的編輯工具。
kibana_system    授予Kibana系統用戶讀取和寫入Kibana索引所需的訪問權限,管理索引模板並檢查Elasticsearch集群的可用性。 此角色授予對.monitoring- 索引的讀取訪問權限以及對.reporting- 索引的讀取和寫入訪問權限。
kibana_user    授予Kibana用戶所需的最低權限。 此角色授予訪問集群的Kibana索引和授予監視權限。
logstash_admin    授予訪問用於管理配置的.logstash *索引的權限。
logstash_system    授予Logstash系統用戶所需的訪問權限,以將系統級別的數據(如監視)發送給Elasticsearch。不應將此角色分配給用戶,因為授予的權限可能會在不同版本之間發生變化。此角色不提供對logstash索引的訪問權限,不適合在Logstash管道中使用。
machine_learning_admin    授予manage_ml群集權限並讀取.ml- *索引的訪問權限。
machine_learning_user    授予查看X-Pack機器學習配置,狀態和結果所需的最低權限。此角色授予monitor_ml集群特權,並可以讀取.ml-notifications和.ml-anomalies *索引,以存儲機器學習結果
monitoring_user    授予除使用Kibana所需的X-Pack監視用戶以外的任何用戶所需的最低權限。 這個角色允許訪問監控指標。 監控用戶也應該分配kibana_user角色
remote_monitoring_agent    授予遠程監視代理程序將數據寫入此群集所需的最低權限
reporting_user    授予使用Kibana所需的X-Pack報告用戶所需的特定權限。 這個角色允許訪問報告指數。 還應該為報告用戶分配kibana_user角色和一個授予他們訪問將用於生成報告的數據的角色。 
superuser #授予對群集的完全訪問權限,包括所有索引和數據。 具有超級用戶角色的用戶還可以管理用戶和角色,並模擬系統中的任何其他用戶。 由於此角色的寬容性質,在將其分配給用戶時要格外小心
transport_client    通過Java傳輸客戶端授予訪問集群所需的權限。 Java傳輸客戶端使用節點活性API和群集狀態API(當啟用嗅探時)獲取有關群集中節點的信息。 如果他們使用傳輸客戶端,請為您的用戶分配此角色。使用傳輸客戶端有效地意味着用戶被授予訪問群集狀態的權限。這意味着用戶可以查看所有索引,索引模板,映射,節點以及集群基本所有內容的元數據。但是,此角色不授予查看所有索引中的數據的權限
watcher_admin    授予對.watches索引的寫入權限,讀取對監視歷史記錄的訪問權限和觸發的監視索引,並允許執行所有監視器操作
watcher_user    授予讀取.watches索引,獲取觀看動作和觀察者統計信息的權限

官網地址
https://www.elastic.co/guide/en/x-pack/6.2/built-in-roles.html


cluster權限,可以分配給角色的權限
權限詳情

all    所有集群管理操作,如快照,節點關閉/重新啟動,設置更新,重新路由或管理用戶和角色
monitor    所有集群只讀操作,如集群運行狀況,熱線程,節點信息,節點和集群統計信息,快照/恢復狀態,等待集群任務
monitor_ml    所有只讀機器學習操作,例如獲取有關數據傳輸,作業,模型快照或結果的信息
monitor_watcher    所有只讀操作,例如獲取watch和watcher統計信息
manage    構建monitor並添加更改集群中值的集群操作。這包括快照,更新設置和重新路由。此特權不包括管理安全性的能力
manage_index_templates    索引模板上的所有操作
manage_ml    所有機器學習操作,例如創建和刪除數據傳輸,作業和模型快照。數據處理以具有提升特權的系統用戶身份運行,包括讀取所有索引的權限
manage_pipeline    攝取管道的所有操作
manage_security    所有與安全相關的操作,例如對用戶和角色的CRUD操作以及緩存清除
manage_watcher    所有觀察者操作,例如放置watches,執行,激活或確認。Watches作為具有提升特權的系統用戶運行,包括讀取和寫入所有索引的權限。Watches作為具有提升特權的系統用戶運行,包括讀取和寫入所有索引的權限
transport_client    傳輸客戶端連接所需的所有權限。遠程群集需要啟用跨級群搜索

indices權限
權限詳情

all    索引上的任何操作
monitor    監控所需的所有操作(恢復,細分信息,索引統計信息和狀態)
manage    所有monitor特權加索引管理(別名,分析,緩存清除,關閉,刪除,存在,刷新,映射,打開,強制合並,刷新,設置,搜索分片,模板,驗證)
view_index_metadata    對索引元數據(別名,別名存在,獲取索引,存在,字段映射,映射,搜索分片,類型存在,驗證,warmers,設置)進行只讀訪問。此特權主要供Kibana用戶使用
read    只讀操作(計數,解釋,獲取,mget,獲取索引腳本,更多像這樣,多滲透/搜索/ termvector,滲透,滾動,clear_scroll,搜索,建議,tv)
read_cross_cluster    只讀訪問來自遠程集群的搜索操作
index    索引和更新文件。還授予對更新映射操作的訪問權限
create    索引文件。還授予對更新映射操作的訪問權限
delete    刪除文件
write    對文檔執行所有寫入操作的權限,包括索引,更新和刪除文檔以及執行批量操作的權限。還授予對更新映射操作的訪問權限
delete_index    刪除索引
create_index    創建索引。創建索引請求可能包含在創建索引時添加到索引的別名。在這種情況下,該請求最好有manage權限,同時設置索引和別名

官網地址
https://www.elastic.co/guide/en/x-pack/6.2/security-privileges.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM