注意
本文档适用于 Ceph 的开发版本。
ceph-authtool -- ceph密钥环操作工具
概要
描述
ceph-authtool是一个用于创建、查看和修改Ceph密钥环文件的工具。{client,mon,mds,osd}.name
.
警告一旦密钥设置到位,Ceph就提供认证和保护,防止中间人攻击。
选项
- -l, --list
将列出密钥环中所有存在的密钥和功能
- -p, --print-key
将为指定的entityname打印编码密钥。这适用于
mount -o secret=
参数
- -C, --create-keyring
将创建一个新的密钥环,覆盖任何现有的keyringfile
- -g, --gen-key
将为指定的entityname生成一个新的密钥
- --gen-print-key
将为指定的entityname生成一个新的密钥,不更改keyringfile,将密钥打印到stdout
- --import-keyring *secondkeyringfile*
将给定密钥环的内容导入到keyringfile
- -n, --name *name*
指定要操作的entityname
- -a, --add-key *base64_key*
将编码密钥添加到密钥环
- --cap *subsystem* *capability*
将为给定的subsystem设置功能
- --caps *capsfile*
将为给定密钥的所有subsystem设置所有相关功能
- --mode *mode*
将期望的文件模式设置为密钥环,例如:0644,默认为0600
功能
subsystem是Ceph子系统名称:mon
, mds
,或osd
.
功能是一个描述给定用户被允许做什么的字符串。allow *
授予给定subsystem完全的超级用户权限。
例如:
# 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 ...
匹配标准根据被访问的池限制授权。
功能文件格式
功能文件格式由零个或多个键值对组成,每行一个。=
,分隔,如果值包含任何空白,则必须用'
or "
引用。键是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.com获取更多信息。
参见
ceph(8)