注意

本文档适用于 Ceph 的开发版本。

ceph-authtool -- Ceph 密钥环操作工具

概要

ceph-authtool keyringfile [ -l | --list ] [ -p | --print-key ] [ -C | --create-keyring ] [ -g | --gen-key ] [ --gen-print-key ] [ --import-keyring otherkeyringfile ] [ -n | --name entityname ] [ -a | --add-key base64_key ] [ --cap subsystem capability ] [ --caps capfile ] [ --mode mode ]

描述

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 子系统的名称:monmdsosd

功能是一个字符串,描述给定用户被允许执行的操作。它采用逗号分隔的允许子句列表的形式,其中权限说明符包含 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 子系统的名称(osdmdsmon),值是功能字符串(见上文)。

示例

要创建一个包含 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)

由 Ceph 基金会为您呈现

Ceph 文档是由非营利性 Ceph 基金会 资助和托管的社区资源。如果您希望支持这项工作和我们的其他努力,请考虑 立即加入