]> git.proxmox.com Git - ceph.git/blame - ceph/doc/rados/operations/user-management.rst
bump version to 12.1.2-pve1
[ceph.git] / ceph / doc / rados / operations / user-management.rst
CommitLineData
7c673cae
FG
1=================
2 User Management
3=================
4
5This document describes :term:`Ceph Client` users, and their authentication and
6authorization with the :term:`Ceph Storage Cluster`. Users are either
7individuals or system actors such as applications, which use Ceph clients to
8interact with the Ceph Storage Cluster daemons.
9
10.. ditaa:: +-----+
11 | {o} |
12 | |
13 +--+--+ /---------\ /---------\
14 | | Ceph | | Ceph |
15 ---+---*----->| |<------------->| |
16 | uses | Clients | | Servers |
17 | \---------/ \---------/
18 /--+--\
19 | |
20 | |
21 actor
22
23
24When Ceph runs with authentication and authorization enabled (enabled by
25default), you must specify a user name and a keyring containing the secret key
26of the specified user (usually via the command line). If you do not specify a
27user name, Ceph will use ``client.admin`` as the default user name. If you do
28not specify a keyring, Ceph will look for a keyring via the ``keyring`` setting
29in the Ceph configuration. For example, if you execute the ``ceph health``
30command without specifying a user or keyring::
31
32 ceph health
33
34Ceph interprets the command like this::
35
36 ceph -n client.admin --keyring=/etc/ceph/ceph.client.admin.keyring health
37
38Alternatively, you may use the ``CEPH_ARGS`` environment variable to avoid
39re-entry of the user name and secret.
40
41For details on configuring the Ceph Storage Cluster to use authentication,
42see `Cephx Config Reference`_. For details on the architecture of Cephx, see
43`Architecture - High Availability Authentication`_.
44
45
46Background
47==========
48
49Irrespective of the type of Ceph client (e.g., Block Device, Object Storage,
50Filesystem, native API, etc.), Ceph stores all data as objects within `pools`_.
51Ceph users must have access to pools in order to read and write data.
52Additionally, Ceph users must have execute permissions to use Ceph's
53administrative commands. The following concepts will help you understand Ceph
54user management.
55
56
57User
58----
59
60A user is either an individual or a system actor such as an application.
61Creating users allows you to control who (or what) can access your Ceph Storage
62Cluster, its pools, and the data within pools.
63
64Ceph has the notion of a ``type`` of user. For the purposes of user management,
65the type will always be ``client``. Ceph identifies users in period (.)
66delimited form consisting of the user type and the user ID: for example,
67``TYPE.ID``, ``client.admin``, or ``client.user1``. The reason for user typing
68is that Ceph Monitors, OSDs, and Metadata Servers also use the Cephx protocol,
69but they are not clients. Distinguishing the user type helps to distinguish
70between client users and other users--streamlining access control, user
71monitoring and traceability.
72
73Sometimes Ceph's user type may seem confusing, because the Ceph command line
74allows you to specify a user with or without the type, depending upon your
75command line usage. If you specify ``--user`` or ``--id``, you can omit the
76type. So ``client.user1`` can be entered simply as ``user1``. If you specify
77``--name`` or ``-n``, you must specify the type and name, such as
78``client.user1``. We recommend using the type and name as a best practice
79wherever possible.
80
81.. note:: A Ceph Storage Cluster user is not the same as a Ceph Object Storage
82 user or a Ceph Filesystem user. The Ceph Object Gateway uses a Ceph Storage
83 Cluster user to communicate between the gateway daemon and the storage
84 cluster, but the gateway has its own user management functionality for end
85 users. The Ceph Filesystem uses POSIX semantics. The user space associated
86 with the Ceph Filesystem is not the same as a Ceph Storage Cluster user.
87
88
89
90Authorization (Capabilities)
91----------------------------
92
93Ceph uses the term "capabilities" (caps) to describe authorizing an
94authenticated user to exercise the functionality of the monitors, OSDs and
95metadata servers. Capabilities can also restrict access to data within a pool or
96a namespace within a pool. A Ceph administrative user sets a user's
97capabilities when creating or updating a user.
98
99Capability syntax follows the form::
100
c07f9fc5 101 {daemon-type} '{capspec}[, {capspec} ...]'
7c673cae 102
c07f9fc5
FG
103- **Monitor Caps:** Monitor capabilities include ``r``, ``w``, ``x`` access
104 settings or ``profile {name}``. For example::
7c673cae
FG
105
106 mon 'allow rwx'
c07f9fc5 107 mon 'profile osd'
7c673cae 108
c07f9fc5
FG
109- **OSD Caps:** OSD capabilities include ``r``, ``w``, ``x``, ``class-read``,
110 ``class-write`` access settings or ``profile {name}``. Additionally, OSD
111 capabilities also allow for pool and namespace settings. ::
7c673cae 112
c07f9fc5
FG
113 osd 'allow {access} [pool={pool-name} [namespace={namespace-name}]]'
114 osd 'profile {name} [pool={pool-name} [namespace={namespace-name}]]'
7c673cae
FG
115
116- **Metadata Server Caps:** Metadata server capability simply requires ``allow``,
117 or blank and does not parse anything further. ::
c07f9fc5 118
7c673cae
FG
119 mds 'allow'
120
121
122.. note:: The Ceph Object Gateway daemon (``radosgw``) is a client of the
c07f9fc5 123 Ceph Storage Cluster, so it is not represented as a Ceph Storage
7c673cae
FG
124 Cluster daemon type.
125
126The following entries describe each capability.
127
128``allow``
129
130:Description: Precedes access settings for a daemon. Implies ``rw``
131 for MDS only.
132
133
134``r``
135
136:Description: Gives the user read access. Required with monitors to retrieve
137 the CRUSH map.
138
139
140``w``
141
142:Description: Gives the user write access to objects.
143
144
145``x``
146
147:Description: Gives the user the capability to call class methods
148 (i.e., both read and write) and to conduct ``auth``
149 operations on monitors.
150
151
152``class-read``
153
154:Descriptions: Gives the user the capability to call class read methods.
155 Subset of ``x``.
156
157
158``class-write``
159
160:Description: Gives the user the capability to call class write methods.
161 Subset of ``x``.
162
163
164``*``
165
166:Description: Gives the user read, write and execute permissions for a
167 particular daemon/pool, and the ability to execute
168 admin commands.
169
170
c07f9fc5 171``profile osd`` (Monitor only)
7c673cae
FG
172
173:Description: Gives a user permissions to connect as an OSD to other OSDs or
174 monitors. Conferred on OSDs to enable OSDs to handle replication
175 heartbeat traffic and status reporting.
176
177
c07f9fc5 178``profile mds`` (Monitor only)
7c673cae
FG
179
180:Description: Gives a user permissions to connect as a MDS to other MDSs or
181 monitors.
182
183
c07f9fc5 184``profile bootstrap-osd`` (Monitor only)
7c673cae
FG
185
186:Description: Gives a user permissions to bootstrap an OSD. Conferred on
187 deployment tools such as ``ceph-disk``, ``ceph-deploy``, etc.
188 so that they have permissions to add keys, etc. when
189 bootstrapping an OSD.
190
191
c07f9fc5 192``profile bootstrap-mds`` (Monitor only)
7c673cae
FG
193
194:Description: Gives a user permissions to bootstrap a metadata server.
195 Conferred on deployment tools such as ``ceph-deploy``, etc.
196 so they have permissions to add keys, etc. when bootstrapping
197 a metadata server.
198
c07f9fc5
FG
199``profile rbd`` (Monitor and OSD)
200
201:Description: Gives a user permissions to manipulate RBD images. When used
202 as a Monitor cap, it provides the minimal privileges required
203 by an RBD client application. When used as an OSD cap, it
204 provides read-write access to an RBD client application.
205
206``profile rbd-read-only`` (OSD only)
207
208:Description: Gives a user read-only permissions to an RBD image.
7c673cae
FG
209
210
211Pool
212----
213
214A pool is a logical partition where users store data.
215In Ceph deployments, it is common to create a pool as a logical partition for
216similar types of data. For example, when deploying Ceph as a backend for
217OpenStack, a typical deployment would have pools for volumes, images, backups
218and virtual machines, and users such as ``client.glance``, ``client.cinder``,
219etc.
220
221
222Namespace
223---------
224
225Objects within a pool can be associated to a namespace--a logical group of
226objects within the pool. A user's access to a pool can be associated with a
227namespace such that reads and writes by the user take place only within the
228namespace. Objects written to a namespace within the pool can only be accessed
229by users who have access to the namespace.
230
c07f9fc5
FG
231.. note:: Namespaces are primarily useful for applications written on top of
232 ``librados`` where the logical grouping can alleviate the need to create
233 different pools. Ceph Object Gateway (from ``luminous``) uses namespaces for various
234 metadata objects.
7c673cae
FG
235
236The rationale for namespaces is that pools can be a computationally expensive
237method of segregating data sets for the purposes of authorizing separate sets
238of users. For example, a pool should have ~100 placement groups per OSD. So an
239exemplary cluster with 1000 OSDs would have 100,000 placement groups for one
240pool. Each pool would create another 100,000 placement groups in the exemplary
241cluster. By contrast, writing an object to a namespace simply associates the
242namespace to the object name with out the computational overhead of a separate
243pool. Rather than creating a separate pool for a user or set of users, you may
244use a namespace. **Note:** Only available using ``librados`` at this time.
245
246
247Managing Users
248==============
249
250User management functionality provides Ceph Storage Cluster administrators with
251the ability to create, update and delete users directly in the Ceph Storage
252Cluster.
253
254When you create or delete users in the Ceph Storage Cluster, you may need to
255distribute keys to clients so that they can be added to keyrings. See `Keyring
256Management`_ for details.
257
258
259List Users
260----------
261
262To list the users in your cluster, execute the following::
263
c07f9fc5 264 ceph auth ls
7c673cae
FG
265
266Ceph will list out all users in your cluster. For example, in a two-node
c07f9fc5 267exemplary cluster, ``ceph auth ls`` will output something that looks like
7c673cae
FG
268this::
269
270 installed auth entries:
271
272 osd.0
273 key: AQCvCbtToC6MDhAATtuT70Sl+DymPCfDSsyV4w==
274 caps: [mon] allow profile osd
275 caps: [osd] allow *
276 osd.1
277 key: AQC4CbtTCFJBChAAVq5spj0ff4eHZICxIOVZeA==
278 caps: [mon] allow profile osd
279 caps: [osd] allow *
280 client.admin
281 key: AQBHCbtT6APDHhAA5W00cBchwkQjh3dkKsyPjw==
282 caps: [mds] allow
283 caps: [mon] allow *
284 caps: [osd] allow *
285 client.bootstrap-mds
286 key: AQBICbtTOK9uGBAAdbe5zcIGHZL3T/u2g6EBww==
287 caps: [mon] allow profile bootstrap-mds
288 client.bootstrap-osd
289 key: AQBHCbtT4GxqORAADE5u7RkpCN/oo4e5W0uBtw==
290 caps: [mon] allow profile bootstrap-osd
291
292
293Note that the ``TYPE.ID`` notation for users applies such that ``osd.0`` is a
294user of type ``osd`` and its ID is ``0``, ``client.admin`` is a user of type
295``client`` and its ID is ``admin`` (i.e., the default ``client.admin`` user).
296Note also that each entry has a ``key: <value>`` entry, and one or more
297``caps:`` entries.
298
c07f9fc5 299You may use the ``-o {filename}`` option with ``ceph auth ls`` to
7c673cae
FG
300save the output to a file.
301
302
303Get a User
304----------
305
306To retrieve a specific user, key and capabilities, execute the
307following::
308
309 ceph auth get {TYPE.ID}
310
311For example::
312
313 ceph auth get client.admin
314
315You may also use the ``-o {filename}`` option with ``ceph auth get`` to
316save the output to a file. Developers may also execute the following::
317
318 ceph auth export {TYPE.ID}
319
320The ``auth export`` command is identical to ``auth get``, but also prints
c07f9fc5 321out the internal ``auid``, which is not relevant to end users.
7c673cae
FG
322
323
324
325Add a User
326----------
327
328Adding a user creates a username (i.e., ``TYPE.ID``), a secret key and
329any capabilities included in the command you use to create the user.
330
331A user's key enables the user to authenticate with the Ceph Storage Cluster.
332The user's capabilities authorize the user to read, write, or execute on Ceph
333monitors (``mon``), Ceph OSDs (``osd``) or Ceph Metadata Servers (``mds``).
334
335There are a few ways to add a user:
336
337- ``ceph auth add``: This command is the canonical way to add a user. It
338 will create the user, generate a key and add any specified capabilities.
339
340- ``ceph auth get-or-create``: This command is often the most convenient way
341 to create a user, because it returns a keyfile format with the user name
342 (in brackets) and the key. If the user already exists, this command
343 simply returns the user name and key in the keyfile format. You may use the
344 ``-o {filename}`` option to save the output to a file.
345
346- ``ceph auth get-or-create-key``: This command is a convenient way to create
347 a user and return the user's key (only). This is useful for clients that
348 need the key only (e.g., libvirt). If the user already exists, this command
349 simply returns the key. You may use the ``-o {filename}`` option to save the
350 output to a file.
351
352When creating client users, you may create a user with no capabilities. A user
353with no capabilities is useless beyond mere authentication, because the client
354cannot retrieve the cluster map from the monitor. However, you can create a
355user with no capabilities if you wish to defer adding capabilities later using
356the ``ceph auth caps`` command.
357
358A typical user has at least read capabilities on the Ceph monitor and
359read and write capability on Ceph OSDs. Additionally, a user's OSD permissions
360are often restricted to accessing a particular pool. ::
361
362 ceph auth add client.john mon 'allow r' osd 'allow rw pool=liverpool'
363 ceph auth get-or-create client.paul mon 'allow r' osd 'allow rw pool=liverpool'
364 ceph auth get-or-create client.george mon 'allow r' osd 'allow rw pool=liverpool' -o george.keyring
365 ceph auth get-or-create-key client.ringo mon 'allow r' osd 'allow rw pool=liverpool' -o ringo.key
366
367
368.. important:: If you provide a user with capabilities to OSDs, but you DO NOT
369 restrict access to particular pools, the user will have access to ALL
370 pools in the cluster!
371
372
31f18b77 373.. _modify-user-capabilities:
224ce89b 374
7c673cae
FG
375Modify User Capabilities
376------------------------
377
378The ``ceph auth caps`` command allows you to specify a user and change the
379user's capabilities. Setting new capabilities will overwrite current capabilities.
380To view current capabilities run ``ceph auth get USERTYPE.USERID``. To add
381capabilities, you should also specify the existing capabilities when using the form::
382
383 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}]']
384
385For example::
386
387 ceph auth get client.john
388 ceph auth caps client.john mon 'allow r' osd 'allow rw pool=liverpool'
389 ceph auth caps client.paul mon 'allow rw' osd 'allow rwx pool=liverpool'
390 ceph auth caps client.brian-manager mon 'allow *' osd 'allow *'
391
392To remove a capability, you may reset the capability. If you want the user
393to have no access to a particular daemon that was previously set, specify
394an empty string. For example::
395
396 ceph auth caps client.ringo mon ' ' osd ' '
397
398See `Authorization (Capabilities)`_ for additional details on capabilities.
399
400
401Delete a User
402-------------
403
404To delete a user, use ``ceph auth del``::
405
406 ceph auth del {TYPE}.{ID}
407
408Where ``{TYPE}`` is one of ``client``, ``osd``, ``mon``, or ``mds``,
409and ``{ID}`` is the user name or ID of the daemon.
410
411
412Print a User's Key
413------------------
414
415To print a user's authentication key to standard output, execute the following::
416
417 ceph auth print-key {TYPE}.{ID}
418
419Where ``{TYPE}`` is one of ``client``, ``osd``, ``mon``, or ``mds``,
420and ``{ID}`` is the user name or ID of the daemon.
421
422Printing a user's key is useful when you need to populate client
423software with a user's key (e.g., libvirt). ::
424
425 mount -t ceph serverhost:/ mountpoint -o name=client.user,secret=`ceph auth print-key client.user`
426
427
428Import a User(s)
429----------------
430
431To import one or more users, use ``ceph auth import`` and
432specify a keyring::
433
434 ceph auth import -i /path/to/keyring
435
436For example::
437
438 sudo ceph auth import -i /etc/ceph/ceph.keyring
439
440
441.. note:: The ceph storage cluster will add new users, their keys and their
442 capabilities and will update existing users, their keys and their
443 capabilities.
444
445
446Keyring Management
447==================
448
449When you access Ceph via a Ceph client, the Ceph client will look for a local
450keyring. Ceph presets the ``keyring`` setting with the following four keyring
451names by default so you don't have to set them in your Ceph configuration file
452unless you want to override the defaults (not recommended):
453
454- ``/etc/ceph/$cluster.$name.keyring``
455- ``/etc/ceph/$cluster.keyring``
456- ``/etc/ceph/keyring``
457- ``/etc/ceph/keyring.bin``
458
459The ``$cluster`` metavariable is your Ceph cluster name as defined by the
460name of the Ceph configuration file (i.e., ``ceph.conf`` means the cluster name
461is ``ceph``; thus, ``ceph.keyring``). The ``$name`` metavariable is the user
462type and user ID (e.g., ``client.admin``; thus, ``ceph.client.admin.keyring``).
463
464.. note:: When executing commands that read or write to ``/etc/ceph``, you may
465 need to use ``sudo`` to execute the command as ``root``.
466
467After you create a user (e.g., ``client.ringo``), you must get the key and add
468it to a keyring on a Ceph client so that the user can access the Ceph Storage
469Cluster.
470
471The `User Management`_ section details how to list, get, add, modify and delete
472users directly in the Ceph Storage Cluster. However, Ceph also provides the
473``ceph-authtool`` utility to allow you to manage keyrings from a Ceph client.
474
475
476Create a Keyring
477----------------
478
479When you use the procedures in the `Managing Users`_ section to create users,
480you need to provide user keys to the Ceph client(s) so that the Ceph client
481can retrieve the key for the specified user and authenticate with the Ceph
482Storage Cluster. Ceph Clients access keyrings to lookup a user name and
483retrieve the user's key.
484
485The ``ceph-authtool`` utility allows you to create a keyring. To create an
486empty keyring, use ``--create-keyring`` or ``-C``. For example::
487
488 ceph-authtool --create-keyring /path/to/keyring
489
490When creating a keyring with multiple users, we recommend using the cluster name
491(e.g., ``$cluster.keyring``) for the keyring filename and saving it in the
492``/etc/ceph`` directory so that the ``keyring`` configuration default setting
493will pick up the filename without requiring you to specify it in the local copy
494of your Ceph configuration file. For example, create ``ceph.keyring`` by
495executing the following::
496
497 sudo ceph-authtool -C /etc/ceph/ceph.keyring
498
499When creating a keyring with a single user, we recommend using the cluster name,
500the user type and the user name and saving it in the ``/etc/ceph`` directory.
501For example, ``ceph.client.admin.keyring`` for the ``client.admin`` user.
502
503To create a keyring in ``/etc/ceph``, you must do so as ``root``. This means
504the file will have ``rw`` permissions for the ``root`` user only, which is
505appropriate when the keyring contains administrator keys. However, if you
506intend to use the keyring for a particular user or group of users, ensure
507that you execute ``chown`` or ``chmod`` to establish appropriate keyring
508ownership and access.
509
510
511Add a User to a Keyring
512-----------------------
513
514When you `Add a User`_ to the Ceph Storage Cluster, you can use the `Get a
515User`_ procedure to retrieve a user, key and capabilities and save the user to a
516keyring.
517
518When you only want to use one user per keyring, the `Get a User`_ procedure with
519the ``-o`` option will save the output in the keyring file format. For example,
520to create a keyring for the ``client.admin`` user, execute the following::
521
522 sudo ceph auth get client.admin -o /etc/ceph/ceph.client.admin.keyring
523
524Notice that we use the recommended file format for an individual user.
525
526When you want to import users to a keyring, you can use ``ceph-authtool``
527to specify the destination keyring and the source keyring.
528For example::
529
530 sudo ceph-authtool /etc/ceph/ceph.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
531
532
533Create a User
534-------------
535
536Ceph provides the `Add a User`_ function to create a user directly in the Ceph
537Storage Cluster. However, you can also create a user, keys and capabilities
538directly on a Ceph client keyring. Then, you can import the user to the Ceph
539Storage Cluster. For example::
540
541 sudo ceph-authtool -n client.ringo --cap osd 'allow rwx' --cap mon 'allow rwx' /etc/ceph/ceph.keyring
542
543See `Authorization (Capabilities)`_ for additional details on capabilities.
544
545You can also create a keyring and add a new user to the keyring simultaneously.
546For example::
547
548 sudo ceph-authtool -C /etc/ceph/ceph.keyring -n client.ringo --cap osd 'allow rwx' --cap mon 'allow rwx' --gen-key
549
550In the foregoing scenarios, the new user ``client.ringo`` is only in the
551keyring. To add the new user to the Ceph Storage Cluster, you must still add
552the new user to the Ceph Storage Cluster. ::
553
554 sudo ceph auth add client.ringo -i /etc/ceph/ceph.keyring
555
556
557Modify a User
558-------------
559
560To modify the capabilities of a user record in a keyring, specify the keyring,
561and the user followed by the capabilities. For example::
562
563 sudo ceph-authtool /etc/ceph/ceph.keyring -n client.ringo --cap osd 'allow rwx' --cap mon 'allow rwx'
564
565To update the user to the Ceph Storage Cluster, you must update the user
566in the keyring to the user entry in the the Ceph Storage Cluster. ::
567
568 sudo ceph auth import -i /etc/ceph/ceph.keyring
569
570See `Import a User(s)`_ for details on updating a Ceph Storage Cluster user
571from a keyring.
572
573You may also `Modify User Capabilities`_ directly in the cluster, store the
574results to a keyring file; then, import the keyring into your main
575``ceph.keyring`` file.
576
577
578Command Line Usage
579==================
580
581Ceph supports the following usage for user name and secret:
582
583``--id`` | ``--user``
584
585:Description: Ceph identifies users with a type and an ID (e.g., ``TYPE.ID`` or
586 ``client.admin``, ``client.user1``). The ``id``, ``name`` and
587 ``-n`` options enable you to specify the ID portion of the user
588 name (e.g., ``admin``, ``user1``, ``foo``, etc.). You can specify
589 the user with the ``--id`` and omit the type. For example,
590 to specify user ``client.foo`` enter the following::
591
592 ceph --id foo --keyring /path/to/keyring health
593 ceph --user foo --keyring /path/to/keyring health
594
595
596``--name`` | ``-n``
597
598:Description: Ceph identifies users with a type and an ID (e.g., ``TYPE.ID`` or
599 ``client.admin``, ``client.user1``). The ``--name`` and ``-n``
600 options enables you to specify the fully qualified user name.
601 You must specify the user type (typically ``client``) with the
602 user ID. For example::
603
604 ceph --name client.foo --keyring /path/to/keyring health
605 ceph -n client.foo --keyring /path/to/keyring health
606
607
608``--keyring``
609
610:Description: The path to the keyring containing one or more user name and
611 secret. The ``--secret`` option provides the same functionality,
612 but it does not work with Ceph RADOS Gateway, which uses
613 ``--secret`` for another purpose. You may retrieve a keyring with
614 ``ceph auth get-or-create`` and store it locally. This is a
615 preferred approach, because you can switch user names without
616 switching the keyring path. For example::
617
618 sudo rbd map --id foo --keyring /path/to/keyring mypool/myimage
619
620
621.. _pools: ../pools
622
623
624Limitations
625===========
626
627The ``cephx`` protocol authenticates Ceph clients and servers to each other. It
628is not intended to handle authentication of human users or application programs
629run on their behalf. If that effect is required to handle your access control
630needs, you must have another mechanism, which is likely to be specific to the
631front end used to access the Ceph object store. This other mechanism has the
632role of ensuring that only acceptable users and programs are able to run on the
633machine that Ceph will permit to access its object store.
634
635The keys used to authenticate Ceph clients and servers are typically stored in
636a plain text file with appropriate permissions in a trusted host.
637
638.. important:: Storing keys in plaintext files has security shortcomings, but
639 they are difficult to avoid, given the basic authentication methods Ceph
640 uses in the background. Those setting up Ceph systems should be aware of
641 these shortcomings.
642
643In particular, arbitrary user machines, especially portable machines, should not
644be configured to interact directly with Ceph, since that mode of use would
645require the storage of a plaintext authentication key on an insecure machine.
646Anyone who stole that machine or obtained surreptitious access to it could
647obtain the key that will allow them to authenticate their own machines to Ceph.
648
649Rather than permitting potentially insecure machines to access a Ceph object
650store directly, users should be required to sign in to a trusted machine in
651your environment using a method that provides sufficient security for your
652purposes. That trusted machine will store the plaintext Ceph keys for the
653human users. A future version of Ceph may address these particular
654authentication issues more fully.
655
656At the moment, none of the Ceph authentication protocols provide secrecy for
657messages in transit. Thus, an eavesdropper on the wire can hear and understand
658all data sent between clients and servers in Ceph, even if it cannot create or
659alter them. Further, Ceph does not include options to encrypt user data in the
660object store. Users can hand-encrypt and store their own data in the Ceph
661object store, of course, but Ceph provides no features to perform object
662encryption itself. Those storing sensitive data in Ceph should consider
663encrypting their data before providing it to the Ceph system.
664
665
666.. _Architecture - High Availability Authentication: ../../../architecture#high-availability-authentication
667.. _Cephx Config Reference: ../../configuration/auth-config-ref