Cephx 认证介绍

发布时间: 更新时间: 总字数:817 阅读时间:2m 作者: IP属地: 分享 复制网址

Ceph集群使用cephx协议进行Ceph内部组件之间、client与Ceph集群的认证。

cephx 认证配置

默认cephx认证信息/etc/ceph/ceph.conf配置,默认值都是 cephx,禁用需要配置为 none,如下:

[global]
auth_cluster_required = none
auth_service_required = none
auth_client_required = none

修改认证需要重启Ceph集群。

认证场景

  • 命令行与Ceph集群交互,包括:
    • RadosGW 对象网关认证(对象网关认证系统+cephx)
    • RBD 认证
    • CephFS 用户认证(文件路径+cephx)
  • Ceph集群内部组件之间通信

默认执行 ceph 命令时下,会使用 client.admin 用户(加载 /etc/ceph/ceph.client.admin.keyring)认证

cephx 认证流程

ceph client auth flow with cephx

配置

cephx 的认证是基于用户的,认证使用 keyring 文件。

用户查看

  • 查看 ceph 集群中认证的用户 key 和相关权限:
ceph auth ls
ceph auth list

示例:

$ ceph auth  ls
...
osd.0
	key: AQCyQXtiZ/YzDxAA//AH42IVenvqRiAe1xy4NQ==
	caps: [mgr] allow profile osd
	caps: [mon] allow profile osd
	caps: [osd] allow *
...
client.admin
	key: AQCHQHtiL1ffABAASgaeyfIe0HB+QM7JxJJ3Pw==
	caps: [mds] allow *
	caps: [mgr] allow *
	caps: [mon] allow *
	caps: [osd] allow *
...
client.bootstrap-mds
	key: AQCPQHtiOmKoFhAAm3ueEuNS8+lTUweUJqHJKA==
	caps: [mon] allow profile bootstrap-mds
...
mgr.c1.nxrzrt
	key: AQCIQHtiKbpMDRAA6aFd5G0uKI9m8MNZKsmplg==
	caps: [mds] allow *
	caps: [mon] profile mgr
	caps: [osd] allow *

说明:

  1. 用户格式 <type>.<name> 组成
  • 获取指定用户的信息
ceph auth get <type>.<name>
ceph auth export <type>.<name>

示例:

$ ceph auth get client.admin
exported keyring for client.admin
[client.admin]
	key = AQCHQHtiL1ffABAASgaeyfIe0HB+QM7JxJJ3Pw==
	caps mds = "allow *"
	caps mgr = "allow *"
	caps mon = "allow *"
	caps osd = "allow *"

打印用户的 key

仅包括key,没有权限信息,该key一般用在挂载文件系统时使用

$ ceph auth print-key <type>.<name>
AQCHQHtiL1ffABAASgaeyfIe0HB+QM7JxJJ3Pw==

添加用户

# 创建用户和权限
ceph auth add <type>.<name> <权限格式:权限格式:caps-type "allow *|r|w|" <network/prefix>>

# 获取或创建,-o 指定文件
ceph auth get-or-create <type>.<name> <权限格式:权限格式:caps-type "allow *|r|w|" <network/prefix>>

# 获取或创建,并返回 key 文件,-o 指定文件
ceph auth get-or-create-key <type>.<name> <权限格式:caps-type "allow *|r|w|" <network/prefix>>

创建用户规则:

  • 至少有 mon 的读权限
  • 至少有 osd 的读权限,osd 可以(通过 pool = xxx)限定 pool,默认为所有
  • caps 类型包括:
    • mon
    • mgr
    • mds
    • osd
  • 权限包括:
      • | all 所有
    • r 读
    • w 写
    • x 执行
  • 不同的类型有不同权限,请参考官网,如使用 profile 权限模板分配权限
  • <network/prefix> 可选,指定网段

示例:

ceph auth add client.xianbin mon "allow r" osd "allow *" mgr "allow rw" mds "allow *"

删除用户

ceph auth rm <type>.<name>

其中,旧版本也可以使用 ceph auth del 命令删除用户

导入/导出用户

用来用户的备份和恢复:

  • 导入时,若用户不存在则创建;存在则更新
ceph auth ls
ceph auth import -i file

参考

  1. https://docs.ceph.com/en/latest/dev/cephx/
Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数