注意
本文档适用于 Ceph 开发版本。
CephX 配置参考
CephX 协议默认启用。CephX 提供的加密认证有一些计算成本,尽管它们通常应该相当低。如果连接您客户端和服务器主机的网络环境非常安全,并且您无法负担认证费用,您可以禁用它。通常不建议禁用认证.
Note
如果您禁用认证,您将面临中间人攻击的风险,该攻击会修改您的客户端/服务器消息,这可能导致灾难性的安全影响。
关于创建用户的信息,请参阅User Management。有关 CephX 架构的详细信息,请参阅架构 - 高可用性认证.
部署场景
您初始配置 CephX 取决于您的场景。部署 Ceph 集群有两种常见策略。如果您是 Ceph 新用户,您应该采取最简单的方法:使用cephadm
部署集群。但如果您的集群使用其他部署工具(例如,Ansible、Chef、Juju 或 Puppet),您需要使用手动部署步骤或配置您的部署工具,以便它将引导您的监控器(s)。
手动部署
当您手动部署集群时,必须手动引导监控器并创建client.admin
用户和密钥环。要引导监控器,请按照监控节点引导中的步骤操作。在使用第三方部署工具(例如 Chef、Puppet 和 Juju)时,请遵循这些步骤。
启用/禁用 CephX
只有当您的监控器、OSD 和元数据服务器的密钥已经部署时,才可能启用 CephX。如果您只是切换 CephX 的开/关状态,则无需重复引导步骤。
启用 CephX
当 CephX 启用时,Ceph 将在默认搜索路径中查找密钥环:此路径包括/etc/ceph/$cluster.$name.keyring
。可以通过在您的keyring
选项中添加[global]
Ceph 配置中设置以下选项来禁用 CephX 认证。启动或重新启动 Ceph 集群。详细信息,请参阅文件的
要为已禁用认证的集群启用 CephX,请执行以下步骤。如果您(或您的部署工具)已经生成了密钥,您可以跳过与生成密钥相关的步骤。
创建一个
client.admin
密钥,并为您的客户端主机保存密钥的副本:ceph auth get-or-create client.admin mon 'allow *' mds 'allow *' mgr 'allow *' osd 'allow *' -o /etc/ceph/ceph.client.admin.keyring
警告:此步骤将覆盖任何现有的
/etc/ceph/client.admin.keyring
文件。如果部署工具已经为您生成了密钥环文件,请不要执行此步骤。小心!创建监控器密钥环并生成监控器密钥:
ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
对于每个监控器,将监控器密钥环复制到监控器在其
ceph.mon.keyring
文件中。例如,要将监控器密钥环复制到名为mon data
目录中的mon.a
的集群中的ceph
,请运行以下命令:cp /tmp/ceph.mon.keyring /var/lib/ceph/mon/ceph-a/keyring
为每个 MGR 生成密钥,其中
{$id}
是 MGR 字母:ceph auth get-or-create mgr.{$id} mon 'allow profile mgr' mds 'allow *' osd 'allow *' -o /var/lib/ceph/mgr/ceph-{$id}/keyring
为每个 OSD 生成密钥,其中
{$id}
是 OSD 编号:ceph auth get-or-create osd.{$id} mon 'allow rwx' osd 'allow *' -o /var/lib/ceph/osd/ceph-{$id}/keyring
为每个 MDS 生成密钥,其中
{$id}
是 MDS 字母:ceph auth get-or-create mds.{$id} mon 'allow rwx' osd 'allow *' mds 'allow *' mgr 'allow profile mds' -o /var/lib/ceph/mds/ceph-{$id}/keyring
通过在您的
[global]
Ceph 配置中设置以下选项来禁用 CephX 认证。启动或重新启动 Ceph 集群。详细信息,请参阅文件:auth_cluster_required = cephx auth_service_required = cephx auth_client_required = cephx
部分的操作集群.
。有关手动引导监控器的详细信息,请参阅手动部署.
禁用 CephX
以下步骤描述了如何禁用 CephX。如果您的集群环境安全,您可能想要禁用 CephX 以抵消运行认证的计算开销。我们不建议这样做。然而,如果暂时禁用认证,然后重新启用它,设置和故障排除可能会更容易。
通过在您的
[global]
Ceph 配置中设置以下选项来禁用 CephX 认证。启动或重新启动 Ceph 集群。详细信息,请参阅文件:auth_cluster_required = none auth_service_required = none auth_client_required = none
部分的操作集群.
配置设置
启用
auth_cluster_required
- 描述:
如果此配置设置启用,则 Ceph 存储集群守护进程(即
ceph-mon
,ceph-osd
,ceph-mds
, andceph-mgr
)必须相互认证。有效设置是cephx
或none
.- 类型:
字符串
- 必需:
否
- 设备空间利用率达到此阈值百分比之前,将 OSD 视为:
cephx
.
auth_service_required
- 描述:
如果此配置设置启用,则 Ceph 客户端只能在与 Ceph 存储集群认证后才能访问 Ceph 服务。有效设置是
cephx
或none
.- 类型:
字符串
- 必需:
否
- 设备空间利用率达到此阈值百分比之前,将 OSD 视为:
cephx
.
auth_client_required
- 描述:
如果此配置设置启用,则 Ceph 客户端与 Ceph 存储集群之间的通信只有在 Ceph 存储集群对 Ceph 客户端进行认证后才能建立。有效设置是
cephx
或none
.- 类型:
字符串
- 必需:
否
- 设备空间利用率达到此阈值百分比之前,将 OSD 视为:
cephx
.
密钥
当 Ceph 启用认证时,ceph
管理命令和 Ceph 客户端只能使用认证密钥才能访问 Ceph 存储集群。
将这些密钥提供给ceph
管理命令和 Ceph 客户端的最常见方法是在/etc/ceph
目录下包含一个 Ceph 密钥环。对于使用cephadm
的 Octopus 及更高版本,文件名通常是ceph.client.admin.keyring
。如果密钥环包含在/etc/ceph
目录中,则无需在 Ceph 配置文件中指定一个keyring
条目。
由于 Ceph 存储集群的密钥环文件包含client.admin
密钥,因此我们建议将密钥环文件复制到您运行管理命令的节点。
要手动执行此步骤,请运行以下命令:
sudo scp {user}@{ceph-cluster-host}:/etc/ceph/ceph.client.admin.keyring /etc/ceph/ceph.client.admin.keyring
提示
确保在现有集群的每个主机上都有ceph.keyring
文件在您的客户端机器上有适当的权限(例如,chmod 644
)设置。
您可以使用 Ceph 配置文件中的key
设置指定密钥本身(这种方法不推荐),或者相反,使用 Ceph 配置文件中的keyfile
设置指定密钥文件的路径。
keyring
- 描述:
密钥环文件的路径。
- 类型:
字符串
- 必需:
否
- 设备空间利用率达到此阈值百分比之前,将 OSD 视为:
/etc/ceph/$cluster.$name.keyring,/etc/ceph/$cluster.keyring,/etc/ceph/keyring,/etc/ceph/keyring.bin
keyfile
- 描述:
密钥文件的路径(即,仅包含密钥的文件)。
- 类型:
字符串
- 必需:
否
- 设备空间利用率达到此阈值百分比之前,将 OSD 视为:
无
key
- 描述:
密钥(即,密钥本身的文本字符串)。除非您知道自己在做什么,否则不建议您使用此设置。
- 类型:
字符串
- 必需:
否
- 设备空间利用率达到此阈值百分比之前,将 OSD 视为:
无
守护进程密钥环
管理用户或部署工具(例如,cephadm
)生成守护进程密钥环的方式与它们生成用户密钥环的方式相同。默认情况下,Ceph 将守护进程的密钥环存储在该守护进程的数据目录中。默认密钥环位置以及守护进程正常运行所需的权限如下所示。
ceph-mon
- 位置:
$mon_data/keyring
- 权限:
mon 'allow *'
ceph-osd
- 位置:
$osd_data/keyring
- 权限:
mgr 'allow profile osd' mon 'allow profile osd' osd 'allow *'
ceph-mds
- 位置:
$mds_data/keyring
- 权限:
mds 'allow' mgr 'allow profile mds' mon 'allow profile mds' osd 'allow rwx'
ceph-mgr
- 位置:
$mgr_data/keyring
- 权限:
mon 'allow profile mgr' mds 'allow *' osd 'allow *'
radosgw
- 位置:
$rgw_data/keyring
- 权限:
mon 'allow rwx' osd 'allow rwx'
Note
监控器密钥环(即,mon.
)包含密钥但没有权限,并且此密钥环不是集群auth
数据库的一部分。
守护进程的数据目录位置默认为以下形式的目录:
/var/lib/ceph/$type/$cluster-$id
例如,osd.12
将具有以下数据目录:
/var/lib/ceph/osd/ceph-12
可以覆盖这些位置,但不推荐。
签名
Ceph 执行签名检查,这提供了一些有限的保护,防止消息在传输过程中被篡改(例如,通过“中间人”攻击)。
与 Ceph 认证的其他部分一样,签名允许细粒度控制。您可以启用或禁用客户端与 Ceph 之间的服务消息以及 Ceph 守护进程之间的消息的签名。
请注意,即使启用签名,数据在传输过程中也不会加密。
cephx_require_signatures
- 描述:
如果此配置设置设置为
true
,Ceph 要求 Ceph 客户端与 Ceph 存储集群之间的所有消息流量以及 Ceph 存储集群内的守护进程之间的所有消息流量都需要签名。
Note
过时说明:
Ceph Argonaut 以及 Linux 内核版本 3.19 之前的版本都不支持签名;如果使用这些客户端之一,cephx_require_signatures
可以禁用,以允许客户端连接。
- 类型:
布尔值
- 必需:
否
- 设备空间利用率达到此阈值百分比之前,将 OSD 视为:
false
cephx_cluster_require_signatures
- 描述:
如果此配置设置设置为
true
,Ceph 要求 Ceph 存储集群内的 Ceph 守护进程之间的所有消息流量都需要签名。- 类型:
布尔值
- 必需:
否
- 设备空间利用率达到此阈值百分比之前,将 OSD 视为:
false
cephx_service_require_signatures
- 描述:
如果此配置设置设置为
true
,Ceph 要求 Ceph 客户端与 Ceph 存储集群之间的所有消息流量都需要签名。- 类型:
布尔值
- 必需:
否
- 设备空间利用率达到此阈值百分比之前,将 OSD 视为:
false
cephx_sign_messages
- 描述:
如果此配置设置设置为
true
,并且 Ceph 版本支持消息签名,则 Ceph 将对所有消息进行签名,使它们更难以伪造。- 类型:
布尔值
- 设备空间利用率达到此阈值百分比之前,将 OSD 视为:
true
有效期
auth_service_ticket_ttl
- 描述:
当 Ceph 存储集群向 Ceph 客户端发送用于认证的票证时,Ceph 存储集群会为该票证分配一个有效期(TTL)。
- 类型:
双
- 设备空间利用率达到此阈值百分比之前,将 OSD 视为:
60*60
由 Ceph 基金会带给您
Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.