美文网首页
ceph 认证机制

ceph 认证机制

作者: wayyyy | 来源:发表于2024-03-23 13:10 被阅读0次

    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 用户介绍
    • 用户是指个人(ceph管理者)或 系统参与者(mon/osd/mds)。
    • 通过创建用户,可以控制用户或那个参与者能够访问ceph存储集群、以及可访问的存储池及存储池的数据。
    • 通过点号来分割用户类型和用户名,格式为TYPE.ID,例如:ceph.client.admin.keyring
    授权的能力
    能力 含义
    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 auth ls
      
    • 添加用户
      ceph auth add此命令是添加用户的规范方法。它会创建用户、生成秘钥,并添加所有指定的能力。

      # ceph auth add client.wgs mon 'allow r' osd 'allow rwx pool=wgspool' added key for client.wgs
      

      ceph auth get-or-create 创建用户并返回密钥文件格式的密钥信息,或者在用户存 在时返回用户名及密钥文件格式的密钥信息;

      # 
      
    • 删除用户

      #  ceph auth del client.wgs
      
    • 获取指定用户权限

      # ceph auth get client.admin
      
    • 验证权限

      #
      
    • 修改权限
      使用ceph auth caps命令可以指定用户以及更改用户的能力,设置新能力会完全覆盖当前的能力,因此,要加上之前的用户已经拥有的和新的能力。

      # 
      
    秘钥管理
    • 秘钥环
      ceph密钥环是一个保存了secrets、keys、certificates并且能够让客户端通过认证访问ceph的keyring file(集合文件),一个keyring file可以保存一个或者多个认证信息,每一个key都有一个实体名称加权限,类型为:{client、mon、mds、osd}.name

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

    • 创建

      # cceph-authtool --create-keyring wgs.key creating wgs.key
      
    • 验证秘钥环文件

      # ceph-authtool -l wgs.key
      
    • 导出用户认证信息至keyring文件

      # ceph auth get client.wgs -o ceph.client.wgs.keyring exported keyring for client.wgs
      
    • 从keyring文件恢复用户认证信息

      
      

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

    相关文章

      网友评论

          本文标题:ceph 认证机制

          本文链接:https://www.haomeiwen.com/subject/lwihtjtx.html