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

相关文章

Elasticsearch 的索引管理与映射配置实战指南

《Elasticsearch的索引管理与映射配置实战指南》在本文中,我们深入探讨了Elasticsearch中索引与映射的基本概念及其重要性,通过详细的操作示例,我们了解了如何创建、更新和删除索引,... 目录一、索引操作(一)创建索引(二)删除索引(三)关闭索引(四)打开索引(五)索引别名二、映射操作(一

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他

springboot依靠security实现digest认证的实践

《springboot依靠security实现digest认证的实践》HTTP摘要认证通过加密参数(如nonce、response)验证身份,避免明文传输,但存在密码存储风险,相比基本认证更安全,却因... 目录概述参数Demopom.XML依赖Digest1Application.JavaMyPasswo

在Node.js中使用.env文件管理环境变量的全过程

《在Node.js中使用.env文件管理环境变量的全过程》Node.js应用程序通常依赖于环境变量来管理敏感信息或配置设置,.env文件已经成为一种流行的本地管理这些变量的方法,本文将探讨.env文件... 目录引言为什么使php用 .env 文件 ?如何在 Node.js 中使用 .env 文件最佳实践引

python库pydantic数据验证和设置管理库的用途

《python库pydantic数据验证和设置管理库的用途》pydantic是一个用于数据验证和设置管理的Python库,它主要利用Python类型注解来定义数据模型的结构和验证规则,本文给大家介绍p... 目录主要特点和用途:Field数值验证参数总结pydantic 是一个让你能够 confidentl

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Redis实现高效内存管理的示例代码

《Redis实现高效内存管理的示例代码》Redis内存管理是其核心功能之一,为了高效地利用内存,Redis采用了多种技术和策略,如优化的数据结构、内存分配策略、内存回收、数据压缩等,下面就来详细的介绍... 目录1. 内存分配策略jemalloc 的使用2. 数据压缩和编码ziplist示例代码3. 优化的

SpringBoot集成XXL-JOB实现任务管理全流程

《SpringBoot集成XXL-JOB实现任务管理全流程》XXL-JOB是一款轻量级分布式任务调度平台,功能丰富、界面简洁、易于扩展,本文介绍如何通过SpringBoot项目,使用RestTempl... 目录一、前言二、项目结构简述三、Maven 依赖四、Controller 代码详解五、Service

深入解析C++ 中std::map内存管理

《深入解析C++中std::map内存管理》文章详解C++std::map内存管理,指出clear()仅删除元素可能不释放底层内存,建议用swap()与空map交换以彻底释放,针对指针类型需手动de... 目录1️、基本清空std::map2️、使用 swap 彻底释放内存3️、map 中存储指针类型的对象

Linux系统管理与进程任务管理方式

《Linux系统管理与进程任务管理方式》本文系统讲解Linux管理核心技能,涵盖引导流程、服务控制(Systemd与GRUB2)、进程管理(前台/后台运行、工具使用)、计划任务(at/cron)及常用... 目录引言一、linux系统引导过程与服务控制1.1 系统引导的五个关键阶段1.2 GRUB2的进化优