CephFS权限管理

CephFS权限管理

身份认证原理

  1. 用户通过客户端向 MON 发起请求。
  2. 客户端将用户名传递到 MON。
  3. MON 对用户名进行检查,若用户存在,则通过加密用户密钥生成一个 session key 并返回客户端。
  4. 客户端通过共享密钥解密 session key,只有拥有相同用户密钥环文件的客户端可以完成解密。
  5. 客户端得到 session key 后,客户端持有 session key 再次向 MON 发起请求
  6. MON 生成一个 ticket,同样使用用户密钥进行加密,然后发送给客户端。
  7. 客户端同样通过共享密钥解密得到 ticket。
  8. 往后,客户端持有 ticket 向 MON、OSD 发起请求。

创建CephFS

 ceph osd pool create cephfs_data 64 64 # 创建存数据的pool
 ceph osd pool create cephfs_metadata 32 32 #创建存储元数据的pool
 ceph fs new lwq-fs   cephfs_metadata  cephfs_data  #把2个pool关联起来创建cephfs
 ceph fs ls  #查看cephfs

查看用户

eph auth ls  #查看已经存在的用户
ceph auth list #可以查看用户权限以及 key string
ceph auth get client.admin #列出用户的权限信息

创建用户

ceph auth get-or-create client.bruce mon 'allow r' mds 'allow r, allow rw path=/bruce' osd 'allow rw pool=cephfs_data' #创建bruce用户,只能在bruce目录下面操作 其他目录有读权限

ceph auth get-or-create client.lzy mon 'allow r ' mds ' allow rw path=/test' osd 'allow rw pool=cephfs_data'  #创建lzy用户只能在test目录下面操作 其他目录没有权限

 ceph auth get-or-create client.trade mon 'allow r' mds 'allow r, allow rw path=/trade' osd 'allow rw pool=cephfs_data'
# mds caps 可以针对路径进行授权。
# osd caps 可以针对 pool 进行授权, 这个还是比较好使的, 但是要注意与前面的 path 保持一致.

授权类型

allow:在守护进程进行访问设置之前就已经具有特定权限,常见于管理员和守护进程用户。
r:授予用户读的权限,读取集群各个组件(MON/OSD/MDS/CRUSH/PG)的状态,但是不能修改。
w:授予用户写对象的权限,与 r 配合使用,修改集群的各个组件的状态,可以执行组件的各个动作指令。
x:授予用户调用类方法的能力,仅仅和 ceph auth 操作相关。
class-read:授予用户调用类读取方法的能力,是 x 的子集。
class-write:授予用户调用类写入方法的能力,是 x 的子集。
*:授予用户 rwx 权限。

客户端挂载

ceph auth print-key client.bruce > bruce.key  #导出密钥
scp密钥到客户端的/etc/ceph/ 目录下面
mount -t ceph 10.4.7.18:6789:/bruce /mnt/bruce -o name=bruce,secret=AQBpi8FhWy2gBxAAKUNrlRnDqMTL7V9ejo+oKg==  #明文挂载
mount -t ceph 10.4.7.18:6789:/bruce /mnt/bruce -o name=bruce,secretfile=/etc/bruce.key   #这样历史记录里面就没有密钥的明文信息了

おすすめ

転載: blog.csdn.net/weixin_43272125/article/details/122210760