ceph 认证机制

2024-03-23  本文已影响0人  wayyyy

ceph使用cephx协议对客户端进行身份认证,cephx用于对ceph保存的数据进行认证访问和授权,与mon通信的请求都要经过ceph认证通过,但是也可以在mon节点关闭ceph认证,但是关闭认证之后任何访问都将被允许,因此无法保证数据的安全性。同时,Mon 还负责维护整个集群的用户名和秘钥等;

认证流程

Ceph 客户端与 Mon 之间在创建时,存在一对域共享秘钥。

  1. 客户端向 Monitor 发出请求时,Monitor 会返回用于验证用户身份的数据结构,其中包含获取 Ceph 服务时用到的临时 Session key,这个是加密的;

  2. 客户端拿到这个临时加密的 Session key后,客户端通过密钥进行解密 Seesion key;(其实这里双方提前有一个域共享密钥,只有有了它之后,才可以对临时 Session key 进行解密)

  3. 然后客户端使用解密的 Session key 向 mon 请求所需要的服务,比如OSD,然后 mon 给出一个令牌 ticket ,并且 mon 还需要检查这个 Session key 的合法性;并且 mon 提供一个 ticket需要使用Session key 对ticket进行对称加密,然后发送给客户端,客户端也具有这个Session key,所以他可以解密出ticket;

  4. 客户端然后通过tocket 去访问对应的服务,这里以OSD为例,去访问OSD服务;

注意session key与 ticket 都会有过期时间的,就算用户拿到了 session key与ticket,过一段时间后就失效了。
客户端与 ceph 组件服务并没有一直使用域共享密钥进行通信;域共享密钥,只有在客户端与 Monitor 在共享 Session key的时候使用到;同时,还可以发现域共享密钥并没有在互联网上面进行传输;
CephX 身份验证功能仅限制Ceph的各组件之间,它不能扩展到其它非Ceph组件,它并不解决数据传输加密的问题;

image.png
ceph 用户介绍
授权的能力
能力 含义
r 向用户授予读取权限,访问监视器(mon)以检索CRUSH运行图时需要由此能力
w 向用户授予针对对象的写入权限
x 授予用户调用类方法(包括读取和写入)的能力,以及在监视器中执行auth操作的能力
* 授予用户对特定守护进程/存储池的读取、写入和执行权限,以及执行管理命令的能力
class-read 授予用户调用类读取方法的能力,属于是x能力的子集
class-write 授予用户调用类写入方法的能力,属于是x能力的子集
profile osd 授予用户以某个OSD身份连接到其它OSD或监视器的权限。授予OSD权限,使OSD能够处理复制检测信号流量和状态报告(获取OSD的状态信息)
profile mds 授予用户以某个MDS身份连接到其它MDS或监视器权限
profile bootstrap-osd 授予用户引导OSD的权限(初始化OSD并将OSD加入ceph集群),授权给部署工具,使其在引导OSD时有权添加秘钥
profile bootstrap-mds 授予用户引导元数据服务器的权限,授权部署工具权限,使其在引导元数据服务器时有权添加秘钥
用户管理

ceph 主要通过ceph auth命令来进行用户管理。

秘钥管理

使用ceph-authtool命令为其创建用户密钥环文件。


参考资料
1、https://www.modb.pro/db/50693

上一篇 下一篇

猜你喜欢

热点阅读