3.3 Ceph认证

为了识别用户并防止系统被攻击,Ceph提供了Cephx身份验证系统。该系统对用户和守护进程进行身份验证。Cephx不解决通过网络传输或在OSD中存储的数据加密问题,解决的是系统认证问题。

简单来说,Cephx认证的不仅有客户端用户(比如某客户端要想执行命令来操作集群,就要有登录Ceph的密钥),也有Ceph集群的服务器,这是一种特殊的用户类型MON/OSD/MDS。也就是说,Monitor、OSD、MDS都需要账号和密码来登录Ceph系统。

Cephx使用共享密钥进行身份验证,这意味着客户端和Monitor都具有客户端密钥的副本。身份验证协议使双方可以相互证明自己拥有密钥的副本,而无须透露密钥。也就是说,集群确定用户拥有密钥,并且用户确定集群有密钥的副本。

用户通过Ceph客户端访问Monitor。每个Monitor都可以对用户进行身份验证并分配密钥,因此使用Cephx时不会出现单点故障。Monitor返回身份验证数据,其中包含用于获取Ceph服务的会话密钥。该会话密钥本身已使用用户的永久密钥加密,因此用户只能向Monitor请求服务,然后客户端使用会话密钥从Monitor请求其所需的服务,并且由Monitor向客户端提供密钥,客户端拿到该密钥即可向实际处理数据的OSD发起认证。Monitor和OSD共享一个密钥,因此Monitor提供的密钥可以被集群中的任何OSD或元数据服务器共用。这种身份验证形式可防止有权访问通信介质的攻击者创建虚假消息或更改其他用户的合法消息,但只要该用户的密钥在到期前不被泄露就不会有威胁。要使用Cephx,管理员必须首先设置用户,具体设置方法本章不介绍。