ceph用户认证

Cephx认证机制

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

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

1、授权流程

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

注意:

cephx身份验证功能仅限制在ceph的各组件之间,不能扩展到其他非ceph组件,ceph只负责认证授权,不能解决数据传输加密的问题
在这里插入图片描述

2、访问流程

无论ceph客户端是那种类型,例如块设备、对象存储、文件系统,ceph都会在存储中奖所有数据存储为对象:

ceph用户需要拥有存储池访问权限,才能读取和写入数据

ceph用户必须拥有执行权限才能使用ceph的管理命令

3、ceph用户

用户是指个人(ceph管理者)或系统参与者(MON/OSD/MDS)

通过创建用户,可以控制用户或哪个参与者能够访问ceph存储集群、以及可访问的存储池及存储中的数据。

ceph支持多种类型的用户,但可管理的用户都属于client类型

区分用户类型的原因在于,MON、OSD、MDS等系统组件特使用cephx协议,但是他们为非客户端。

通过点号来分割用户类型和用户名,格式为user.type 例如:client.admin

cephadmin@ceph-mon1:/etc/ceph$ cat ceph.client.admin.keyring
[client.admin]key = AQBqc6ZkIP0/BBAArwh+Kk3ynP/KDtHU6KL5dg==caps mds = "allow *"caps mgr = "allow *"caps mon = "allow *"caps osd = "allow *"

4、管理ceph用户

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

4.1 查看集群的用户列表

cephadmin@ceph-mon1:/etc/ceph$ ceph auth list

4.2 列出指定用户的详细信息

cephadmin@ceph-mon1:/etc/ceph$ ceph auth get osd.1
[osd.1]key = AQCfeKZk1lB5FRAAc80u9CRs/lx3Bnoq54pJrQ==caps mgr = "allow profile osd"caps mon = "allow profile osd"caps osd = "allow *"
exported keyring for osd.1

4.3 添加用户并赋权

cephadmin@ceph-mon1:~$ ceph auth add  client.qiang mon "allow r" osd "allow rwx pool=mypool"#验证用户
cephadmin@ceph-mon1:/etc/ceph$ ceph auth get client.qiang
[client.qiang]key = AQCOGalksy8EDRAA3B+EFlRa//sUou4pSSkCcg==caps mon = "allow r"caps osd = "allow rwx pool=mypool"
exported keyring for client.qiang#创建新用户并返回包含用户名和密钥的密钥文
cephadmin@ceph-mon1:~$ ceph auth get-or-create  client.weng mon "allow r" osd "allow rwx pool=mypool"#把返回的用户名和密钥的密钥文输出保存到一个文件中
cephadmin@ceph-mon1:~$ ceph auth get-or-create  client.weng mon "allow r" osd "allow rwx pool=mypool" -o passwd.txt
或者
cephadmin@ceph-mon1:~$ ceph auth get-or-create  client.weng mon "allow r" osd "allow rwx pool=mypool" > passwd.txt12、修改用户的权限
cephadmin@ceph-mon1:~$ ceph auth caps client.weng mon "allow rw" osd "allow r pool=mypool"13、删除用户
cephadmin@ceph-mon1:~$ ceph auth  del client.weng

5、ceph授权和使能

ceph基于使能/能力(简称:caps)来描述用户可针对MON/OSD或MDS使用的授权范围级别。

能力一览表:

  • r:向用户授予读取权限。访问监视器(mon)以检索 CRUSH 运行图时需具有此能力。
  • w:向用户授予针对对象的写入权限。
  • x:授予用户调用类方法(包括读取和写入)的能力,以及在监视器中执行 auth 操作的能
    力。
  • *:授予用户对特定守护进程/存储池的读取、写入和执行权限,以及执行管理命令的能力
  • profile osd:授予用户以某个 OSD 身份连接到其他 OSD 或监视器的权限。授予 OSD 权
    限,使 OSD 能够处理复制检测信号流量和状态报告(获取 OSD 的状态信息)。
  • profile mds:授予用户以某个 MDS 身份连接到其他 MDS 或监视器的权限。
  • profile bootstrap-osd:授予用户引导 OSD 的权限(初始化OSD并将OSD加入ceph集群),
    授权给部署工具,使其在引导 OSD 时有权添加密钥。
  • profile bootstrap-mds:授予用户引导元数据服务器的权限,授权部署工具权限,使其在引
    导元数据服务器时有权添加密钥

MON 能力:

包括r/w/x和allow profile cap(ceph的运行图)
例如:
mon 'allow rwx'
mon 'allow profile osd'

OSD 能力:

包括 r、w、x、class-read、class-write(类读取))和 profile osd(类写入),另外 OSD 能力
还允许进行存储池和名称空间设置。
osd 'allow capability' [pool=poolname] [namespace=namespace-name]

MDS 能力:

只需要 allow 或空都表示允许。
mds 'allow'

还允许进行存储池和名称空间设置。
osd ‘allow capability’ [pool=poolname] [namespace=namespace-name]


**MDS 能力:**```bash
只需要 allow 或空都表示允许。
mds 'allow'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/19525.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android AccessibilityService 实现《李跳跳》功能

AccessibilityService(无障碍服务)是 Android 操作系统中的一个功能,旨在帮助用户具有视觉、听觉或运动上的障碍更轻松地使用设备。它是 Android 提供的一种特殊服务,可以接收设备上发生的各种事件,并提供自定义的反馈…

【Java】链表LinkedList

文章目录 一、链表1.1 链表的概念1.2 链表的结构 二、LinkedList的简介三、LinkedList的使用3.1 构造方法3.2 常见操作3.3 遍历方法 四、LinkedList的模拟实现五、LinkedList 和 ArrayList 的区别 一、链表 1.1 链表的概念 链表(Linked List)是一种常见…

问懵了....美团一面索命44问,过了就60W+

说在前面 在40岁老架构师尼恩的(50)读者社区中,经常有小伙伴,需要面试美团、京东、阿里、 百度、头条等大厂。 下面是一个小伙伴成功拿到通过了美团一次技术面试,最终,小伙伴通过后几面技术拷问、灵魂拷问…

【Linux后端服务器开发】Shell外壳——命令行解释器

目录 一、Shell外壳概述 二、描述Shell外壳原理的生动例子 三、C语言模拟实现Shell外壳 一、Shell外壳概述 在狭义上 , 我们称Linux操作系统的内核为 Linux 在广义上 , Linux发行版 Linux内核 外壳程序 就比如市面上现在的redhat, centos, ubuntu等等我们耳熟能详的Linux发…

论文浅尝 | 少样本学习的语言模型的持续训练

笔记整理:王贵涛,东南大学硕士,研究方向为自然语言处理 链接:https://github.com/UIC-Liu-Lab/CPT 一、动机 克服灾难性遗忘(CF)是持续学习(CL)的一个主要目标。目前有许多方法&…

SGD原理及Pytorch实现

🎏目录 🎈1 SGD       🎄1.1 原理       🎄1.2 构造       🎄1.3 参数详解——momentum ✨1 SGD 损失函数是用来度量模型输出和真实值的偏差,损失函数越小,说明我们的模型效…

804. n的阶乘

链接: https://www.acwing.com/problem/content/806/ 题目: 输入一个整数 nn,请你编写一个函数,int fact(int n),计算并输出 nn 的阶乘。 输入格式 共一行,包含一个整数 nn。 输出格式 共一行,包…

深度学习笔记之Transformer(八)Transformer模型架构基本介绍

机器学习笔记之Transformer——Transformer模型架构基本介绍 引言回顾:简单理解: Seq2seq \text{Seq2seq} Seq2seq模型架构与自编码器自注意力机制 Transformer \text{Transformer} Transformer架构关于架构的简单认识多头注意力机制包含掩码的多头注意力…

40.RocketMQ之高频面试题大全

消息中间件如何选型 RabbitMQ erlang开发,对消息堆积的支持并不好,当大量消息积压的时候,会导致 RabbitMQ 的性能急剧下降。每秒钟可以处理几万到十几万条消息。 RocketMQ java开发,面向互联网集群化功能丰富,对在线业…

MySQL物理文件----日志文件(错误日志、通用查询日志、二进制日志、慢查询日志)

文章目录 MYSQL5.7/8.0支持的几种日志文件1、错误日志(Error log)2、一般或通用查询日志(General query log)3、二进制日志(Binary log)3、1 查看是否开启二进制日志3、2二进制日志开启3、3查看二进制文件位…

简单爬虫项目练习

爬虫项目练习 前言任务基本爬虫框架URL管理器Html 下载器HTML 解析器数据存储器爬虫调度器效果分析 前言 自学,参考书籍为 Python爬虫开发与项目实战 ,具体参考了该书的第六章。过程中出现两个问题: 在 Pycharm 上实现时发现有些库名更改及…

自定义程序包不存在的解决方法

方案一&#xff1a; 在pom文件中加入以下代码 <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>2.4.2</version><configuration><skipTests>true</sk…