跳到内容跳到页面导航:上一页 [access key p]/下一页 [access key n]
documentation.suse.com / SUSE Enterprise Storage 7.1 文档 / 管理和操作指南 / Ceph Dashboard / 在命令行上管理用户和角色
适用范围 SUSE Enterprise Storage 7.1

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|false
cephuser@adm > ceph dashboard set-pwd-policy-check-oldpwd-enabled true|false
cephuser@adm > ceph dashboard set-pwd-policy-check-username-enabled true|false
cephuser@adm > ceph dashboard set-pwd-policy-check-exclusion-list-enabled true|false
cephuser@adm > ceph dashboard set-pwd-policy-check-complexity-enabled true|false
cephuser@adm > ceph dashboard set-pwd-policy-check-sequential-chars-enabled true|false
cephuser@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 Monitor 的配置数据库中,并在所有 Ceph Manager 实例之间全局共享。

使用以下命令可管理用户帐户:

显示现有用户:
cephuser@adm > ceph dashboard ac-user-show [USERNAME]
创建新用户:
cephuser@adm > ceph dashboard ac-user-create USERNAME -i [PASSWORD_FILE] [ROLENAME] [NAME] [EMAIL]
删除用户:
cephuser@adm > ceph dashboard ac-user-delete USERNAME
更改用户密码:
cephuser@adm > ceph dashboard ac-user-set-password USERNAME -i PASSWORD_FILE
修改用户名和电子邮件:
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 Monitor 管理相关的所有特性。

rbd-image

包含与 RADOS 块设备映像管理相关的所有特性。

rbd-mirroring

包含与 RADOS 块设备镜像管理相关的所有特性。

iscsi

包含与 iSCSI 管理相关的所有特性。

rgw

包含与对象网关管理相关的所有特性。

cephfs

包含与 CephFS 管理相关的所有特性。

manager

包含与 Ceph Manager 管理相关的所有特性。

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 存储池,并拥有针对任何其他安全作用范围的只读访问权限。

  1. 创建名为 tux 的新用户:

     cephuser@adm > ceph dashboard ac-user-create tux PASSWORD
  2. 创建角色并指定作用范围权限:

    cephuser@adm > ceph dashboard ac-role-create rbd/pool-manager
    cephuser@adm > ceph dashboard ac-role-add-scope-perms rbd/pool-manager \
     rbd-image read create update delete
    cephuser@adm > ceph dashboard ac-role-add-scope-perms rbd/pool-manager pool read create
  3. 将角色与 tux 用户相关联:

    cephuser@adm > ceph dashboard ac-user-set-roles tux rbd/pool-manager read-only

11.4 代理配置

如果您要建立固定 URL 以访问 Ceph Dashboard,或者不允许直接连接到 Manager 节点,可以设置一个代理将传入请求转发到当前活动的 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 可在 Ceph 审计日志中记录 PUT、POST 和 DELETE 请求。记录功能默认处于禁用状态,但您可使用以下命令将其启用:

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'

默认情况下,它处于禁用状态。这是适用于生产部署的推荐设置。如果需要,可以启用调试模式,而无需重启动。