Elastic在 ECE 2.3 的 GA 版中提供基於角色的訪問控制和外部身份驗證功能
做者Rory Hunterhtml
咱們很高興地宣佈,隨着 Elastic Cloud Enterprise (ECE) 2.3 的發佈,基於角色的訪問控制和外部源身份驗證功能現已正式推出。經過這些功能,您能夠擁有 ECE 平臺訪問權限由角色控制的多個用戶。您能夠在 ECE 中本地添加用戶,並鏈接您本身的目錄服務器或身份提供商,以向現有用戶授予訪問權限。api
咱們最初在 ECE 2.2 中針對這些功能添加了公測版支持。除了在 2.3 版中消除了若干漏洞以外,咱們還添加了對 Active Directory 以及現有 LDAP 和 SAML 選項的支持。安全
爲 ECE 啓用 RBAC 會添加一個安所有署,這是一個管理全部身份驗證配置和權限的系統部署。當用戶嘗試登陸時,ECE 將使用此安所有署來執行身份驗證,並根據狀況回退給系統用戶。若是用戶成功經過身份驗證,ECE 則會應用用戶分配的角色並將他們轉換爲細粒度權限,進而控制每一個用戶能夠查看的數據以及能夠執行的操做。服務器
請注意,用戶的 ECE 角色與用戶爲在 ECE 中託管的部署所保留的任何憑據是分開的。用戶可能沒有對 ECE 的訪問權限,但具備對託管部署的管理訪問權限,反之亦然。restful
ECE 在平臺和部署級別提供了一組豐富的操做。爲了減輕管理員在定義和維護他們本身角色定義方面的工做,ECE 提供了一組涵蓋最多見用例的預約義角色。這些角色將隨着更多功能的交付而不斷更新,所以,您無需擔憂將本身的定義保持最新狀態。ide
角色描述以下。用戶能夠擁有多個角色並根據須要進行組合,例如,「平臺管理員」能夠執行任何操做,所以,無需爲他們提供其餘角色。可是,「平臺查看人」能夠查看任何內容但不能更改,所以,您可能會將其與「部署管理人」角色組合使用。ui
經過這一角色,用戶可以以與安裝過程當中建立的系統級 admin
用戶(或 ECE 1.x 中的 root
)相同的方式查看全部數據,並在 ECE 中執行任何操做。這一角色一般僅由負責整個 ECE 平臺的管理員擁有。UI 中的「平臺」部分就是一個恰當的例子,由於它提供了有關(例如)分配器及其部署的信息,而且可以騰出分配器或將其置於維護模式。spa
這一角色提供對整個平臺和託管部署僅查看的權限。關聯的權限與 readonly
系統級用戶擁有的權限相同。這對於自動化很是有用,例如監控 ECE 的狀態。rest
這一角色容許用戶在平臺上建立和管理部署。具備這一角色的用戶能夠對部署執行任何操做:擴展、縮小、配置快照、重啓節點和重置密碼等等,但它不容許用戶訪問任何平臺級別的操做和資源,例如部署模板、實例配置、分配器和系統部署等。code
這一角色適用於任何負責管理部署但不須要查看平臺級信息(如開發團隊負責人)的人員。
擁有這一角色的用戶能夠查看部署,但沒法以任何方式修改它們。這一角色適用於支持人員或開發團隊成員。
要在 ECE 中開始使用 RBAC,最簡單的方法就是建立本機用戶。這些用戶將保存在 Elasticsearch 本機 Realm 內的安所有署中,並且僅支持有限數量的屬性:用戶名、全名、電子郵件、密碼、角色,以及它們當前是否已啓用。
單擊導航菜單中的「User」(用戶),可查看您的身份驗證提供程序,其中一個是「Native users」(本機用戶)配置文件。打開這個配置文件就會將您轉到一個全部本機用戶的列表。該列表包括由 ECE 安裝程序建立的兩個系統用戶。這些用戶沒法進行編輯或刪除,而且沒法在此處重置其密碼,請參閱文檔,瞭解有關如何重置密碼的更多說明。
在「Native users」(本機用戶)頁面中,您能夠建立、編輯和刪除本機用戶。這些用戶能夠像系統用戶同樣登陸 ECE,他們的訪問權限按照您分配給他們的角色進行控制。
ECE 2.3 還添加了一個「User Settings」(用戶設置)頁面。單擊該頁面右上角的用戶圖標,而後單擊「Settings」(設置)。若是您以本機用戶身份登陸,則能夠編輯您的姓名和電子郵件,或更改密碼。若是您使用外部身份驗證提供程序中的用戶登陸,則會看到一個只讀頁面,其中包含一些基本信息、身份驗證配置文件的名稱和類型,以及您擁有的角色。
若是您已有 LDAP、Active Directory 或 SAML 服務器,則能夠將 ECE 配置爲使用它們進行身份驗證和受權。您甚至能夠配置多個服務器,並按照您以與 Elasticsearch 相同方式設置的順序嘗試身份驗證。使用現有的身份驗證源意味着您只需在一個位置管理用戶。外部提供程序的角色映射配置容許您在 ECE 中將用戶屬性映射到角色,所以,用戶屬性的任何更改(如組成員身份)都會由 ECE 自動獲取。
在身份驗證提供程序概述頁面中,單擊「Add provider」(添加提供程序)並選擇一個類型。在下一頁,將配置該提供程序。下面讓咱們逐步完成基本 LDAP 設置的配置選項。
常規設置:
ldap:
或 ldaps:
協議。若是選擇基於 DNS 的負載平衡策略,則只能指定單個服務器。可信證書:
綁定憑據:
搜索模式設置:
組搜索設置:
角色映射:
完成後,單擊Create profile(建立配置文件),ECE 即會從新配置安所有署。您如今應該使用各類 LDAP 用戶進行登陸,檢查他們是否能夠進行身份驗證,以及他們的角色是否正確。您能夠從用戶設置頁面直接檢查角色,也能夠經過瀏覽 UI,確保他們可以查看的內容和執行的操做符合預期。
歸納來說,從 ECE 的角度看這個流程相似於 LDAP。您能夠建立 SAML 或 Active Directory 身份驗證提供程序,爲其命名,指定 ECE 應如何與服務器通訊,以及定義應適用的映射。
有關配置 SAML 身份驗證提供程序或 Active Directory 身份驗證提供程序的完整說明,請參閱文檔。
全部上述操做也可使用 REST API 來執行。例如,要提取全部用戶的列表,甚至是當前已禁用的用戶:
GET /api/v1/users?include_disabled=true
假設您須要授予新的系統管理員 Sarah 的權限。您能夠按以下所示爲她建立一個新的本機用戶:
POST /api/v1/users { "user_name": "sarah", "security": { "roles": ["ece_platform_admin"], "password": "deadb33f" } }
若是您隨後想更改 Sarah 的訪問權限,則能夠發送一個僅包含要更改字段的 PATCH 請求,在本例中角色爲:
PATCH /api/v1/users/sarah { "security": { "roles": ["ece_platform_viewer"] } }
最後,您可使用 DELETE 請求刪除 Sarah 的賬戶:
DELETE /api/v1/users/sarah
有關身份驗證提供程序端點的詳細信息和示例,請參閱 REST API 文檔。