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

相关文章

springboot security使用jwt认证方式

《springbootsecurity使用jwt认证方式》:本文主要介绍springbootsecurity使用jwt认证方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录前言代码示例依赖定义mapper定义用户信息的实体beansecurity相关的类提供登录接口测试提供一

nvm如何切换与管理node版本

《nvm如何切换与管理node版本》:本文主要介绍nvm如何切换与管理node版本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录nvm切换与管理node版本nvm安装nvm常用命令总结nvm切换与管理node版本nvm适用于多项目同时开发,然后项目适配no

SpringSecurity 认证、注销、权限控制功能(注销、记住密码、自定义登入页)

《SpringSecurity认证、注销、权限控制功能(注销、记住密码、自定义登入页)》SpringSecurity是一个强大的Java框架,用于保护应用程序的安全性,它提供了一套全面的安全解决方案... 目录简介认识Spring Security“认证”(Authentication)“授权” (Auth

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

一文详解kafka开启kerberos认证的完整步骤

《一文详解kafka开启kerberos认证的完整步骤》这篇文章主要为大家详细介绍了kafka开启kerberos认证的完整步骤,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、kerberos安装部署二、准备机器三、Kerberos Server 安装1、配置krb5.con

Redis实现RBAC权限管理

《Redis实现RBAC权限管理》本文主要介绍了Redis实现RBAC权限管理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1. 什么是 RBAC?2. 为什么使用 Redis 实现 RBAC?3. 设计 RBAC 数据结构

mac安装nvm(node.js)多版本管理实践步骤

《mac安装nvm(node.js)多版本管理实践步骤》:本文主要介绍mac安装nvm(node.js)多版本管理的相关资料,NVM是一个用于管理多个Node.js版本的命令行工具,它允许开发者在... 目录NVM功能简介MAC安装实践一、下载nvm二、安装nvm三、安装node.js总结NVM功能简介N

SpringBoot中使用 ThreadLocal 进行多线程上下文管理及注意事项小结

《SpringBoot中使用ThreadLocal进行多线程上下文管理及注意事项小结》本文详细介绍了ThreadLocal的原理、使用场景和示例代码,并在SpringBoot中使用ThreadLo... 目录前言技术积累1.什么是 ThreadLocal2. ThreadLocal 的原理2.1 线程隔离2

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

java如何通过Kerberos认证方式连接hive

《java如何通过Kerberos认证方式连接hive》该文主要介绍了如何在数据源管理功能中适配不同数据源(如MySQL、PostgreSQL和Hive),特别是如何在SpringBoot3框架下通过... 目录Java实现Kerberos认证主要方法依赖示例续期连接hive遇到的问题分析解决方式扩展思考总