Ceph学习 -10.认证管理-秘钥管理

2024-04-15 13:28
文章标签 学习 认证 管理 秘钥 ceph

本文主要是介绍Ceph学习 -10.认证管理-秘钥管理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1.秘钥管理
    • 1.1 基础知识
    • 1.2 简单实践
    • 1.3 小结

1.秘钥管理

学习目标:这一节,我们从 基础知识、简单实践、小结 三个方面来学习。

1.1 基础知识

keyring

密钥环文件是“存储机密、密码、密钥、证书并使它们可用于应用程序的组件的集合”。
密钥环文件存储一个或多个 Ceph 身份验证密钥以及可能的相关功能规范。注意:每个键都与一个实体名称相关联,形式为 {client,mon,mds,osd}.name。ceph-authtool 是一个用于创建、查看和修改 Ceph 密钥环文件的实用程序。

秘钥环文件信息

访问Ceph集群时,客户端会于本地查找密钥环,只有,认证成功的对象,才可以正常使用。默认情况下,Ceph会使用以下四个密钥环名称预设密钥环:/etc/ceph/cluster-name.user-name.keyring:保存单个用户的keyring/etc/ceph/cluster.keyring:保存多个用户的keyring/etc/ceph/keyring/etc/ceph/keyring.bin注意:cluster-name是为集群名称,user-name是为用户标识(TYPE.ID)client.admin用户的在名为ceph的集群上的密钥环文件名为ceph.client.admin.keyring

keyring的管理

创建keyring:ceph auth add等命令添加的用户还需要额外使用ceph-authtool命令为其创建用户密钥环文件,ceph客户端通过keyring文件查找用户名并检索密钥命令:ceph-authtool --create-keyring /path/to/kerying注意:keyring文件一般应该保存于/etc/ceph目录中,以便客户端能自动查找创建包含多个用户的keyring文件时,应该使用cluster-name.keyring作为文件名创建仅包含单个用户的kerying文件时,应该使用cluster-name.user-name.keyring作为文件名
将用户添加至keyring:可将某个用户从包含多个用户的keyring中导出,并保存于一个专用的keyring文件命令:ceph auth get TYPE.ID -o /etc/ceph/cluster-name.user-name.keyring也可将用户的keyring合并至一个统一的keyring文件中命令:ceph-authtool /etc/ceph/cluster-name.keyring --import-key /etc/ceph/clustername.
user-name.keyring
ceph-authtool命令可直接创建用户、授予caps并创建keyringceph-authtool keyringfile [-C | --create-keyring] [-n | --name entityname] [--genkey] [-a | --add-key base64_key] [--cap | --caps capfile]注意:此种方式添加的用户仅存在于keyring文件中,管理员还需要额外将其添加至Ceph集群上;命令: ceph auth add TYPE.ID -i /PATH/TO/keyring

1.2 简单实践

创建携带秘钥环的账号

创建普通格式的用户:
[cephadm@admin ceph-cluster]$ ceph auth get-or-create client.kube mon 'allow r' osd 'allow * pool=kube'
[client.kube]key = AQC3lhxmGSQyEBAAbYyBL8PE6N753KsxU5Bp+g==
查看用户信息:
[cephadm@admin ceph-cluster]$ ceph auth get client.kube
[client.kube]key = AQC3lhxmGSQyEBAAbYyBL8PE6N753KsxU5Bp+g==caps mon = "allow r"caps osd = "allow * pool=kube"
exported keyring for client.kube
查看文件:
[cephadm@admin ceph-cluster]$ ll
total 736
-rw-------. 1 cephadm cephadm    113 Apr  2 16:31 ceph.bootstrap-mds.keyring
-rw-------. 1 cephadm cephadm    113 Apr  2 16:31 ceph.bootstrap-mgr.keyring
-rw-------. 1 cephadm cephadm    113 Apr  2 16:31 ceph.bootstrap-osd.keyring
-rw-------. 1 cephadm cephadm    113 Apr  2 16:31 ceph.bootstrap-rgw.keyring
-rw-------. 1 cephadm cephadm    151 Apr  2 16:31 ceph.client.admin.keyring
-rw-rw-r--. 1 cephadm cephadm    343 Apr  9 20:35 ceph.conf
-rw-rw-r--. 1 cephadm cephadm 681903 Apr  9 20:47 ceph-deploy-ceph.log
-rw-------. 1 cephadm cephadm     73 Apr  2 15:36 ceph.mon.keyring
-rw-rw-r--. 1 cephadm cephadm    126 Apr 15 10:08 testuser.file              结果显示:没有生成对应的用户秘钥环文件

导出秘钥环文件

将普通的用户导出为keyring:
[cephadm@admin ceph-cluster]$ ceph auth get client.kube -o ceph.client.kube.keyring
exported keyring for client.kube
查看效果
[cephadm@admin ceph-cluster]$ ll *kube*
-rw-rw-r--. 1 cephadm cephadm 116 Apr 15 10:55 ceph.client.kube.keyring[cephadm@admin ceph-cluster]$ cat ceph.client.kube.keyring
[client.kube]key = AQC3lhxmGSQyEBAAbYyBL8PE6N753KsxU5Bp+g==caps mon = "allow r"caps osd = "allow * pool=kube"

合并秘钥环文件

创建要合并的文件:
[cephadm@admin ceph-cluster]$ ceph-authtool --create-keyring cluster.keyring
creating cluster.keyring[cephadm@admin ceph-cluster]$ ll cluster.keyring
-rw-------. 1 cephadm cephadm 0 Apr 15 10:58 cluster.keyring
合并要导入的keyring文件:
[cephadm@admin ceph-cluster]$ cat cluster.keyring
[cephadm@admin ceph-cluster]$ ceph-authtool cluster.keyring --import-keyring ceph.client.kube.keyring
importing contents of ceph.client.kube.keyring into cluster.keyring
[cephadm@admin ceph-cluster]$ cat cluster.keyring
[client.kube]key = AQC3lhxmGSQyEBAAbYyBL8PE6N753KsxU5Bp+g==caps mon = "allow r"caps osd = "allow * pool=kube"
再来合并一个用户:
[cephadm@admin ceph-cluster]$ ceph-authtool cluster.keyring --import-keyring ceph.client.admin.keyring
importing contents of ceph.client.admin.keyring into cluster.keyring
查看合并后效果:
[cephadm@admin ceph-cluster]$ cat cluster.keyring
[client.admin]key = AQBOwgtmhE42ARAAnhZiGTeiywVr5/8s8SA2kA==caps mds = "allow *"caps mgr = "allow *"caps mon = "allow *"caps osd = "allow *"
[client.kube]key = AQC3lhxmGSQyEBAAbYyBL8PE6N753KsxU5Bp+g==caps mon = "allow r"caps osd = "allow * pool=kube"
专用查看keyring的内容:
[cephadm@admin ceph-cluster]$ ceph-authtool -l cluster.keyring
[client.admin]key = AQBOwgtmhE42ARAAnhZiGTeiywVr5/8s8SA2kA==caps mds = "allow *"caps mgr = "allow *"caps mon = "allow *"caps osd = "allow *"
[client.kube]key = AQC3lhxmGSQyEBAAbYyBL8PE6N753KsxU5Bp+g==caps mon = "allow r"caps osd = "allow * pool=kube"

1.3 小结


这篇关于Ceph学习 -10.认证管理-秘钥管理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/905936

相关文章

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Python中bisect_left 函数实现高效插入与有序列表管理

《Python中bisect_left函数实现高效插入与有序列表管理》Python的bisect_left函数通过二分查找高效定位有序列表插入位置,与bisect_right的区别在于处理重复元素时... 目录一、bisect_left 基本介绍1.1 函数定义1.2 核心功能二、bisect_left 与

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

Spring中管理bean对象的方式(专业级说明)

《Spring中管理bean对象的方式(专业级说明)》在Spring框架中,Bean的管理是核心功能,主要通过IoC(控制反转)容器实现,下面给大家介绍Spring中管理bean对象的方式,感兴趣的朋... 目录1.Bean的声明与注册1.1 基于XML配置1.2 基于注解(主流方式)1.3 基于Java

基于Python+PyQt5打造一个跨平台Emoji表情管理神器

《基于Python+PyQt5打造一个跨平台Emoji表情管理神器》在当今数字化社交时代,Emoji已成为全球通用的视觉语言,本文主要为大家详细介绍了如何使用Python和PyQt5开发一个功能全面的... 目录概述功能特性1. 全量Emoji集合2. 智能搜索系统3. 高效交互设计4. 现代化UI展示效果

Mysql中的用户管理实践

《Mysql中的用户管理实践》:本文主要介绍Mysql中的用户管理实践,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录13. 用户管理13.1 用户 13.1.1 用户信息 13.1.2 创建用户 13.1.3 删除用户 13.1.4 修改用户

linux服务之NIS账户管理服务方式

《linux服务之NIS账户管理服务方式》:本文主要介绍linux服务之NIS账户管理服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、所需要的软件二、服务器配置1、安装 NIS 服务2、设定 NIS 的域名 (NIS domain name)3、修改主

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

Python+PyQt5开发一个Windows电脑启动项管理神器

《Python+PyQt5开发一个Windows电脑启动项管理神器》:本文主要介绍如何使用PyQt5开发一款颜值与功能并存的Windows启动项管理工具,不仅能查看/删除现有启动项,还能智能添加新... 目录开篇:为什么我们需要启动项管理工具功能全景图核心技术解析1. Windows注册表操作2. 启动文件