1.认证管理
学习目标:这一节,我们从基础知识、简单实践、小结三个方面来学习。
1.1 基础知识
简介
Ceph作为一个分布式存储系统,支持对象存储、块设备和文件系统。
为了在网络传输中防止数据被篡改,做到较高程度的安全性,加入了Cephx加密认证协议。
其目的是客户端和管理端之间的身份识别,加密、验证传输中的数据。
注意:所谓的client就是使用ceph命令的客户端
ceph集群默认开启了cephx协议功能
[cephadm@admin ceph-cluster]$ cat ceph.conf
[global]
......
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
......
如果我们提供的是公共的信息 -- 不需要进行认证,所以我们可以禁用CephX功能。
将对应的属性值设置为 none即可,比如:
auth_cluster_required = none
认证场景
命令行与Ceph集群操作,包括:
RadosGW 对象网关认证(对象网关认证系统+cephx)
RBD 认证
CephFS 用户认证(文件路径+cephx)
Ceph集群内部组件之间通信
执行ceph命令时,会使用 client.admin 用户并加载 /etc/ceph/ceph.client.admin.keyring文件
认证和授权
在ceph系统中,所有元数据保存在mon节点的ceph-mon的进程中,
mon保存了系统中重要的认证相关元数据,例如每个用户的key以及权限。
样式结构如下:
名称 key Caps(权限)
client.admin xxxxxx osd allow rw, mon allow rw
对于ceph的认证和授权来说,主要涉及到三个内容:ceph用户、资源权限、用户授权。
- Ceph用户必须拥有执行权限才能执行Ceph的管理命令
- Ceph用户需要拥有存储池访问权限才能到ceph中读取和写入数据
基本概念
用户
- ceph创建出来的用户,可以进入到ceph集群里面
- ceph支持多种类型,可管理的用户属于Client类型
- MON、OSD和MDS等系统组件属于系统参与者客户端
授权
- 将某些资源的使用权限交给特定的用户。
- allow
权限
- 描述用户可针对MON、OSD或MDS等资源的使用权限范围或级别
- MON具备的权限包括r、w、x和allow profile cap
- OSD具备的权限包括r、w、x和class-read、class-write和profile osd、存储池和名称空间设置
- MDS具备的权限包括allow
权限解析
allow:需先于守护进程的访问设置指定,标识赋予的xx权限
r:读取权限,访问MON以检索CRUSH时依赖此使能
w:对象写入权限
x:调用类方法(读取和写入)的能力,以及在MON上执行auth操作的能力
class-read:x能力的子集,授予用户调用类读取方法的能力
class-write:x的子集,授予用户调用类写入方法的能力
*:授予用户对特定守护进程/存储池的读取、写入和执行权限,以及执行管理命令的能力
profile osd
授予用户以某个OSD身份连接到其他OSD或监视器的权限
profile mds
授予用户以某个MDS身份连接到其他MDS或监视器的权限
profile bootstrap-osd
授予用户引导OSD的权限,在部署时候产生
profile bootstrap-mds
授予用户引导元数据服务器的权限,在部署时候产生
1.2 简单实践
CephX身份验正流程
client和osd都有一个叫做monclient的模块负责认证和密钥交换。
而monitor上有一个AuthMonitor的服务模块负责与monclient对话。
Ceph使用cephx协议对客户端进行身份认证
每个MON都可以对客户端进行身份验正并分发密钥,不存在单点故障和性能瓶颈,
MON会返回用于身份验正的数据结构,其包含获取Ceph服务时用到的session key。
- session key通过客户端密钥进行加密
- 客户端使用session key向MON请求所需的服务
- MON向客户端提供一个ticket,用于向实际处理数据的OSD等验正客户端身份
- MON和OSD共享同一个secret,因此OSD会信任由MON发放的ticket
- ticket存在有效期限
注意:
CephX身份验证功能仅限制Ceph的各组件之间,它不能扩展到其它非Ceph组件;
它并不解决数据传输加密的问题;
CephX身份验正-MDS和OSD
1.当client与Monitor实现基本的认证后,monitor与后端的mds和osd会自动进行认证信息的同步
2.当client与Monitor实现基本的通信认证后
可以独立与后端的MDS服务发送请求。
可以独立与后端的OSD服务发送请求。
1.3 小结