認證策略
更新時間 2023-06-08 16:33:17
最近更新時間: 2023-06-08 16:33:17
分享文章
本章節主要介紹認證策略。
大數據平臺用戶需要對用戶進行身份認證,防止不合法用戶訪問集群。安全模式或者普通模式的集群均提供認證能力。
安全模式
安全模式的集群統一使用Kerberos認證協議進行安全認證。Kerberos協議支持客戶端與服務端進行相互認證,提高了安全性,可有效消除使用網絡發送用戶憑據進行模擬認證的安全風險。集群中由KrbServer服務提供Kerberos認證支持。
Kerberos用戶對象
Kerberos協議中,每個用戶對象即一個principal。一個完整的用戶對象包含兩個部分信息:用戶名和域名。在運維管理或應用開發的場景中,需要在客戶端認證用戶身份后才能連接到集群服務端。系統操作運維與業務場景中主要使用的用戶分為“人機”用戶和“機機”用戶。二者主要區別在于“機機”用戶密碼由系統隨機生成。
Kerberos認證
Kerberos認證支持兩種方式:密碼認證及keytab認證。認證有效時間默認為24小時。
- 密碼認證:通過輸入用戶正確的密碼完成身份認證。主要在運維管理場景中使用“人機”用戶進行認證,命令為kinit 用戶名 。
- keytab認證:keytab文件包含了用戶principal和用戶憑據的加密信息。使用keytab文件認證時,系統自動使用加密的憑據信息進行認證無需輸入用戶密碼。主要在組件應用開發場景中使用“機機”用戶進行認證。keytab文件也支持在kinit命令中使用。
普通模式
普通模式的集群不同組件使用原生開源的認證機制,不支持kinit認證命令。FusionInsight Manager(含DBService、KrbServer和LdapServer)使用的認證方式為用戶名密碼方式。組件使用的認證機制如下表所示。
表 組件認證方式一覽表
| 服務 | 認證方式 |
|---|---|
| ClickHouse | simple認證 |
| Flume | 無認證 |
| HBase | WebUI:無認證 客戶端:simple認證 |
| HDFS | WebUI:無認證 客戶端:simple認證 |
| Hive | simple認證 |
| Hue | 用戶名密碼認證 |
| Kafka | 無認證 |
| Loader | WebUI:用戶名密碼認證 客戶端:無認證 |
| Mapreduce | WebUI:無認證 客戶端:無認證 |
| Oozie | WebUI:用戶名密碼認證 客戶端:simple認證 |
| Spark2x | WebUI:無認證 客戶端:simple認證 |
| Storm | 無認證 |
| Yarn | WebUI:無認證 客戶端:simple認證 |
| ZooKeeper | simple認證 |
認證方式解釋如下:
- “simple認證”:在客戶端連接服務端的過程中,默認以客戶端執行用戶(例如操作系統用戶“root”或“omm”)自動進行認證,管理員或業務用戶不顯式感知認證,不需要kinit完成認證過程。
- “用戶名密碼認證”:使用集群中“人機”用戶的用戶名與密碼進行認證。
- “無認證”:默認任意的用戶都可以訪問服務端。