注意

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

User Management

本文档描述Ceph Client用户,并描述了他们执行身份验证和授权的过程,以便他们可以访问Ceph 存储集群. 用户要么是个人,要么是系统参与者(例如,应用程序),他们使用 Ceph 客户端与 Ceph 存储集群守护进程交互。

当 Ceph 以启用身份验证和授权运行时(两者默认都启用),您必须指定一个用户名和一个包含指定用户密钥的密钥环(通常这些是通过命令行指定的)。如果您未指定用户名,Ceph 将使用client.admin作为默认用户名。如果您未指定密钥环,Ceph 将通过 Ceph 配置中的keyring设置查找密钥环。例如,如果您执行ceph health命令而不指定用户或密钥环,Ceph 将假定密钥环位于/etc/ceph/ceph.client.admin.keyring并将尝试使用该密钥环。以下说明了此行为:

ceph health

Ceph 将像这样解释命令:

ceph -n client.admin --keyring=/etc/ceph/ceph.client.admin.keyring health

或者,您可以使用CEPH_ARGS环境变量来避免重新输入用户名和密钥。

有关配置 Ceph 存储集群以使用身份验证的详细信息,请参阅Cephx 配置参考. 有关 Cephx 架构的详细信息,请参阅架构 - 高可用性身份验证.

背景

无论使用哪种类型的 Ceph 客户端(例如:块设备、对象存储、文件系统、原生 API),Ceph 都将所有数据作为 RADOS 对象存储在pools. Ceph 用户必须可以访问给定的池才能读取和写入数据,并且 Ceph 用户必须具有执行权限才能使用 Ceph 的管理命令。以下概念将帮助您理解 Ceph[‘s] 用户管理。

用户

用户要么是个人,要么是系统参与者(例如,应用程序)。创建用户允许您控制谁(或什么)可以访问您的 Ceph 存储集群、其池以及池中的数据。

Ceph 有用户类型的概念。对于用户管理,类型始终为type of user. For purposes of user management, the type will always be client. Ceph 以“周期分隔形式”识别用户,该形式由用户类型和用户 ID 组成:例如,TYPE.ID, client.adminclient.user1. 用户类型的原因是 Cephx 协议不仅由客户端使用,还由非客户端使用,例如 Ceph 监视器、OSD 和元数据服务器。区分用户类型有助于区分客户端用户和其他用户。这种区分简化了访问控制、用户监控和可追溯性。

有时 Ceph 的用户类型可能令人困惑,因为 Ceph 命令行允许您有或没有类型地指定用户,具体取决于您的命令行用法。如果您指定--user--id,您可以省略类型。例如,client.user1可以简单地输入user1. 另一方面,如果您指定--name-n,您必须提供类型和名称:例如,client.user1. 我们建议尽可能使用类型和名称作为最佳实践。

Note

Ceph 存储集群用户与 Ceph 对象存储用户或 Ceph 文件系统用户不同。Ceph 对象网关使用 Ceph 存储集群用户在网关守护进程和存储集群之间进行通信,但 Ceph 对象网关有自己的用户管理功能,用于最终用户。Ceph 文件系统使用 POSIX 语义,与 Ceph 文件系统关联的用户空间与与 Ceph 存储集群用户关联的用户空间不同。

授权(功能)

Ceph 使用“功能”(caps)一词来描述授予经过身份验证用户的监视器、OSD 和元数据服务器的功能。功能还可以根据其应用标签限制对池内数据、池内命名空间或一组池的访问。Ceph 管理用户在创建或更新用户时指定用户的功能。

功能语法遵循以下形式:

{daemon-type} '{cap-spec}[, {cap-spec} ...]'
  • 监视器功能:监视器功能包括r, w, x访问设置,并且可以汇总从预定义配置文件应用profile {name}从仓库中删除它。例如:

    mon 'allow {access-spec} [network {network/prefix}]'
    
    mon 'profile {name}'
    

    The {access-spec}语法如下:

    * | all | [r][w][x]
    

    可选的 b728dc: 是 CIDR 表示法中的标准网络名和前缀长度(例如 9ebd3d: )。如果 14afb2: 存在,则使用此能力的限制仅限于从此网络连接的客户端。{network/prefix}是标准网络名称和 CIDR 符号长度(例如,10.3.0.0/16)。如果{network/prefix}存在,则只有连接到指定网络的客户端才能使用监视器功能。

  • OSD 功能:OSD 功能包括r, w, x, and class-readclass-write访问设置。OSD 功能可以汇总从预定义配置文件应用profile {name}。此外,OSD 功能允许池和命名空间设置。

    osd 'allow {access-spec} [{match-spec}] [network {network/prefix}]'
    
    osd 'profile {name} [pool={pool-name}] [namespace={namespace-name}] [network {network/prefix}]'
    

    有两种替代形式的{access-spec}语法:

    * | all | [r][w][x] [class-read] [class-write]
    
    class {class name} [{method name}]
    

    有四种替代形式的可选{match-spec}语法:

    pool={pool-name} [namespace={namespace-name}] [object_prefix {prefix}]
    
    [pool={pool-name}] namespace={namespace-name} [object_prefix {prefix}]
    
    [pool={pool-name}] [namespace={namespace-name}] object_prefix {prefix}
    
    [namespace={namespace-name}] tag {application} {key}={value}
    

    可选的 b728dc: 是 CIDR 表示法中的标准网络名和前缀长度(例如 9ebd3d: )。如果 14afb2: 存在,则使用此能力的限制仅限于从此网络连接的客户端。{network/prefix}是标准网络名称和 CIDR 符号长度(例如,10.3.0.0/16). If {network/prefix}存在,则只有连接到指定网络的客户端才能使用 OSD 功能。

  • 管理员功能:管理员ceph-mgr功能包括r, w, x访问设置,并且可以汇总从预定义配置文件应用profile {name}从仓库中删除它。例如:

    mgr 'allow {access-spec} [network {network/prefix}]'
    
    mgr 'profile {name} [{key1} {match-type} {value1} ...] [network {network/prefix}]'
    

    管理员功能还可以针对特定命令、内置管理器服务导出的所有命令或特定附加模块导出的所有命令指定。例如:

    mgr 'allow command "{command-prefix}" [with {key1} {match-type} {value1} ...] [network {network/prefix}]'
    
    mgr 'allow service {service-name} {access-spec} [network {network/prefix}]'
    
    mgr 'allow module {module-name} [with {key1} {match-type} {value1} ...] {access-spec} [network {network/prefix}]'
    

    The {access-spec}语法如下:

    * | all | [r][w][x]
    

    The {service-name}是以下之一:

    mgr | osd | pg | py
    

    The {match-type}是以下之一:

    = | prefix | regex
    
  • 元数据服务器功能:对于管理员,使用allow *。对于所有其他用户(例如,CephFS 客户端),请参阅CephFS 客户端功能

Note

Ceph 对象网关守护进程radosgw是 Ceph 存储集群的客户端。因此,它不表示为

以下条目描述了访问功能。

allow

描述:

在守护进程的访问设置之前。意味着rw仅适用于 MDS。

r

描述:

给用户读取访问权限。需要与监视器一起检索 CRUSH 地图。

w

描述:

给用户对象写入权限。

x

描述:

给用户调用类方法auth操作的能力。

class-read

描述:

给用户调用类读取方法的能力。x.

class-write

描述:

的子集x.

*, all

描述:

给用户特定守护进程/池的读取、写入和执行权限,以及执行管理命令的能力。

以下条目描述了有效的功能配置文件:

profile osd(仅监视器)

描述:

给用户连接为 OSD 到其他 OSD 或监视器的权限。授予 OSD 以便 OSD 能够处理复制心跳流量和状态报告。

profile mds(仅监视器)

描述:

给用户连接为 MDS 到其他 MDS 或监视器的权限。

profile bootstrap-osd(仅监视器)

描述:

给用户引导 OSD 的权限。授予部署工具(例如ceph-volumecephadm以便它们在引导 OSD 时具有添加密钥的权限。

profile bootstrap-mds(仅监视器)

描述:

给用户引导元数据服务器的权限。授予部署工具(例如cephadm以便它们在引导元数据服务器时具有添加密钥的权限。

profile bootstrap-rbd(仅监视器)

描述:

给用户引导 RBD 用户的权限。授予部署工具(例如cephadm以便它们在引导 RBD 用户时具有添加密钥的权限。

profile bootstrap-rbd-mirror(仅监视器)

描述:

给用户引导rbd-mirror守护进程用户的权限。授予部署工具(例如cephadm以便它们在引导rbd-mirror守护进程。

profile rbd(管理器、监视器和 OSD)

描述:

给用户操作 RBD 图像的权限。当用作监视器功能时,它为用户提供 RBD 客户端应用程序所需的最小权限;此类权限包括阻止列出其他客户端用户。当用作 OSD 功能时,它为 RBD 客户端应用程序提供对指定池的读写访问。管理器功能支持可选poolnamespace关键字参数。

profile rbd-mirror(仅监视器)

描述:

给用户操作 RBD 图像并检索 RBD 镜像配置密钥秘密的权限。它为用户操作rbd-mirror守护进程。

profile rbd-read-only(管理器和 OSD)

描述:

给用户 RBD 图像的只读权限。管理器功能支持可选poolnamespace关键字参数。

profile simple-rados-client(仅监视器)

描述:

给用户监视器、OSD 和 PG 数据的只读权限。适用于直接 librados 客户端应用程序。

profile simple-rados-client-with-blocklist(仅监视器)

描述:

给用户监视器、OSD 和 PG 数据的只读权限。适用于直接 librados 客户端应用程序。还包括向构建高可用性(HA)应用程序添加块列表条目的权限。

profile fs-client(仅监视器)

描述:

给用户监视器、OSD、PG 和 MDS 数据的只读权限。适用于 CephFS 客户端。

profile role-definer(监视器和认证)

描述:

给用户all认证子系统权限,对监视器具有只读访问权限,并且没有其他权限。适用于自动化工具。除非您真的真的知道自己在做什么,否则不要分配此权限,因为安全影响重大且普遍。

profile crash(监视器和 MGR)

描述:

给用户对监视器的只读访问权限。与管理器crash模块一起使用,将守护进程崩溃转储上传到监视器存储以供后续分析。

池是一个逻辑分区,用户在其中存储数据。client.glanceclient.cinder.

等用户,例如

访问可能被限制为根据其应用元数据定义的特定池。可以使用*通配符用于key参数、value参数或两者。标签all*.

的同义词

池内的对象可以关联到命名空间:即,池内的一组逻辑对象。用户对池的访问可以与命名空间相关联,以便用户的读取和写入只能在命名空间内进行。写入池内命名空间的对象只能由具有访问该命名空间的权限的用户访问。

Note

命名空间主要用于在librados上构建的应用程序。在这种情况下,命名空间提供的逻辑分组可以避免创建不同的池。在 Luminous 及更高版本发布中,Ceph 对象网关使用命名空间来处理各种元数据对象。

命名空间的理由是:命名空间比池的计算成本相对较低,而池(池)可以是一种计算成本较高的方法,用于在不同授权用户之间隔离数据集。

例如,一个池应该托管大约每 OSD 100 个放置组副本。这意味着具有 1000 个 OSD 和三个 3R 复制池的集群将(在单个池中)具有 100,000 个放置组副本,这意味着它有 33,333 个放置组。

相比之下,将对象写入命名空间只需将命名空间关联到对象名称,而无需承担单独池的计算开销。您不必为用户或一组用户创建单独的池,而是可以使用命名空间。

Note

只有在使用librados.

时才可用namespace功能。支持命名空间的有限通配符(即,使用通配符*):如果指定命名空间的最后一个字符是*,则访问任何以提供参数开头的命名空间都将被授予。

管理用户

用户管理功能为 Ceph 存储集群管理员提供了直接在 Ceph 存储集群中创建、更新和删除用户的能力。

当您在 Ceph 存储集群中创建或删除用户时,您可能需要将密钥分发给客户端,以便它们可以添加到密钥环中。有关详细信息,请参阅密钥环管理.

列出用户

要列出集群中的用户,请运行以下命令:

ceph auth ls

Ceph 将列出集群中的所有用户。例如,在两节点集群中,ceph auth ls将提供类似于以下输出的输出:

installed auth entries:

osd.0
    key: AQCvCbtToC6MDhAATtuT70Sl+DymPCfDSsyV4w==
    caps: [mon] allow profile osd
    caps: [osd] allow *
osd.1
    key: AQC4CbtTCFJBChAAVq5spj0ff4eHZICxIOVZeA==
    caps: [mon] allow profile osd
    caps: [osd] allow *
client.admin
    key: AQBHCbtT6APDHhAA5W00cBchwkQjh3dkKsyPjw==
    caps: [mds] allow
    caps: [mon] allow *
    caps: [osd] allow *
client.bootstrap-mds
    key: AQBICbtTOK9uGBAAdbe5zcIGHZL3T/u2g6EBww==
    caps: [mon] allow profile bootstrap-mds
client.bootstrap-osd
    key: AQBHCbtT4GxqORAADE5u7RkpCN/oo4e5W0uBtw==
    caps: [mon] allow profile bootstrap-osd

请注意,根据用户TYPE.ID符号,ca597b: 是类型为osd.0 is a user of type osd的用户0, and client.admin是类型为client的用户admin(即,默认client.admin用户)。key: <value>条目,并且还有一个或多个caps:条目。

要将ceph auth ls的输出保存到文件,请使用-o {filename} option.

获取用户

要检索特定用户、密钥和功能,请运行以下命令:

ceph auth get {TYPE.ID}

例如:

ceph auth get client.admin

要将ceph auth get的输出保存到文件,请使用-o {filename}选项。开发人员也可以运行以下命令:

ceph auth export {TYPE.ID}

The auth export命令与auth get.

添加用户

添加用户会创建用户名(即,TYPE.ID),密钥和命令中指定的任何功能。

用户的密钥允许用户使用 Ceph 存储集群进行身份验证。用户的权限授权用户对 Ceph 监视器mon), Ceph OSDs (osd) or Ceph Metadata Servers (mds).

There are a few ways to add a user:

  • ceph auth add: 此命令是添加用户的规范方式。它将创建用户,生成密钥,并添加任何指定的功能。

  • ceph auth get-or-create: 此命令通常是创建用户最方便的方式,因为它返回带有用户名(在括号中)和密钥的密钥文件格式。如果用户已存在,此命令只需以密钥文件格式返回用户名和密钥。要将输出保存到文件,请使用-o {filename} option.

  • ceph auth get-or-create-key: 此命令是创建用户和返回用户密钥的便捷方式。这对于只需要密钥的客户端(例如,libvirt)很有用。如果用户已存在,此命令只需返回密钥。要将输出保存到文件,请使用-o {filename} option.

在创建客户端用户时,可以创建一个没有功能的用户。没有功能的用户除了身份验证之外没有用,因为客户端无法从监视器检索集群地图。但是,您可能想要创建一个没有功能的用户,并稍后使用ceph auth caps命令为用户添加功能。

典型的用户至少对 Ceph 监视器具有读取权限,对 Ceph OSD 具有读取和写入权限。用户的 OSD 权限通常受到限制,以便用户只能访问特定的池。在以下示例中,命令(1)添加一个名为john的客户端,该客户端对 Ceph 监视器具有读取权限,对池名为liverpool的池具有读取和写入权限,(2)授权名为paul的客户端对 Ceph 监视器具有读取权限,对池名为liverpool的池具有读取和写入权限,(3)授权名为george的客户端对 Ceph 监视器具有读取权限,对池名为liverpool的池具有读取和写入权限,并使用名为george.keyring的密钥环进行此授权,以及(4)授权名为ringo的客户端对 Ceph 监视器具有读取权限,对池名为liverpool的池具有读取和写入权限,并使用名为ringo.key的密钥进行此授权:

ceph auth add client.john mon 'allow r' osd 'allow rw pool=liverpool'
ceph auth get-or-create client.paul mon 'allow r' osd 'allow rw pool=liverpool'
ceph auth get-or-create client.george mon 'allow r' osd 'allow rw pool=liverpool' -o george.keyring
ceph auth get-or-create-key client.ringo mon 'allow r' osd 'allow rw pool=liverpool' -o ringo.key

重要

任何在 OSD 上具有功能的用户都将访问集群中的所有池,除非该用户的访问已被限制为集群中池的适当子集。

修改用户功能

The ceph auth caps命令允许您指定用户并更改该用户的功能。设置新功能将覆盖当前功能。要查看当前功能,请运行ceph auth get USERTYPE.USERID。要添加功能,请运行以下形式的命令(并确保指定现有功能):

ceph auth caps USERTYPE.USERID {daemon} 'allow [r|w|x|*|...] [pool={pool-name}] [namespace={namespace-name}]' [{daemon} 'allow [r|w|x|*|...] [pool={pool-name}] [namespace={namespace-name}]']

例如:

ceph auth get client.john
ceph auth caps client.john mon 'allow r' osd 'allow rw pool=liverpool'
ceph auth caps client.paul mon 'allow rw' osd 'allow rwx pool=liverpool'
ceph auth caps client.brian-manager mon 'allow *' osd 'allow *'

有关功能的更多详细信息,请参阅授权(功能).

删除用户

要删除用户,请使用ceph auth del:

ceph auth del {TYPE}.{ID}

这里{TYPE}client, osd, monmds,并{ID}是用户名或守护进程的 ID。

打印用户的密钥

要将用户的身份验证密钥打印到标准输出,请运行以下命令:

ceph auth print-key {TYPE}.{ID}

这里{TYPE}client, osd, monmds,并{ID}是用户名或守护进程的 ID。

当需要将用户的密钥填充到客户端软件中(例如,libvirt)时,可以通过运行以下命令打印用户的密钥:

mount -t ceph serverhost:/ mountpoint -o name=client.user,secret=`ceph auth print-key client.user`

导入用户

要导入一个或多个用户,请使用ceph auth import并指定密钥环如下:

ceph auth import -i /path/to/keyring

例如:

sudo ceph auth import -i /etc/ceph/ceph.keyring

Note

Ceph 存储集群将添加新用户、它们的密钥和它们的功能,并更新现有用户、它们的密钥和它们的功能。

密钥环管理

当您通过 Ceph 客户端访问 Ceph 时,Ceph 客户端将查找本地密钥环。Ceph 默认情况下将keyring设置为四个密钥环名称。因此,您不必在 Ceph 配置文件中设置密钥环名称,除非您想要覆盖这些默认值(这不建议)。四个默认密钥环名称如下:

  • /etc/ceph/$cluster.$name.keyring

  • /etc/ceph/$cluster.keyring

  • /etc/ceph/keyring

  • /etc/ceph/keyring.bin

The $cluster在上述前两个默认密钥环名称中找到的ceph.conf,则您的 Ceph 集群名称是ceph,而第二个名称是ceph.keyring一起使用。该$namemetavariable 是用户类型和用户 ID:client.admin,上述第一个名称是ceph.client.admin.keyring.

Note

当运行读取或写入/etc/ceph的命令时,您可能需要使用sudoroot.

的身份运行命令。client.ringo), you must get the key and add

The User Management部分详细说明了如何在 Ceph 存储集群中直接列出、获取、添加、修改和删除用户。此外,Ceph 提供了ceph-authtool实用程序,允许您从 Ceph 客户端管理密钥环。

创建密钥环

当您使用管理用户部分中的程序来创建用户时,您必须向 Ceph 客户端提供用户密钥。这是必要的,以便 Ceph 客户端可以检索指定用户的密钥,并使用 Ceph 存储集群对用户进行身份验证。Ceph 客户端访问密钥环以查找用户名并检索用户的密钥。

The ceph-authtool实用程序允许您创建密钥环。要创建一个空密钥环,请使用--create-keyring-C从仓库中删除它。例如:

ceph-authtool --create-keyring /path/to/keyring

当创建包含多个用户的密钥环时,我们建议使用集群名称(形式为$cluster.keyring)作为密钥环文件名,并将密钥环保存在/etc/ceph目录中。通过这样做,您确保了keyring配置默认设置将拾取文件名,而无需在您的 Ceph 配置文件的本地副本中指定文件名。例如,您可以通过运行以下命令来创建ceph.keyring:

sudo ceph-authtool -C /etc/ceph/ceph.keyring

当创建包含单个用户的密钥环时,我们建议使用集群名称、用户类型和用户名,并将密钥环保存在/etc/ceph目录中。client.admin用户使用ceph.client.admin.keyring.

要在/etc/ceph中创建密钥环,您必须以root的身份进行。这意味着文件将具有rw权限仅针对root用户,这适用于包含管理员密钥的密钥环。但是,如果您打算使用密钥环为特定用户或一组用户使用,请务必使用chownchmod来建立适当的密钥环所有权和访问。

将用户添加到密钥环

当您添加用户到 Ceph 存储集群时,您可以使用获取用户程序来检索用户、密钥和功能,然后将用户保存到密钥环。

如果您只想在每个密钥环中使用一个用户,可以使用获取用户程序与-o选项一起使用,将输出保存为密钥环文件格式。例如,要为client.admin用户创建密钥环,请运行以下命令:

sudo ceph auth get client.admin -o /etc/ceph/ceph.client.admin.keyring

请注意,此命令中的文件格式是通常用于操作单个用户密钥环的文件格式。

如果您想将用户导入密钥环,您可以使用ceph-authtool来指定目标密钥环和源密钥环。例如:

sudo ceph-authtool /etc/ceph/ceph.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring

创建用户

Ceph 提供了添加用户功能直接在 Ceph 存储集群中创建用户。但是,您也可以在 Ceph 客户端密钥环上直接创建用户、密钥和功能,然后导入用户到 Ceph 存储集群。例如:

sudo ceph-authtool -n client.ringo --cap osd 'allow rwx' --cap mon 'allow rwx' /etc/ceph/ceph.keyring

有关功能的更多详细信息,请参阅授权(功能).

您还可以同时创建密钥环并添加新用户到密钥环。例如:

sudo ceph-authtool -C /etc/ceph/ceph.keyring -n client.ringo --cap osd 'allow rwx' --cap mon 'allow rwx' --gen-key

在上面的示例中,新用户client.ringo仅添加到

要将新用户client.ringo添加到 Ceph 存储集群,请运行以下命令:

sudo ceph auth add client.ringo -i /etc/ceph/ceph.keyring

修改用户

要修改密钥环中用户记录的功能,请指定密钥环和用户,然后是功能。例如:

sudo ceph-authtool /etc/ceph/ceph.keyring -n client.ringo --cap osd 'allow rwx' --cap mon 'allow rwx'

要更新 Ceph 存储集群中的用户,您必须更新密钥环中的用户到 Ceph 存储集群中的用户条目。为此,请运行以下命令:

sudo ceph auth import -i /etc/ceph/ceph.keyring

有关从密钥环更新 Ceph 存储集群用户的详细信息,请参阅导入用户

您也可以直接在集群中修改用户功能存储结果到密钥环文件,然后将密钥环导入到您的ceph.keyring文件。

密钥旋转

要旋转实体的密钥,请使用:

ceph auth rotate <entity>

这避免了在密钥被泄露、丢失或计划旋转时删除和重新创建实体的需要。

命令行使用

Ceph 支持以下用户名和密钥用法:

--id | --user

描述:

Ceph 使用类型和 ID 来识别用户:用户识别的形式是TYPE.ID,类型和 ID 的示例是client.adminclient.user1一起使用。该id, name-n options allow you to specify the ID portion of the user name (for example, admin, user1, foo)。您可以使用--id指定用户并省略类型。例如,要指定用户client.foo,请运行以下命令:

ceph --id foo --keyring /path/to/keyring health
ceph --user foo --keyring /path/to/keyring health

--name | -n

描述:

Ceph 使用类型和 ID 来识别用户:用户识别的形式是TYPE.ID,类型和 ID 的示例是client.adminclient.user1一起使用。该--name-n选项允许您指定用户名(即,用户 ID)的部分(例如,client) with the user ID. For example:

ceph --name client.foo --keyring /path/to/keyring health
ceph -n client.foo --keyring /path/to/keyring health

--keyring

描述:

包含一个或多个用户名和密钥的密钥环的路径。选项--secret提供相同的功能,但它在 Ceph RADOS 网关中不起作用,因为 Ceph RADOS 网关使用--secret另一个目的。您可以使用ceph auth get-or-create

sudo rbd map --id foo --keyring /path/to/keyring mypool/myimage

限制

The cephx协议对 Ceph 客户端和服务器进行相互身份验证。它不打算处理人类用户或在其上运行的应用程序的身份验证。如果您的访问控制需求需要这种身份验证,您将需要另一种机制,该机制可能是特定于用于访问 Ceph 对象存储的前端。这种其他机制将确保只有可接受的用户和程序才能在 Ceph 允许访问其对象存储的机器上运行。

用于身份验证 Ceph 客户端和服务器使用的密钥通常存储在受信任主机上的纯文本文件中。必须对纯文本文件设置适当的权限。

重要

将密钥存储在纯文本文件中的安全缺陷,但鉴于 Ceph 在后台使用的基本身份验证方法,它们很难避免。任何设置 Ceph 系统的人都应该了解这些缺陷。

特别是,用户机器,尤其是便携式机器,不应配置为直接与 Ceph 交互,因为这种使用方式需要在不安全的机器上存储纯文本身份验证密钥。任何偷窃该机器或获得访问权限的人都可以获得允许他们自己的机器对 Ceph 进行身份验证的密钥。

与其允许潜在不安全的机器直接访问 Ceph 对象存储,不如要求用户登录到您的环境中的受信任机器,使用提供足够安全性的方法。该受信任的机器将存储纯文本 Ceph 密钥,用于人类用户。Ceph 的未来版本可能会更全面地解决这些特定的身份验证问题。

At present, none of the Ceph authentication protocols provide secrecy for messages in transit. As a result, an eavesdropper on the wire can hear and understand all data sent between clients and servers in Ceph, even if the eavesdropper cannot create or alter the data. Similarly, Ceph does not include options to encrypt user data in the object store. Users can, of course, hand-encrypt and store their own data in the Ceph object store, but Ceph itself provides no features to perform object encryption. Anyone storing sensitive data in Ceph should consider encrypting their data before providing it to the Ceph system.

由 Ceph 基金会带给您

Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.