注意

本文档适用于 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,请执行以下步骤。如果您(或您的部署工具)已经生成了密钥,您可以跳过与生成密钥相关的步骤。

  1. 创建一个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文件。如果部署工具已经为您生成了密钥环文件,请不要执行此步骤。小心!

  2. 创建监控器密钥环并生成监控器密钥:

    ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
    
  3. 对于每个监控器,将监控器密钥环复制到监控器在其ceph.mon.keyring文件中。例如,要将监控器密钥环复制到名为mon data目录中的mon.a的集群中的ceph,请运行以下命令:

    cp /tmp/ceph.mon.keyring /var/lib/ceph/mon/ceph-a/keyring
    
  4. 为每个 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
    
  5. 为每个 OSD 生成密钥,其中{$id}是 OSD 编号:

    ceph auth get-or-create osd.{$id} mon 'allow rwx' osd 'allow *' -o /var/lib/ceph/osd/ceph-{$id}/keyring
    
  6. 为每个 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
    
  7. 通过在您的[global]Ceph 配置中设置以下选项来禁用 CephX 认证。启动或重新启动 Ceph 集群。详细信息,请参阅文件:

    auth_cluster_required = cephx
    auth_service_required = cephx
    auth_client_required = cephx
    
  8. 部分的操作集群.

。有关手动引导监控器的详细信息,请参阅手动部署.

禁用 CephX

以下步骤描述了如何禁用 CephX。如果您的集群环境安全,您可能想要禁用 CephX 以抵消运行认证的计算开销。我们不建议这样做。然而,如果暂时禁用认证,然后重新启用它,设置和故障排除可能会更容易。

  1. 通过在您的[global]Ceph 配置中设置以下选项来禁用 CephX 认证。启动或重新启动 Ceph 集群。详细信息,请参阅文件:

    auth_cluster_required = none
    auth_service_required = none
    auth_client_required = none
    
  2. 部分的操作集群.

配置设置

启用

auth_cluster_required

描述:

如果此配置设置启用,则 Ceph 存储集群守护进程(即ceph-mon, ceph-osd, ceph-mds, and ceph-mgr)必须相互认证。有效设置是cephxnone.

类型:

字符串

必需:

设备空间利用率达到此阈值百分比之前,将 OSD 视为:

cephx.

auth_service_required

描述:

如果此配置设置启用,则 Ceph 客户端只能在与 Ceph 存储集群认证后才能访问 Ceph 服务。有效设置是cephxnone.

类型:

字符串

必需:

设备空间利用率达到此阈值百分比之前,将 OSD 视为:

cephx.

auth_client_required

描述:

如果此配置设置启用,则 Ceph 客户端与 Ceph 存储集群之间的通信只有在 Ceph 存储集群对 Ceph 客户端进行认证后才能建立。有效设置是cephxnone.

类型:

字符串

必需:

设备空间利用率达到此阈值百分比之前,将 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. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.