11 在指令行上管理使用者和角色 #
本節說明如何管理 Ceph Dashboard 使用的使用者帳戶。該工具可協助您建立或修改使用者帳戶,以及設定正確的使用者角色和許可權。
11.1 管理密碼規則 #
依預設會啟用密碼規則功能,包括以下檢查:
密碼長度是否超過 N 個字元?
舊密碼和新密碼是否相同?
可以完全開啟或關閉密碼規則功能:
cephuser@adm >
ceph dashboard set-pwd-policy-enabled true|false
可以開啟或關閉以下個別檢查:
cephuser@adm >
ceph dashboard set-pwd-policy-check-length-enabled true|falsecephuser@adm >
ceph dashboard set-pwd-policy-check-oldpwd-enabled true|falsecephuser@adm >
ceph dashboard set-pwd-policy-check-username-enabled true|falsecephuser@adm >
ceph dashboard set-pwd-policy-check-exclusion-list-enabled true|falsecephuser@adm >
ceph dashboard set-pwd-policy-check-complexity-enabled true|falsecephuser@adm >
ceph dashboard set-pwd-policy-check-sequential-chars-enabled true|falsecephuser@adm >
ceph dashboard set-pwd-policy-check-repetitive-chars-enabled true|false
此外,可使用以下選項設定密碼規則行為。
最短密碼長度 (預設值為 8):
cephuser@adm >
ceph dashboard set-pwd-policy-min-length N最小密碼複雜性 (預設值為 10):
cephuser@adm >
ceph dashboard set-pwd-policy-min-complexity N密碼複雜性是透過對密碼中的每個字元進行分類來計算的。
密碼中不允許使用的逗號分隔的單字清單:
cephuser@adm >
ceph dashboard set-pwd-policy-exclusion-list word[,...]
11.2 管理使用者帳戶 #
Ceph Dashboard 支援管理多個使用者帳戶。每個使用者帳戶包含使用者名稱、密碼 (使用 bcrypt
以加密形式儲存)、選用名稱和選用電子郵件地址。
系統將使用者帳戶儲存在 Ceph 管理員的組態資料庫中,並在所有 Ceph 管理員例項之間全域共用該資訊。
使用以下指令可管理使用者帳戶:
- 顯示現有使用者:
cephuser@adm >
ceph dashboard ac-user-show [USERNAME]- 建立新使用者:
cephuser@adm >
ceph dashboard ac-user-create USERNAME [PASSWORD] [ROLENAME] [NAME] [EMAIL]- 刪除使用者:
cephuser@adm >
ceph dashboard ac-user-delete USERNAME- 更改使用者的密碼:
cephuser@adm >
ceph dashboard ac-user-set-password USERNAME PASSWORD- 修改使用者名稱和電子郵件:
cephuser@adm >
ceph dashboard ac-user-set-info USERNAME NAME EMAIL- 停用使用者
cephuser@adm >
ceph dashboard ac-user-disable USERNAME- 啟用使用者
cephuser@adm >
ceph dashboard ac-user-enable USERNAME
11.3 使用者角色和許可權 #
本節介紹您可為使用者角色指定的安全性範圍、如何管理使用者角色,以及如何為使用者帳戶指定角色。
11.3.1 定義安全性範圍 #
使用者帳戶與一組角色相關聯,這些角色定義了該使用者可以存取儀表板的哪些部分。儀表板的各個部分均會劃分在某個安全性範圍內。安全性範圍已預先定義且固定不變。目前可用的安全性範圍如下:
- hosts
包含與
功能表項目相關的所有功能。- config-opt
包含與 Ceph 組態選項管理相關的所有功能。
- pool
包含與池管理相關的所有功能。
- osd
包含與 Ceph OSD 管理相關的所有功能。
- monitor
包含與 Ceph 監控程式管理相關的所有功能。
- rbd-image
包含與 RADOS 區塊裝置影像管理相關的所有功能。
- rbd-mirroring
包含與 RADOS 區塊裝置鏡像管理相關的所有功能。
- iscsi
包含與 iSCSI 管理相關的所有功能。
- rgw
包含與物件閘道管理相關的所有功能。
- cephfs
包含與 CephFS 管理相關的所有功能。
- manager
包含與 Ceph 管理員管理相關的所有功能。
- log
包含與 Ceph 記錄管理相關的所有功能。
- grafana
包含與 Grafana 代理相關的所有功能。
- prometheus
包含與 Prometheus 警示管理相關的所有功能。
- dashboard-settings
允許變更儀表板設定。
11.3.2 指定使用者角色 #
角色指定了一個安全性範圍與一組許可權之間的一組對應。許可權分為四種類型:「read」、「create」、「update」和「delete」。
下面的範例指定了一個角色,具有該角色的使用者擁有池管理相關功能的「read」和「create」許可權,以及 RBD 影像管理相關功能的完整許可權:
{ 'role': 'my_new_role', 'description': 'My new role', 'scopes_permissions': { 'pool': ['read', 'create'], 'rbd-image': ['read', 'create', 'update', 'delete'] } }
儀表板提供了一組預先定義的角色,我們稱之為系統角色。全新安裝 Ceph Dashboard 後即可使用這些角色:
- administrator
提供針對所有安全性範圍的完整許可權。
- read-only
提供針對儀表板設定以外的其他所有安全性範圍的讀取許可權。
- block-manager
提供針對「rbd-image」、「rbd-mirroring」和「iscsi」範圍的完整許可權。
- rgw-manager
提供針對「rgw」範圍的完整許可權。
- cluster-manager
提供針對「hosts」、「osd」、「monitor」、「manager」和「config-opt」範圍的完整許可權。
- pool-manager
提供針對「pool」範圍的完整許可權。
- cephfs-manager
提供針對「cephfs」範圍的完整許可權。
11.3.2.1 管理自訂角色 #
您可以使用以下指令建立新使用者角色:
- 建立新角色:
cephuser@adm >
ceph dashboard ac-role-create ROLENAME [DESCRIPTION]- 刪除角色:
cephuser@adm >
ceph dashboard ac-role-delete ROLENAME- 新增範圍許可權至角色:
cephuser@adm >
ceph dashboard ac-role-add-scope-perms ROLENAME SCOPENAME PERMISSION [PERMISSION...]- 從角色中刪除範圍許可權:
cephuser@adm >
ceph dashboard ac-role-del-perms ROLENAME SCOPENAME
11.3.2.2 為使用者帳戶指定角色 #
使用以下指令可為使用者指定角色:
- 設定使用者角色:
cephuser@adm >
ceph dashboard ac-user-set-roles USERNAME ROLENAME [ROLENAME ...]- 新增其他角色至使用者:
cephuser@adm >
ceph dashboard ac-user-add-roles USERNAME ROLENAME [ROLENAME ...]- 刪除使用者的角色:
cephuser@adm >
ceph dashboard ac-user-del-roles USERNAME ROLENAME [ROLENAME ...]
如果您建立了自訂使用者角色,並打算以後使用 ceph.purge
執行程式移除 Ceph 叢集,則需要先清除自訂角色。如需更多詳細資料,請參閱第 13.9 節 「移除整個 Ceph 叢集」。
11.3.2.3 範例:建立使用者和自訂角色 #
本節說明建立具有以下功能的使用者帳戶的程序:可管理 RBD 影像、檢視和建立 Ceph 池,並擁有針對任何其他範圍的唯讀存取權。
建立名為
tux
的新使用者:cephuser@adm >
ceph dashboard ac-user-create tux PASSWORD建立角色並指定範圍許可權:
cephuser@adm >
ceph dashboard ac-role-create rbd/pool-managercephuser@adm >
ceph dashboard ac-role-add-scope-perms rbd/pool-manager \ rbd-image read create update deletecephuser@adm >
ceph dashboard ac-role-add-scope-perms rbd/pool-manager pool read create將角色與
tux
使用者相關聯:cephuser@adm >
ceph dashboard ac-user-set-roles tux rbd/pool-manager read-only
11.4 代理組態 #
如果您要建立固定 URL 以連接 Ceph Dashboard,或者不允許直接連接至管理員節點,可以設定一個代理將內送要求轉到目前使用中 ceph-mgr
例項。
11.4.1 使用反向代理存取儀表板 #
如果您要透過反向代理組態存取儀表板,則可能需要使用 URL 字首來存取。若要讓儀表板使用包含您字首的超連結,您可以進行 url_prefix
設定:
cephuser@adm >
ceph config set mgr mgr/dashboard/url_prefix URL_PREFIX
然後,便可透過網址 http://HOST_NAME:PORT_NUMBER/URL_PREFIX/
來存取儀表板。
11.4.2 停用重新導向 #
如果 Ceph Dashboard 位於 HAProxy 等負載平衡代理之後,請停用重新導向行為,以防止出現將內部 (無法解析的) URL 發佈到前端用戶端的情況。使用以下指令可讓儀表板以 HTTP 錯誤 (預設為500
) 進行回應,而不是重新導向至使用中儀表板:
cephuser@adm >
ceph config set mgr mgr/dashboard/standby_behaviour "error"
若要將設定重設為預設的重新導向行為,請使用以下指令:
cephuser@adm >
ceph config set mgr mgr/dashboard/standby_behaviour "redirect"
11.4.3 設定錯誤狀態代碼 #
如果停用了重新導向行為,則應自訂待命儀表板的 HTTP 狀態代碼。為此,請執行以下指令:
cephuser@adm >
ceph config set mgr mgr/dashboard/standby_error_status_code 503
11.4.4 HAProxy 範例組態 #
以下範例組態適用於使用 HAProxy 的 TLS/SSL 傳遞。
該組態適用於以下情況:如果儀表板發生容錯移轉,前端用戶端可能會收到 HTTP 重新導向 (303
) 回應,並將重新導向至無法解析的主機。
兩次 HAProxy 狀況檢查期間發生容錯移轉時,便會發生此情況。在這種情況下,先前處於使用中狀態的儀表板節點現在將以 303 進行回應,從而指向新使用中節點。為避免出現該情況,您應該考慮停用待命節點上的重新導向行為。
defaults log global option log-health-checks timeout connect 5s timeout client 50s timeout server 450s frontend dashboard_front mode http bind *:80 option httplog redirect scheme https code 301 if !{ ssl_fc } frontend dashboard_front_ssl mode tcp bind *:443 option tcplog default_backend dashboard_back_ssl backend dashboard_back_ssl mode tcp option httpchk GET / http-check expect status 200 server x HOST:PORT ssl check verify none server y HOST:PORT ssl check verify none server z HOST:PORT ssl check verify none
11.5 稽核 API 要求 #
Ceph Dashboard 的 REST API 可將 PUT、POST 和 DELETE 要求記錄至 Ceph 稽核記錄中。記錄功能預設處於停用狀態,但您可使用以下指令將其啟用:
cephuser@adm >
ceph dashboard set-audit-api-enabled true
如果記錄功能處於啟用狀態,將會記錄每個要求的以下參數:
- from
要求的來源,例如「https://[::1]:44410」。
- path
REST API 路徑,例如
/api/auth
。- method
「PUT」、「POST」或「DELETE」。
- user
使用者的名稱 (或「None」)。
範例記錄項目如下所示:
2019-02-06 10:33:01.302514 mgr.x [INF] [DASHBOARD] \ from='https://[::ffff:127.0.0.1]:37022' path='/api/rgw/user/exu' method='PUT' \ user='admin' params='{"max_buckets": "1000", "display_name": "Example User", "uid": "exu", "suspended": "0", "email": "user@example.com"}'
要求封包內容 (引數及其值的清單) 的記錄功能預設處於啟用狀態。您可以依照如下方式停用該功能:
cephuser@adm >
ceph dashboard set-audit-api-log-payload false
11.6 在 Ceph Dashboard 中設定 NFS Ganesha #
Ceph Dashboard 可以管理使用 CephFS 或物件閘道做為其後備儲存的 NFS Ganesha 輸出項。該儀表板用於管理儲存在 CephFS 叢集上的 RADOS 物件中的 NFS Ganesha 組態檔案。NFS Ganesha 必須將其部分組態儲存在 Ceph 叢集中。
執行以下指令以設定 NFS Ganesha 組態物件的位置:
cephuser@adm >
ceph dashboard set-ganesha-clusters-rados-pool-namespace pool_name[/namespace]
現在您便可以使用 Ceph Dashboard 管理 NFS Ganesha 輸出項。
11.6.1 設定多個 NFS Ganesha 叢集 #
Ceph Dashboard 支援管理屬於不同 NFS Ganesha 叢集的 NFS Ganesha 輸出項。建議每個 NFS Ganesha 叢集將其組態物件儲存在不同的 RADOS 池/名稱空間中,以便相互隔離各自組態。
使用以下指令可指定每個 NFS Ganesha 叢集的組態位置:
cephuser@adm >
ceph dashboard set-ganesha-clusters-rados-pool-namespace cluster_id:pool_name[/namespace](,cluster_id:pool_name[/namespace])*
cluster_id 是唯一識別 NFS Ganesha 叢集的任意字串。
使用多個 NFS Ganesha 叢集設定 Ceph Dashboard 時,Web UI 會自動讓您選擇輸出項所屬的叢集。
11.7 除錯外掛程式 #
Ceph Dashboard 外掛程式延伸了儀表板的功能。除錯外掛程式允許依據除錯模式來自訂儀表板的行為。可以使用以下指令啟用、停用或檢查除錯外掛程式:
cephuser@adm >
ceph dashboard debug status Debug: 'disabled'cephuser@adm >
ceph dashboard debug enable Debug: 'enabled'cephuser@adm >
dashboard debug disable Debug: 'disabled'
錯外掛程式預設處於停用狀態。這是適用於生產部署的建議設定。如果需要,可以啟用除錯模式,而無需重新啟動。