ceph3--认证机制/存储池相关操作/dashboard/

一、ceph的认证机制

Ceph 使用 cephx 协议对客户端进行身份认证。

#1、列出用户:
$ ceph auth list #注意:针对用户采用 TYPE.ID 表示法,例如 osd.0 指定是 osd 类并且 ID 为 0 的用户(节点),client.admin 是 client 类型的用户,其 ID 为 admin,
$ ceph auth list -o 123.key #将输出保存到某个文件

#2、ceph 授权和使能:
$ mon 'allow rwx' 
$ mon 'allow profile osd'
$ osd 'allow capability' [pool=poolname] [namespace=namespace-name] 
#包括 r、w、x、class-read、class-write(类读取)和 profile osd(类写入),另外 OSD 能力还允 许进行存储池和名称空间设置。
$ mds 'allow'  #只需要 allow 或空都表示允许

能力一览表: 
r:向用户授予读取权限(访问监视器(mon)以检索 CRUSH 运行图时需具有此能力)
w:向用户授予针对对象的写入权限。 
x:授予用户调用类方法(包括读取和写入)的能力,以及在监视器(mon)中执行 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:授予用户引导元数据服务器的权限,授权部署工具权限,使其在引导元数据服务器时有权添加密钥。


#3、管理用户:
#(1)ceph auth add:会创建用户、生成密钥,并添加所有指定的能力
#添加认证 key: 
$ ceph auth add client.tom mon 'allow r' osd 'allow rwx pool=mypool'
#验证 key 
$ ceph auth get client.tom

#(2)ceph auth get-or-create:创建用户较为常见的方式之一,它会返回包含用户名(在方 括号中)和密钥的密钥文,如果该用户已存在,此命令只以密钥文件格式返回用户名和密钥
#创建用户 
$ ceph auth get-or-create client.jack mon 'allow r' osd 'allow rwx pool=mypool'
#验证用户 
$ ceph auth get client.jack
#再次创建用户 
$ ceph auth get-or-create client.jack mon 'allow r' osd 'allow rwx pool=mypool'

#(3)ceph auth get-or-create-key:创建用户并仅返回用户密钥。如果该用户已存在,此命令只返回密钥
#如果希望稍后再添加能力,可以使用 ceph auth caps 命令创建一个不具有能力的用户。
$ ceph auth get-or-create-key client.jack mon 'allow r' osd 'allow rwx pool=mypool' #用户有 key 就显示没有就创建

#(4)ceph auth print-key:只获取单个指定用户的 key 信息
$ ceph auth print-key client.jack

#(5)修改用户能力:
ceph auth caps 命令可以指定用户以及更改该用户的能力
#看当前能力
$ ceph auth get USERTYPE.USERID 
#添加指定能力: 
$ ceph auth caps USERTYPE.USERID daemon 'allow [r|w|x|*|...] \ 
[pool=pool-name] [namespace=namespace-name]' [daemon 'allow [r|w|x|*|...] \ 
[pool=pool-name] [namespace=namespace-name]']

#查看用户当前权限 
$ ceph auth get client.jack
#修改用户权限 
$ ceph auth caps client.jack mon 'allow r' osd 'allow rw pool=mypool'
#再次验证权限 
$ ceph auth get client.jack

#(6)删除用户:
$ ceph auth del client.tom


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

当客户端访问 ceph 集群时,ceph 会使用以下四个密钥环文件预设置密钥环设置: 
/etc/ceph/<$cluster name>.<user $type>.<user $id>.keyring #保存单个用户的 keyring 
/etc/ceph/cluster.keyring #保存多个用户的 keyring 
/etc/ceph/keyring #未定义集群名称的多个用户的 keyring 
/etc/ceph/keyring.bin #编译后的二进制文件

#(1)通过秘钥环文件备份与恢复用户:
#使用 ceph auth add 等命令添加的用户,还需要额外使用 ceph-authtool 命令为其创建用户秘钥环文件。
$ ceph-authtool --create-keyring FILE

#导出用户认证信息至 keyring 文件:
#创建用户: 
$ ceph auth get-or-create client.user1 mon 'allow r' osd 'allow * pool=mypool'
#验证用户 
$ ceph auth get client.user1
#创建 keyring 文件: 
$ ceph-authtool --create-keyring ceph.client.user1.keyring 
#验证 keyring 文件: 
$ cat ceph.client.user1.keyring #是个空文件 
$ file ceph.client.user1.keyring
#导出 keyring 至指定文件 
$ ceph auth get client.user1 -o ceph.client.user1.keyring
#验证指定用户的 keyring 文件: 
$ cat ceph.client.user1.keyring

#从 keyring 文件恢复用户认证信息:
$ cat ceph.client.user1.keyring #验证用户的认证文件
$ ceph auth del client.user1 #演示误删除用户
$ ceph auth import -i ceph.client.user1.keyring #导入用户
$ ceph auth get client.user1 #验证已恢复用户

#(2)秘钥环文件多用户:
#一个 keyring 文件中可以包含多个不同用户的认证文件。
#将多用户导出至秘钥环: 
#创建 keyring 文件: 
$ ceph-authtool --create-keyring ceph.client.user.keyring #创建空的 keyring 文件
#把指定的 admin 用户的 keyring 文件内容导入到 user 用户的 keyring 文件: 
$ceph-authtool ./ceph.client.user.keyring --import-keyring ./ceph.client.admin.keyring
#验证 keyring 文件: 
$ ceph-authtool -l ./ceph.client.user.keyring
#再导入一个其他用户的 keyring: 
$ ceph-authtool ./ceph.client.user.keyring --import-keyring ./ceph.client.user1.keyring
#再次验证 keyring 文件是否包含多个用户的认证信息: 
$ ceph-authtool -l ./ce
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值