Elastic安全機制
在很多的情況下,出於安全的原因,我們需要對不同的Kibana用戶分配不同的用戶權限,這樣使得他們之間不能互相訪問彼此的資源,同
時他們也應該對不同的索引擁有不同的權限,比如讀,寫,管理等等。Elastic Security通過基於角色的功能提供授權存取控制(RBAC-
Role Based Access Control)。
一個用戶可擁有不同的role,並且每一個role都含有不同操作權限。使用RBAC,您可以控制訪問通過定義:
- users:創建具有不同的屬性的賬號(username, full name,郵件,及相應的roles)
- roles:分配一組命名權限,Elasticsearch里含有有多個內置角色
- resources:限制訪問的實體,比如document或一個索引
- privileges:代表一個或多個動作的命名組可以在資源上執行
- permissions:應用於一個特權的一組一個或多個特權或更多資源
什么是Space(空間)?
通過Space可以組織儀表板和其他將對象保存到有意義的類別中。在默認的情況下這個功能是啟動的。可以在elasticsearch.yml文件中進
行配置:
xpack.spaces.enabled: false
上面的配置將使得這個功能被取消。
在一個空間內創建的對象只能從該空間進行訪問。啟用安全性后,您可以控制哪個用戶擁有訪問哪些空間。來自特定空間的已保存對象將
被標記為在該空間的對象。
在默認的情況下,Kibana在啟動時幫我們創建一個名字叫做Default的空間。當我們從一個沒有空間的版本升級后,那么所有
的visualization將會被存於Default的空間里。當我們創建一個Space時,它只需要一個名字,它被用來生產URL識別符,我們還可以加入
一些描述符。
准備工作
-
安裝好elasticsearch和kibana
-
開啟x-pack,並設置好默認用戶的密碼等
-
登錄kibana界面
-
創建space
4.1 點擊左上角的Space空間,默認是Defalut,點擊“Manage Sapce”。進入到Space界面后,點擊右上角的“Create a space”.輸入名稱,然后點擊“Create space”.
如下圖所示:
4.2 同樣操作創建另一個space,如下圖所示:
4.3 最終顯示界面信息:
-
創建角色Role
5.1 點擊“Management”,再點擊“Security”下面的“Roles”,點擊右上角的“Create role”,操作步驟如下圖所示:
5.2 創建另一個角色test2,操作步驟同上,效果如下:
- 創建用戶。點擊“Management”,再點擊“Security”下面的“Users”,點擊右上角的“Create user”,按步驟創建就行了,選擇上一步創建的角色,最終效果如下:
- 點擊右上角的space,切換到Test1這個space
然后點擊“Dev Tools”工具,在這個Test1 space下創建一個索引test1:
```
PUT /test1/_doc/1
{
"name":"test1"
}
```
**注意:我這邊是先創建的role管理的索引,后創建的索引,注意索引名稱**
然后回到“Management”下的“Kibana”的“Index Patterns”,創建一個索引模式,輸入的時候會提示有test1和test2,但是我們只選擇test1,最終效果如下:
然后再點擊右上角的space,切換到Test2這個space,按照上述步驟,創建一個索引test2:
```
PUT /test2/_doc/1
{
"name":"test2"
}
```
然后回到“Management”下的“Kibana”的“Index Patterns”,創建一個索引模式,輸入的時候會提示有test1和test2,但是我們只選擇test2,最終效果如下:
- 然后點擊左邊導航第一個“Discover”,會發現,在test1這個space下只能看到
test1*
, 在test2這個space下只能看到test2*
,在default這個默認的space下看不到任何索引。
總結:深刻理解這句話:在一個空間內創建的對象只能從該空間進行訪問
若是已有索引模式,則可以先刪除索引模式,然后創建space,創建角色,創建用戶等,切換到創建的space,再創建索引模式。也就是說需要在這個space下進行操作才行。