7.2. 管理 Ceph 用户
作为存储管理员,您可以通过创建、修改、删除和导入用户来管理 Ceph 用户。Ceph 客户端用户可以是个人或应用程序,它们使用 Ceph 客户端与红帽 Ceph Storage 集群守护进程交互。
7.2.1. 列出 Ceph 用户 复制链接链接已复制到粘贴板!
您可以使用命令行界面列出存储集群中的用户。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 节点的根级别访问权限。
流程
要列出存储集群中的用户,请执行以下操作:
示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
用户使用 TYPE.ID
的形式代表,例如 osd.0
代表一个用户,类型为 osd
,ID 是 0
;client.admin
是一个用户,类型是 client
,ID 为 admin
,这是默认的 client.admin
用户。另请注意,每个条目都有一个 key: VALUE
条目,以及一个或多个 caps:
条目。
您可以将 -o FILE_NAME
选项与 ceph auth list
一起使用,以将输出保存到文件中。
7.2.2. 显示 Ceph 用户信息 复制链接链接已复制到粘贴板!
您可以使用命令行界面显示 Ceph 的用户信息。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 节点的根级别访问权限。
流程
要检索特定用户、密钥和功能,请执行以下操作:
语法
ceph auth export TYPE.ID
ceph auth export TYPE.ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph auth export mgr.host02.eobuuv
[ceph: root@host01 /]# ceph auth export mgr.host02.eobuuv
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您也可以使用
-o FILE_NAME
选项。语法
ceph auth export TYPE.ID -o FILE_NAME
ceph auth export TYPE.ID -o FILE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph auth export osd.9 -o filename export auth(key=AQBV7U5g1XDULhAAKo2tw6ZhH1jki5aVui2v7g==)
[ceph: root@host01 /]# ceph auth export osd.9 -o filename export auth(key=AQBV7U5g1XDULhAAKo2tw6ZhH1jki5aVui2v7g==)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
auth export
命令与 auth get
相同,但也打印出内部 auid
,但与最终用户无关。
7.2.3. 添加新的 Ceph 用户 复制链接链接已复制到粘贴板!
添加用户会创建一个用户名,即 TYPE.ID
、一个 secret key 和您用于创建用户的命令中包含的任何功能。
用户密钥可让用户与 Ceph 存储集群进行身份验证。用户的能力授权用户在 Ceph 监视器(mon
)、Ceph OSD(osd
)或 Ceph 元数据服务器(mds
)上读取、写入或执行。
添加用户有几种方法:
-
ceph auth add
:此命令是添加用户的规范方式。它将创建用户,并生成一个密钥并添加任何指定的功能。 -
ceph auth get-or-create
:此命令通常是创建用户的最方便的方法,因为它会返回一个密钥文件,带有用户名(在括号中)和密钥。如果用户已存在,这个命令会以 keyfile 格式返回用户名和密钥。您可以使用-o FILE_NAME
选项将输出保存到文件中。 -
Ceph auth get-or-create-key
:这个命令是创建用户并仅返回用户密钥的便捷方式。这对只需要密钥的客户端(如libvirt
)非常有用。如果用户已存在,这个命令只返回密钥。您可以使用-o FILE_NAME
选项将输出保存到文件中。
在创建客户端用户时,您可以创建没有功能的用户。对于一个没有带有任何能力的用户,除进行身份验证之外没有任何用处,因为客户端无法从监控器检索 cluster map。但是,如果您想要以后使用 ceph auth caps
命令添加新的能力,则可以先创建一个没有权限的用户。
典型的用户在 Ceph OSD 上至少具有 Ceph 监视器的读取功能,以及 Ceph OSD 上的读写功能。另外,用户的 OSD 权限通常仅限于访问特定池。
[ceph: root@host01 /]# ceph auth add client.john mon 'allow r' osd 'allow rw pool=mypool' [ceph: root@host01 /]# ceph auth get-or-create client.paul mon 'allow r' osd 'allow rw pool=mypool' [ceph: root@host01 /]# ceph auth get-or-create client.george mon 'allow r' osd 'allow rw pool=mypool' -o george.keyring [ceph: root@host01 /]# ceph auth get-or-create-key client.ringo mon 'allow r' osd 'allow rw pool=mypool' -o ringo.key
[ceph: root@host01 /]# ceph auth add client.john mon 'allow r' osd 'allow rw pool=mypool'
[ceph: root@host01 /]# ceph auth get-or-create client.paul mon 'allow r' osd 'allow rw pool=mypool'
[ceph: root@host01 /]# ceph auth get-or-create client.george mon 'allow r' osd 'allow rw pool=mypool' -o george.keyring
[ceph: root@host01 /]# ceph auth get-or-create-key client.ringo mon 'allow r' osd 'allow rw pool=mypool' -o ringo.key
如果您为用户提供 OSD 的功能,但没有限制特定池的访问权限,则该用户将能够访问集群中的所有池!
7.2.4. 修改 Ceph 用户 复制链接链接已复制到粘贴板!
ceph auth caps
命令允许您指定用户并更改用户的能力。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 节点的根级别访问权限。
流程
要添加能力,请使用表单:
语法
ceph auth caps USERTYPE.USERID DAEMON 'allow [r|w|x|*|...] [pool=POOL_NAME] [namespace=NAMESPACE_NAME]'
ceph auth caps USERTYPE.USERID DAEMON 'allow [r|w|x|*|...] [pool=POOL_NAME] [namespace=NAMESPACE_NAME]'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph auth caps client.john mon 'allow r' osd 'allow rw pool=mypool' [ceph: root@host01 /]# ceph auth caps client.paul mon 'allow rw' osd 'allow rwx pool=mypool' [ceph: root@host01 /]# ceph auth caps client.brian-manager mon 'allow *' osd 'allow *'
[ceph: root@host01 /]# ceph auth caps client.john mon 'allow r' osd 'allow rw pool=mypool' [ceph: root@host01 /]# ceph auth caps client.paul mon 'allow rw' osd 'allow rwx pool=mypool' [ceph: root@host01 /]# ceph auth caps client.brian-manager mon 'allow *' osd 'allow *'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要删除功能,您可以重置能力。如果您希望用户无法访问之前设置的特定守护进程,请指定空字符串:
示例
[ceph: root@host01 /]# ceph auth caps client.ringo mon ' ' osd ' '
[ceph: root@host01 /]# ceph auth caps client.ringo mon ' ' osd ' '
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.2.5. 删除 Ceph 用户 复制链接链接已复制到粘贴板!
您可以使用命令行界面从 Ceph 存储集群中删除用户。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 节点的根级别访问权限。
流程
要删除用户,请使用
ceph auth del
:语法
ceph auth del TYPE.ID
ceph auth del TYPE.ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph auth del osd.6
[ceph: root@host01 /]# ceph auth del osd.6
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.2.6. 输出 Ceph 用户密钥 复制链接链接已复制到粘贴板!
您可以使用命令行界面显示 Ceph 用户的密钥信息。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 节点的根级别访问权限。
流程
将用户的身份验证密钥输出到标准输出:
语法
ceph auth print-key TYPE.ID
ceph auth print-key TYPE.ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph auth print-key osd.6 AQBQ7U5gAry3JRAA3NoPrqBBThpFMcRL6Sr+5w==[ceph: root@host01 /]#
[ceph: root@host01 /]# ceph auth print-key osd.6 AQBQ7U5gAry3JRAA3NoPrqBBThpFMcRL6Sr+5w==[ceph: root@host01 /]#
Copy to Clipboard Copied! Toggle word wrap Toggle overflow