注意
本文档适用于 Ceph 的开发版本。
ceph-authtool -- Ceph 密钥环操作工具
概要
描述
ceph-authtool 是一个用于创建、查看和修改 Ceph 密钥环文件的工具。密钥环文件存储一个或多个 Ceph 身份验证密钥以及可能相关的能力规范。每个密钥都与一个实体名称相关联,格式为 {client,mon,mds,osd}.name。
警告 一旦设置了密钥,Ceph 提供了身份验证和针对中间人攻击的保护。然而,数据在传输过程中没有加密,这可能包括用于配置所述密钥的消息。该系统主要用于可信环境。
选项
- -l, --list
将列出密钥环中存在的所有密钥和功能
- -p, --print-key
将打印指定实体名称的编码密钥。这适用于
mount -o secret=参数
- -C, --create-keyring
将创建一个新的密钥环,覆盖任何现有的 keyringfile
- -g, --gen-key
将为指定的实体名称生成一个新的密钥
- --gen-print-key
将为指定的实体名称生成一个新的密钥,但不会修改 keyringfile,而是将密钥打印到 stdout
- --import-keyring *secondkeyringfile*
将给定密钥环的内容导入到 keyringfile
- -n, --name *name*
指定要操作的实体名称
- -a, --add-key *base64_key*
将编码密钥添加到密钥环
- --cap *subsystem* *capability*
将为给定子系统设置功能
- --caps *capsfile*
将设置与给定密钥关联的所有功能,适用于所有子系统
- --mode *mode*
将设置所需的密钥环文件模式,例如:0644,默认为 0600
功能
子系统是 Ceph 子系统的名称:mon、mds 或 osd。
功能是一个字符串,描述给定用户被允许执行的操作。它采用逗号分隔的允许子句列表的形式,其中权限说明符包含 rwx 中的一个或多个,分别表示读取、写入和执行权限。allow * 授予给定子系统的完全超级用户权限。
例如
# can read, write, and execute objects
osd = "allow rwx"
# can access mds server
mds = "allow"
# can modify cluster state (i.e., is a server daemon)
mon = "allow rwx"
一个受限于单个池的 librados 用户可能看起来像这样
mon = "allow r"
osd = "allow rw pool foo"
一个使用 rbd 客户端,对一个池具有读取权限,对另一个池具有读取/写入权限
mon = "allow r"
osd = "allow class-read object_prefix rbd_children, allow pool templates r class-read, allow pool vms rwx"
一个以最小权限挂载文件系统的客户端将需要以下功能
mds = "allow"
osd = "allow rw pool data"
mon = "allow r"
OSD 功能
通常,OSD 功能遵循以下语法
osdcap := grant[,grant...]
grant := allow (match capspec | capspec match)
match := [ pool[=]<poolname> | object_prefix <prefix>
| namespace[=]<rados-namespace>
| tag <application-name> <key>=<value> ]
capspec := * | [r][w][x] [class-read] [class-write]
capspec 确定实体可以执行的操作类型
r = read access to objects
w = write access to objects
x = can call any class method (same as class-read class-write)
class-read = can call class methods that are reads
class-write = can call class methods that are writes
* or "all" = equivalent to rwx, plus the ability to run osd admin commands,
i.e. ceph osd tell ...
匹配标准根据被访问的池限制授权。如果客户端满足匹配条件,则授权是累加的。例如,如果客户端具有 osd 功能:“allow r object_prefix prefix, allow w pool foo, allow x pool bar”,那么它对 pool foo 具有 rw 访问权限,对 pool bar 具有 rx 访问权限,对任何池中名称以 'prefix' 开头的对象具有 r 访问权限。
Caps 文件格式
caps 文件格式由零个或多个键/值对组成,每行一对。键和值由 = 分隔,如果值包含任何空格,则必须用引号(' 或 ")引起来。键是 Ceph 子系统的名称(osd、mds、mon),值是功能字符串(见上文)。
示例
要创建一个包含 client.foo 密钥且文件模式为 0644 的新密钥环
ceph-authtool -C -n client.foo --gen-key keyring --mode 0644
将一些功能与密钥关联(即挂载 Ceph 文件系统的能力)
ceph-authtool -n client.foo --cap mds 'allow' --cap osd 'allow rw pool=data' --cap mon 'allow r' keyring
显示密钥环内容
ceph-authtool -l keyring
挂载 Ceph 文件系统时,可以使用以下命令获取适当编码的密钥
mount -t ceph serverhost:/ mountpoint -o name=foo,secret=`ceph-authtool -p -n client.foo keyring`
可用性
ceph-authtool 是 Ceph 的一部分,Ceph 是一个大规模可扩展、开源的分布式存储系统。请参阅 Ceph 文档(网址为 https://docs.ceph.net.cn)获取更多信息。
另请参阅
ceph(8)