首页 > 其他分享 >Ceph使用---CephX认证机制及用户管理

Ceph使用---CephX认证机制及用户管理

时间:2022-10-09 11:48:14浏览次数:68  
标签:CephX ceph keyring caps --- client allow cephadmin Ceph

一、CephX认证机制介绍

Ceph使用cephx协议对客户端进行身份认证
cephx用于对ceph保存的数据进行认证访问和授权,用于对访问ceph的请求进行认证和授权检测,与mon通信的请求都要经过ceph认证通过,但是也可以在mon节点关闭cephx认证,但是关闭认证之后任何访问都将被允许,因此无法保证数据的安全性。

1.1、授权流程

  • 每个mon节点都可以对客户端进行身份认证并分发秘钥,因此多个mon节点就不存在单点故障和认证性能瓶颈。
  • mon节点会返回用于身份认证的数据结构,其中包含获取ceph服务时用到的session key。
  • session key通过客户端秘钥进行加密传输,而秘钥是在客户端提前配置好的,保存在/etc/ceph/ce ph.client.admin.keyring 文件中。
  • 客户端使用session key向mon请求所需要的服务,mon向客户端提供一个tiket,用于向实际处理数据的OSD等服务验证客户端身份,MON和OSD共享同一个secret,因此OSD会信任所有MON发放的tiket,tiket 存在有效期, 过期后重新发放。

注意:

  • CephX 身份验证功能仅限制在Ceph的各组件之间,不能扩展到其他非ceph组件
  • Ceph 只负责认证授权,不能解决数据传输的加密问题

1.2、访问流程

无论ceph客户端是哪种类型,例如块设备、对象存储、文件系统,ceph都会在存储池中将所有数据存储为对象:
ceph 用户需要拥有存储池访问权限,才能读取和写入数据
ceph 用户必须拥有执行权限才能使用ceph的管理命令

 

1.3、ceph用户

  • 用户是指个人(ceph 管理者)或系统参与者(MON/OSD/MDS)。
  • 通过创建用户, 可以控制用户或哪个参与者能够访问 ceph 存储集群、 以及可访问的存储池及存储池中的数据。
  • ceph 支持多种类型的用户, 但可管理的用户都属于 client 类型
  • 区分用户类型的原因在于, MON/OSD/MDS 等系统组件特使用 cephx 协议, 但是它们为非客户端。
  • 通过点号来分割用户类型和用户名, 格式为 TYPE.ID, 例如 client.admin。
cephadmin@ceph-deploy:~/ceph-cluster$ sudo cat /etc/ceph/ceph.client.admin.keyring 
[client.admin]
    key = AQAdQjxjK9xLEBAA3VWhXIjq0esRK3rQPaU+Zg==
    caps mds = "allow *"
    caps mgr = "allow *"
    caps mon = "allow *"
    caps osd = "allow *"
cephadmin@ceph-deploy:~/ceph-cluster$ 

列出指定的用户信息

cephadmin@ceph-deploy:~/ceph-cluster$ ceph auth get osd.0
[osd.0]
    key = AQC/TjxjKuoSDhAAtMJyExZqbJWoTuTpU1dtYw==
    caps mgr = "allow profile osd"
    caps mon = "allow profile osd"
    caps osd = "allow *"
exported keyring for osd.0
cephadmin@ceph-deploy:~/ceph-cluster$ ceph auth get osd.1
[osd.1]
    key = AQDLTzxjuHQnLhAA8YbYxQMBvWiGnS+eYLea0g==
    caps mgr = "allow profile osd"
    caps mon = "allow profile osd"
    caps osd = "allow *"
exported keyring for osd.1
cephadmin@ceph-deploy:~/ceph-cluster$ ceph auth get client.admin
[client.admin]
    key = AQAdQjxjK9xLEBAA3VWhXIjq0esRK3rQPaU+Zg==
    caps mds = "allow *"
    caps mgr = "allow *"
    caps mon = "allow *"
    caps osd = "allow *"
exported keyring for client.admin
cephadmin@ceph-deploy:~/ceph-cluster$ 

1.4、ceph 授权和使能

ceph 基于使能/能力(Capabilities,简称caps)来描述用户可针对MON/OSD或MDS使用的授权范围或级别。
通用的语法格式:daemon-type ‘allow caps’ [...]能力一览表:

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:授予用户引导元数据服务器的权限,授权部署工具权限,使其在引导元数据服务器时有权添加密钥。
1.4.1、MON 能力

包括 r/w/x 和 allow profile cap(ceph 的运行图)

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

1.5、ceph用户管理

用户管理功能可让 Ceph 集群管理员能够直接在 Ceph 集群中创建、 更新和删除用户。
在 Ceph 集群中创建或删除用户时, 可能需要将密钥分发到客户端, 以便将密钥添加到密钥环文件中/etc/ceph/ceph.client.admin.keyring, 此文件中可以包含一个或者多个用户认证信息, 凡是拥有此文件的节点, 将具备访问 ceph 的权限, 而且可以使用其中任何一个账户的权限, 此文件类似于 linux 系统的中的/etc/passwd 文件。

列出用户:

cephadmin@ceph-deploy:~/ceph-cluster$ ceph auth list
mds.ceph-mgr1
    key: AQAaoj9jl1H1IRAA69kf6LpA6FpQPXg2BsqrZQ==
    caps: [mds] allow
    caps: [mon] allow profile mds
    caps: [osd] allow rwx
osd.0
    key: AQC/TjxjKuoSDhAAtMJyExZqbJWoTuTpU1dtYw==
    caps: [mgr] allow profile osd
    caps: [mon] allow profile osd
    caps: [osd] allow *
osd.1
    key: AQDLTzxjuHQnLhAA8YbYxQMBvWiGnS+eYLea0g==
    caps: [mgr] allow profile osd
    caps: [mon] allow profile osd
    caps: [osd] allow *
osd.2
    key: AQDwTzxj5454GxAA+9iQJ2XTqyHUA8qrOTvn5Q==
    caps: [mgr] allow profile osd
    caps: [mon] allow profile osd
    caps: [osd] allow *
osd.3
    key: AQALUDxjJFo3AxAAV1cd41rMlZRNBQncCGxn3g==
    caps: [mgr] allow profile osd
    caps: [mon] allow profile osd
    caps: [osd] allow *
osd.4
    key: AQCeUDxjvbPrKBAAp9HGvVJ6fZeaCqHMPQMYLA==
    caps: [mgr] allow profile osd
    caps: [mon] allow profile osd
    caps: [osd] allow *
osd.5
    key: AQDVUDxjMb7NMxAAlWGxtA/pwJXtPskXN25k4g==
    caps: [mgr] allow profile osd
    caps: [mon] allow profile osd
    caps: [osd] allow *
osd.6
    key: AQDyUDxjBh6nMhAA9TSjZAOF5/XjAaim6zAU1A==
    caps: [mgr] allow profile osd
    caps: [mon] allow profile osd
    caps: [osd] allow *
osd.7
    key: AQAGUTxj87qsKhAAGH05Y3Mi+SjSVJhYwZcYxg==
    caps: [mgr] allow profile osd
    caps: [mon] allow profile osd
    caps: [osd] allow *
osd.8
    key: AQBGUTxjAT1yFBAA10FgTkXnJRfRzewZwm5wBA==
    caps: [mgr] allow profile osd
    caps: [mon] allow profile osd
    caps: [osd] allow *
client.admin
    key: AQAdQjxjK9xLEBAA3VWhXIjq0esRK3rQPaU+Zg==
    caps: [mds] allow *
    caps: [mgr] allow *
    caps: [mon] allow *
    caps: [osd] allow *
client.bootstrap-mds
    key: AQAdQjxjlfZLEBAAeqbSLbeDn2SCijyjmDDC8Q==
    caps: [mon] allow profile bootstrap-mds
client.bootstrap-mgr
    key: AQAdQjxjfgtMEBAAIYX+9NBbTTKMGnDGz+o43g==
    caps: [mon] allow profile bootstrap-mgr
client.bootstrap-osd
    key: AQAdQjxj+RxMEBAAfiH04BLkzDWmfNzTv+LiAA==
    caps: [mon] allow profile bootstrap-osd
client.bootstrap-rbd
    key: AQAdQjxjlC5MEBAAF+3bW+JohMfNR3lVdqkdPA==
    caps: [mon] allow profile bootstrap-rbd
client.bootstrap-rbd-mirror
    key: AQAdQjxjeT9MEBAAK3/HqmdlnK9DJ7xPjXy22A==
    caps: [mon] allow profile bootstrap-rbd-mirror
client.bootstrap-rgw
    key: AQAdQjxjjFBMEBAA384FUcgIfItXBTtwU58OTA==
    caps: [mon] allow profile bootstrap-rgw
client.rgw.ceph-mgr1
    key: AQCmnD9jHpqFNBAAOB/HfGEjBfiOes+UJd5tXg==
    caps: [mon] allow rw
    caps: [osd] allow rwx
mgr.ceph-mgr1
    key: AQAYSDxjAcTeFRAAQJD1i0shygeKyRgmjWEpzg==
    caps: [mds] allow *
    caps: [mon] allow profile mgr
    caps: [osd] allow *
mgr.ceph-mgr2
    key: AQBOgz1j9O7iEBAAdIPkiUUEyAyugfv2h7w6dA==
    caps: [mds] allow *
    caps: [mon] allow profile mgr
    caps: [osd] allow *
installed auth entries:

cephadmin@ceph-deploy:~/ceph-cluster$ 

注意:TYPE.ID表示法
针对用户采用TYPE.ID表示法,例如osd.0指定是osd类并且ID为0的用户(节点),client.admin是client类型的用户,其ID为admin,

另请注意,每个项包含一个key=xxxx项,以及一个或多个caps项。
可以结合使用-o文件名选项和ceph auth list将输出保存到某个文件。

cephadmin@ceph-deploy:~/ceph-cluster$ ceph auth list -o 123.key
1.5.1、用户管理

添加一个用户会创建用户名 (TYPE.ID)、机密密钥,以及包含在命令中用于创建该用户的所有能力,用户可使用其密钥向Ceph存储集群进行身份验证。用户的能力授予该用户在Ceph monitor (mon)、 Ceph OSD (osd) 或 Ceph 元数据服务器 (mds) 上进行读取、写入或执行的能力,可以使用以下几个命令来添加用户:

1.5.2、ceph auth add

此命令是添加用户的规范方法。 它会创建用户、 生成密钥, 并添加所有指定的能力。

添加认证key:
cephadmin@ceph-deploy:~/ceph-cluster$ ceph auth add client.tom mon 'allow r' osd 'allow rwx pool=mypool'
added key for client.tom
cephadmin@ceph-deploy:~/ceph-cluster$ 

验证key: cephadmin@ceph-deploy:~/ceph-cluster$ ceph auth get client.tom [client.tom] key = AQC4LkJjTzWKJxAA2rLVEKd/BJFmbP20Zap4UA== caps mon = "allow r" caps osd = "allow rwx pool=mypool" exported keyring for client.tom cephadmin@ceph-deploy:~/ceph-cluster$
1.5.3、ceph auth get-or-create

ceph auth get-or-create 此命令是创建用户较为常见的方式之一,它会返回包含用户名(在方括号中)和密钥的密钥文,如果该用户已存在,此命令只以密钥文件格式返回用户名和密钥,还可以使用 -o 指定文件名选项将输出保存到某个文件。

创建用户
cephadmin@ceph-deploy:~/ceph-cluster$ ceph auth get-or-create client.jack mon 'allow r' osd 'allow rwx pool=mypool' [client.jack] key = AQCIMUJj96DEJBAAFaN/BU1pnqT5u9NreHfOkg== cephadmin@ceph-deploy:~/ceph-cluster$ 验证用户
cephadmin@ceph-deploy:~/ceph-cluster$ ceph auth get client.jack [client.jack] key = AQCIMUJj96DEJBAAFaN/BU1pnqT5u9NreHfOkg== caps mon = "allow r" caps osd = "allow rwx pool=mypool" exported keyring for client.jack cephadmin@ceph-deploy:~/ceph-cluster$

再次创建用户,该用户已存在,此命令只以密钥文件格式返回用户名和密钥 cephadmin@ceph-deploy:~/ceph-cluster$ ceph auth get-or-create client.jack mon 'allow r' osd 'allow rwx pool=mypool' [client.jack] key = AQCIMUJj96DEJBAAFaN/BU1pnqT5u9NreHfOkg== cephadmin@ceph-deploy:~/ceph-cluster$
1.5.4、ceph auth get-or-create-key
  • 此命令是创建用户并仅返回用户密钥, 对于只需要密钥的客户端(例如 libvirt) , 此命令非常有用。 如果该用户已存在, 此命令只返回密钥。 您可以使用 -o 文件名选项将输出保存到某个文件。
  • 创建客户端用户时, 可以创建不具有能力的用户。 不具有能力的用户可以进行身份验证, 但不能执行其他操作, 此类客户端无法从监视器检索集群地图, 但是, 如果希望稍后再添加能力, 可以使用 ceph auth caps 命令创建一个不具有能力的用户。
  • 典型的用户至少对 Ceph monitor 具有读取功能, 并对 Ceph OSD 具有读取和写入功能。
  • 此外, 用户的 OSD 权限通常限制为只能访问特定的存储池。
cephadmin@ceph-deploy:~/ceph-cluster$ ceph auth get-or-create-key client.jack mon 'allow r' osd 'allow rwx pool=mypool'
AQCIMUJj96DEJBAAFaN/BU1pnqT5u9NreHfOkg==      ##用户有 key 就显示没有就创建 
cephadmin@ceph-deploy:~/ceph-cluster$
1.5.5、ceph auth print-key

只获取单个指定用户的 key 信息

cephadmin@ceph-deploy:~/ceph-cluster$ ceph auth print-key client.jack
AQCIMUJj96DEJBAAFaN/BU1pnqT5u9NreHfOkg==cephadmin@ceph-deploy:~/ceph-cluster$ 
cephadmin@ceph-deploy:~/ceph-cluster$ 
cephadmin@ceph-deploy:~/ceph-cluster$ ceph auth print-key client.tom
AQC4LkJjTzWKJxAA2rLVEKd/BJFmbP20Zap4UA==cephadmin@ceph-deploy:~/ceph-cluster$ 
cephadmin@ceph-deploy:~/ceph-cluster$ 

1.6、修改用户能力

使用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]']

查看用户当前权限:
cephadmin@ceph-deploy:~/ceph-cluster$ ceph auth get client.jack [client.jack] key = AQCIMUJj96DEJBAAFaN/BU1pnqT5u9NreHfOkg== caps mon = "allow r" caps osd = "allow rwx pool=mypool" exported keyring for client.jack cephadmin@ceph-deploy:~/ceph-cluster$

修改用户权限 cephadmin@ceph-deploy:~/ceph-cluster$ ceph auth caps client.jack mon 'allow r' osd 'allow rw pool=mypool' updated caps for client.jack cephadmin@ceph-deploy:~/ceph-cluster$

验证权限 cephadmin@ceph-deploy:~/ceph-cluster$ ceph auth get client.jack [client.jack] key = AQCIMUJj96DEJBAAFaN/BU1pnqT5u9NreHfOkg== caps mon = "allow r" caps osd = "allow rw pool=mypool" exported keyring for client.jack cephadmin@ceph-deploy:~/ceph-cluster$

1.7、删除用户

要删除用户使用ceph auth del TYPE.ID,其中TYPE是client、osd、mon或mds之一,ID是用户名或守护进程的ID。

cephadmin@ceph-deploy:~/ceph-cluster$ ceph auth list |grep tom
installed auth entries:

client.tom
cephadmin@ceph-deploy:~/ceph-cluster$ ceph auth del client.tom
updated
cephadmin@ceph-deploy:~/ceph-cluster$ ceph auth list |grep tom
installed auth entries:

cephadmin@ceph-deploy:~/ceph-cluster$ 

1.8、秘钥环管理

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.8.1、通过秘钥环文件备份与恢复用户

使用 ceph auth add 等命令添加的用户还需要额外使用 ceph-authtool 命令为其创建用户秘钥环文件。
创建 keyring 文件命令格式:

ceph-authtool --create-keyring FILE
1.8.1.1、导出用户认证信息至 keyring 文件

将用户信息导出至 keyring 文件, 对用户信息进行备份。

#创建用户:
cephadmin@ceph-deploy:~/ceph-cluster$ ceph auth get-or-create client.user1 mon 'allow r' osd 'allow * pool=mypool'
[client.user1]
    key = AQDnN0Jj0//SNRAAXTR1b04WMF4R6U8Yu4PWIA==
cephadmin@ceph-deploy:~/ceph-cluster$

#验证用户: cephadmin@ceph-deploy:~/ceph-cluster$ ceph auth get client.user1 [client.user1] key = AQDnN0Jj0//SNRAAXTR1b04WMF4R6U8Yu4PWIA== caps mon = "allow r" caps osd = "allow * pool=mypool" exported keyring for client.user1 cephadmin@ceph-deploy:~/ceph-cluster$

#创建keyring文件 cephadmin@ceph-deploy:~/ceph-cluster$ ceph-authtool --create-keyring ceph.client.user1.keyring creating ceph.client.user1.keyring
cephadmin@ceph-deploy:~/ceph-cluster$
验证keyring文件
cephadmin@ceph-deploy:~/ceph-cluster$ ll -h
total 240K
drwxrwxr-x 2 cephadmin cephadmin 4.0K Oct  9 10:55 ./
drwxr-xr-x 6 cephadmin cephadmin 4.0K Oct  5 21:37 ../
-rw-rw-r-- 1 cephadmin cephadmin 197K Oct  7 11:50 ceph-deploy-ceph.log
-rw------- 1 cephadmin cephadmin  113 Oct  4 22:24 ceph.bootstrap-mds.keyring
-rw------- 1 cephadmin cephadmin  113 Oct  4 22:24 ceph.bootstrap-mgr.keyring
-rw------- 1 cephadmin cephadmin  113 Oct  4 22:24 ceph.bootstrap-osd.keyring
-rw------- 1 cephadmin cephadmin  113 Oct  4 22:24 ceph.bootstrap-rgw.keyring
-rw------- 1 cephadmin cephadmin  151 Oct  4 22:24 ceph.client.admin.keyring
-rw------- 1 cephadmin cephadmin    0 Oct  9 10:55 ceph.client.user1.keyring #是个空文件
-rw-rw-r-- 1 cephadmin cephadmin  315 Oct  5 21:37 ceph.conf
-rw------- 1 cephadmin cephadmin   73 Oct  4 22:16 ceph.mon.keyring
cephadmin@ceph-deploy:~/ceph-cluster$ file ceph.client.user1.keyring
ceph.client.user1.keyring: empty #是个空文件
cephadmin@ceph-deploy:~/ceph-cluster$ 

#导出keyring至指定文件 cephadmin@ceph-deploy:~/ceph-cluster$ ceph auth get client.user1 -o ceph.client.user1.keyring exported keyring for client.user1 cephadmin@ceph-deploy:~/ceph-cluster$

验证指定用户的keyring文件 cephadmin@ceph-deploy:~/ceph-cluster$ cat ceph.client.user1.keyring [client.user1] key = AQDnN0Jj0//SNRAAXTR1b04WMF4R6U8Yu4PWIA== caps mon = "allow r" caps osd = "allow * pool=mypool" cephadmin@ceph-deploy:~/ceph-cluster$

在创建包含单个用户的密钥环时,通常建议使用ceph集群名称、用户类型和用户名及keyring来命名,并将其保存在/etc/ceph目录中。例如为client.user1用户创建ceph.client.user1.keyring。

1.8.1.2、从 keyring 文件恢复用户认证信息

可以使用ceph auth import -i指定keyring文件并导入到ceph,其实就是起到用户备份和恢复的目的:

cephadmin@ceph-deploy:~/ceph-cluster$ cat ceph.client.user1.keyring #查看用户的认证文件
[client.user1]
    key = AQDnN0Jj0//SNRAAXTR1b04WMF4R6U8Yu4PWIA==
    caps mon = "allow r"
    caps osd = "allow * pool=mypool"
cephadmin@ceph-deploy:~/ceph-cluster$ 
cephadmin@ceph-deploy:~/ceph-cluster$ ceph auth del client.user1  #演示误删除用户
updated
cephadmin@ceph-deploy:~/ceph-cluster$ ceph auth get client.user1  #确认用户被删除
Error ENOENT: failed to find client.user1 in keyring
cephadmin@ceph-deploy:~/ceph-cluster$ ceph auth list |grep user1 #再次确认用户被删除
installed auth entries:
cephadmin@ceph-deploy:~/ceph-cluster$ 
cephadmin@ceph-deploy:~/ceph-cluster$ ceph auth import -i ceph.client.user1.keyring #通过keyring文件导入并恢复删除的user1用户
imported keyring
cephadmin@ceph-deploy:~/ceph-cluster$ ceph auth get client.user1 #验证已删除的user1用户是否恢复
[client.user1]
    key = AQDnN0Jj0//SNRAAXTR1b04WMF4R6U8Yu4PWIA==
    caps mon = "allow r"
    caps osd = "allow * pool=mypool"
exported keyring for client.user1
cephadmin@ceph-deploy:~/ceph-cluster$ ceph auth list |grep user1 #查看用户列表是否存在删除的user1用户
client.user1
installed auth entries:

cephadmin@ceph-deploy:~/ceph-cluster$ 
1.8.2、秘钥环文件多用户

一个 keyring 文件中可以包含多个不同用户的认证文件。

#创建keyring文件
cephadmin@ceph-deploy:~/ceph-cluster$ ceph-authtool --create-keyring ceph.client.user.keyring #创建一个空的keyring creating ceph.client.user.keyring cephadmin@ceph-deploy:~/ceph-cluster$

#把指定的 admin 用户的 keyring 文件内容导入到 user 用户的 keyring 文件 cephadmin@ceph-deploy:~/ceph-cluster$ ceph-authtool ./ceph.client.user.keyring --import-keyring ./ceph.client.admin.keyring importing contents of ./ceph.client.admin.keyring into ./ceph.client.user.keyring cephadmin@ceph-deploy:~/ceph-cluster$

#验证keyring文件 cephadmin@ceph-deploy:~/ceph-cluster$ ceph-authtool -l ./ceph.client.user.keyring [client.admin] key = AQAdQjxjK9xLEBAA3VWhXIjq0esRK3rQPaU+Zg== caps mds = "allow *" caps mgr = "allow *" caps mon = "allow *" caps osd = "allow *" cephadmin@ceph-deploy:~/ceph-cluster$
#再导入一个其他用户的 keyring cephadmin@ceph-deploy:~/ceph-cluster$ ceph-authtool ./ceph.client.user.keyring --import-keyring ./ceph.client.user1.keyring importing contents of ./ceph.client.user1.keyring into ./ceph.client.user.keyring cephadmin@ceph-deploy:~/ceph-cluster$

#再次验证 keyring 文件是否包含多个用户的认证信息 cephadmin@ceph-deploy:~/ceph-cluster$ ceph-authtool -l ./ceph.client.user.keyring [client.admin] key = AQAdQjxjK9xLEBAA3VWhXIjq0esRK3rQPaU+Zg== caps mds = "allow *" caps mgr = "allow *" caps mon = "allow *" caps osd = "allow *" [client.user1] key = AQDnN0Jj0//SNRAAXTR1b04WMF4R6U8Yu4PWIA== caps mon = "allow r" caps osd = "allow * pool=mypool" cephadmin@ceph-deploy:~/ceph-cluster$

 

标签:CephX,ceph,keyring,caps,---,client,allow,cephadmin,Ceph
From: https://www.cnblogs.com/cyh00001/p/16771422.html

相关文章

  • Coupled Iterative Refinement for 6D Multi-Object Pose Estimation论文精读
    目录CoupledIterativeRefinementfor6DMulti-ObjectPoseEstimation论文精读RAFTIntroduction模型介绍论文介绍AbstractIntroductionRelatedWorkApproachPreliminarie......
  • oracle---exp/imp
    exportNLS_LANG=AMERICAN_AMERICA.ZHS16GBKexp'test/"test@#1234"@orcl'file=/home/oracle/bak/data.dmpowner=testlog=/home/oracle/bak/exp.logbuffer=1024000......
  • easyswoole - mysql以及redis连接池
    1.安装组件安装easyswoole/pool通用连接池组件composerrequireeasyswoole/pool安装easyswoole/redis-pool协程连接池组件composerrequireeasyswoole/redis-p......
  • springcloud- Eureka 单机版注册中心
    eureka 使用过程 简单的梳理:服务客户三步走,pom,yml,主启动。 首先搭建 eureka 注册中心服务 创建一个 maven 项目 ##引入相关的pom<?xmlversion="1.0"encoding......
  • springCloud - 选择最合适版本问题
     尚硅谷的第一季 springcloud 学完,也忘完了。于是今天阳哥出了第二季,我就跟着再学一遍,这次要做好笔记。 ## 问题概要这篇主要解决的是 springcloud 选择版本的问题,......
  • springCloud- 搭建项目全部详细过程(创建一个父工程)
     这篇文章里边会有 IDEA 相关本地环境的配置,比如编码格式,等等。 另外这篇文章会详细的记录整个创建的过程,我都会有截图 前提条件需要:maven环境(配置过国内的镜像), idea......
  • JAVA Spring学习笔记------MVC
    SpingMVC首先我没接触过页面开发这里只简单的介绍如何通过spring利用注解的形式搭建一个简单的页面首先我们配置pom文件先加入两个依赖<dependency><gro......
  • springCloud- 升级惨案
     基本上 之前的那套 springcloud 官网都停止更新了。然后有新技术的来替代,这篇文章来记录一下技术选型的问题。我觉得 springcloud 体系还是直接选用 springcloud a......
  • 云计算原理与安全-云生态
    云生态云生态系统是由云构建商、云提供商和云服务商等各方面组成的系统平台。云计算属性1、按需自助服务2、广泛的互联网访问3、资源池4、快速伸缩5、可度量的服务特点以网......
  • SD-WAN使您受益的 5 大方式
    SD-WAN是人们开始理解和接受的那些很酷的技术之一;这是一个流行语,通过结合WAN、LAN和云技术提供更大的灵活性、安全性和吞吐量。它承诺使IT运营更加高效和有效。一个好......