5.2.3. 添加用户
添加用户会创建一个用户名,即 TYPE.ID
,这是 secret 密钥以及您用来创建用户的命令中包含的任何功能。
用户的密钥使用户能够通过 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>
选项将输出保存到文件中。
在创建客户端用户时,您可以创建没有能力的用户。除了仅仅通过身份验证外,没有功能的用户是无用的,因为客户端无法从监控器检索集群映射。但是,如果您希望以后使用 ceph auth caps
命令延迟添加功能,您可以创建没有功能的用户。
典型的用户至少具有 Ceph 监控器的读取功能,以及 Ceph OSD 的读取和写入功能。此外,用户的 OSD 权限通常仅限于访问特定的池。
# ceph auth add client.john mon 'allow r' osd 'allow rw pool=liverpool' # ceph auth get-or-create client.paul mon 'allow r' osd 'allow rw pool=liverpool' # ceph auth get-or-create client.george mon 'allow r' osd 'allow rw pool=liverpool' -o george.keyring # ceph auth get-or-create-key client.ringo mon 'allow r' osd 'allow rw pool=liverpool' -o ringo.key
重要
如果您为用户提供 OSD 的功能,但您不限制对特定池的访问,该用户将有权访问集群中的 ALL 池!