30 Autenticação com cephx
#
Para identificar clientes e proteger-se contra ataques man-in-the-middle, o
Ceph oferece o sistema de autenticação
cephx
. Neste contexto, os
clientes são pessoas, como o usuário admin, ou
serviços/daemons relacionados ao Ceph, por exemplo, OSDs, monitores ou
Gateways de Objetos.
O protocolo cephx
não atende à
criptografia de dados em transporte, como TLS/SSL.
30.1 Arquitetura de autenticação #
O cephx
usa chaves secretas
compartilhadas para autenticação, o que significa que tanto o cliente quanto
os Ceph Monitors têm uma cópia da chave secreta do cliente. O protocolo de
autenticação permite que ambas as partes comprovem uma para a outra que têm
uma cópia da chave sem precisar revelá-la. Isso permite uma autenticação
mútua: o cluster tem certeza de que o usuário possui a chave secreta, e o
usuário também tem certeza de que o cluster tem uma cópia da chave secreta.
Um recurso de escalabilidade importante do Ceph é para evitar uma interface
centralizada com o armazenamento de objetos do Ceph. Isso significa que os
clientes do Ceph podem interagir diretamente com os OSDs. Para proteger os
dados, o Ceph oferece o sistema de autenticação
cephx
, que autentica clientes do
Ceph.
Cada monitor pode autenticar clientes e distribuir chaves, portanto, não há
nenhum ponto único de falha ou gargalo ao usar o
cephx
. O monitor retorna uma
estrutura de dados de autenticação que contém uma chave de sessão para uso
na obtenção dos serviços do Ceph. Essa chave de sessão é autocriptografada
com a chave secreta permanente do cliente para que apenas o cliente possa
solicitar serviços dos Ceph Monitors. Em seguida, o cliente usa a chave de
sessão para solicitar os serviços desejados do monitor, e o monitor emite um
ticket para o cliente que lhe autenticará nos OSDs que realmente processam
os dados. Os Ceph Monitors e OSDs compartilham um segredo, portanto, o
cliente pode usar o ticket emitido pelo monitor com qualquer OSD ou servidor
de metadados no cluster. Os tickets do
cephx
expiram para que um invasor
não consiga usar um ticket expirado ou uma chave de sessão obtida
indevidamente.
Para usar o cephx
, um administrador
deve primeiro configurar clientes/usuários. No diagrama a seguir, o usuário
client.admin
invoca ceph
auth get-or-create-key
da linha de comando para gerar um nome de
usuário e a chave secreta. O subsistema auth
do Ceph gera
o nome de usuário e a chave, armazena uma cópia com o(s) monitor(es) e
transmite o segredo do usuário de volta ao usuário
client.admin
. Isso significa que o
cliente e o monitor compartilham uma chave secreta.
cephx
#Para autenticar-se no monitor, o cliente envia o nome de usuário ao monitor. O monitor gera uma chave de sessão e a criptografa com a chave secreta associada ao nome de usuário e transmite o ticket criptografado de volta para o cliente. Em seguida, o cliente decodifica os dados com a chave secreta compartilhada para recuperar a chave de sessão. A chave de sessão identifica o usuário da sessão atual. Em seguida, o cliente solicita um ticket relacionado ao usuário, que é assinado pela chave de sessão. O monitor gera um ticket, criptografa-o com a chave secreta do usuário e o transmite de volta para o cliente. O cliente decodifica o ticket e o utiliza para assinar solicitações para OSDs e servidores de metadados em todo o cluster.
cephx
#
O protocolo cephx
autentica as
constantes comunicações entre a máquina cliente e os servidores Ceph. Cada
mensagem enviada entre um cliente e um servidor após a autenticação inicial
é assinada usando um ticket que os monitores, OSDs e servidores de metadados
podem verificar com o segredo compartilhado.
cephx
: MDS e OSD #A proteção oferecida por essa autenticação ocorre entre o cliente do Ceph e os hosts de cluster do Ceph. A autenticação não ultrapassa o cliente do Ceph. Se um usuário acessar o cliente do Ceph de um host remoto, a autenticação do Ceph não será aplicada à conexão entre o host do usuário e do cliente.
30.2 Gerenciamento de chave #
Esta seção descreve os usuários de cliente do Ceph e a autenticação e autorização no cluster de armazenamento do Ceph. Usuários são pessoas ou mecanismos de sistema, como aplicativos, que usam os clientes do Ceph para interagir com os daemons do cluster de armazenamento do Ceph.
Quando o Ceph é executado com a autenticação e a autorização habilitadas
(padrão), você deve especificar um nome de usuário e um chaveiro que contém
a chave secreta do usuário especificado (geralmente por meio da linha de
comando). Se você não especificar um nome de usuário, o Ceph usará o
client.admin
como padrão. Se você
não especificar um chaveiro, o Ceph procurará um na configuração de
chaveiros no arquivo de configuração do Ceph. Por exemplo, se você executar
o comando ceph health
sem especificar um nome de usuário
ou chaveiro, o Ceph interpretará o comando da seguinte forma:
cephuser@adm >
ceph -n client.admin --keyring=/etc/ceph/ceph.client.admin.keyring health
Se preferir, você poderá usar a variável de ambiente
CEPH_ARGS
para não ter que redigitar o nome de usuário e
o segredo.
30.2.1 Informações de referência #
Seja qual for o tipo de cliente do Ceph (por exemplo, dispositivo de blocos, armazenamento de objetos, sistema de arquivos ou API nativa), o Ceph armazena todos os dados como objetos em pools. Os usuários do Ceph precisam ter acesso aos pools para ler e gravar dados. Os usuários do Ceph também devem ter permissões de execução para utilizar os comandos administrativos do Ceph. Os conceitos a seguir ajudarão você a entender o gerenciamento de usuários do Ceph.
30.2.1.1 Usuário #
Um usuário é uma pessoa ou um mecanismo de sistema, como um aplicativo. A criação de usuários permite controlar quem (ou o quê) pode acessar o cluster de armazenamento do Ceph, os pools e os dados dos pools.
O Ceph usa tipos de usuários. Para fins de
gerenciamento de usuários, o tipo sempre será client
. O
Ceph identifica os usuários no formato delimitado por ponto (.), que
consiste no tipo e ID de usuário. Por exemplo, TYPE.ID
,
client.admin
ou client.user1
. O
motivo da definição de tipo do usuário é que os Ceph Monitors, OSDs e
servidores de metadados também usam o protocolo cephx, mas eles não são
clientes. A distinção do tipo de usuário ajuda a diferenciar os usuários
que são clientes dos demais, otimizando o controle de acesso, o
monitoramento de usuários e o rastreamento.
Às vezes, o tipo de usuário do Ceph pode parecer confuso, porque a linha
de comando do Ceph permite especificar um usuário com ou sem o tipo,
dependendo do seu uso da linha de comando. Se você especificar
--user
ou --id
, poderá omitir o tipo.
Portanto, é possível inserir client.user1
simplesmente
como user1
. Se você especificar --name
ou -n
, deverá especificar o tipo e o nome, como
client.user1
. Recomendamos o uso do tipo e do nome como
uma melhor prática, sempre que possível.
Um usuário de cluster de armazenamento do Ceph não é o mesmo que um usuário de armazenamento de objetos ou de sistema de arquivos do Ceph. O Gateway de Objetos do Ceph utiliza um usuário de cluster de armazenamento do Ceph para comunicação entre o daemon do gateway e o cluster de armazenamento, mas o gateway tem sua própria funcionalidade de gerenciamento para usuários finais. O sistema de arquivos do Ceph usa semânticas do POSIX. O espaço do usuário associado a ele não é o mesmo de um usuário de cluster de armazenamento do Ceph.
30.2.1.2 Autorização e recursos #
O Ceph usa o termo "recursos" (caps) para descrever a autorização de um usuário autenticado para executar as funcionalidades dos monitores, OSDs e servidores de metadados. Os recursos também podem restringir o acesso aos dados em um pool ou namespace do pool. Um usuário administrador do Ceph define os recursos do usuário ao criá-lo ou atualizá-lo.
A sintaxe de recurso segue o formato:
daemon-type 'allow capability' [...]
Veja a seguir uma lista de recursos para cada tipo de serviço:
- Recursos do monitor
incluem
r
,w
,x
eallow profile cap
.mon 'allow rwx' mon 'allow profile osd'
- Recursos do OSD
incluem
r
,w
,x
,class-read
,class-write
eprofile osd
. Os recursos do OSD também permitem configurações de pool e namespace.osd 'allow capability' [pool=poolname] [namespace=namespace-name]
- Recurso do MDS
requer apenas
allow
ou fica em branco.mds 'allow'
As entradas a seguir descrevem cada recurso:
- allow
Antecede as configurações de acesso para um daemon. Implica apenas no
rw
para MDS.- r
Concede o acesso de leitura ao usuário. Necessário com monitores para recuperar o mapa CRUSH.
- w
Concede ao usuário acesso de gravação em objetos.
- x
Permite que o usuário chame métodos de classe (tanto de leitura quanto de gravação) e execute operações do
auth
em monitores.- class-read
Permite que o usuário chame métodos de leitura de classe. Subconjunto do
x
.- class-write
Permite que o usuário chame métodos de gravação de classe. Subconjunto do
x
.- *
Concede ao usuário permissões de leitura, gravação e execução para determinado daemon/pool e permite executar comandos de admin.
- profile osd
Concede a um usuário permissões para conectar-se como OSD a outros OSDs ou monitores. Atribuído aos OSDs para permitir que eles processem o tráfego de heartbeat de replicação e o relatório de status.
- profile mds
Concede a um usuário permissões para conectar-se como MDS a outros MDSs ou monitores.
- profile bootstrap-osd
Concede a um usuário permissões para inicializar um OSD. Delegado a ferramentas de implantação para que elas tenham permissões para adicionar chaves ao inicializar um OSD.
- profile bootstrap-mds
Concede a um usuário permissões para inicializar um servidor de metadados. Delegado a ferramentas de implantação para que elas tenham permissões para adicionar chaves ao inicializar um servidor de metadados.
30.2.1.3 Pools #
Um pool é uma partição lógica em que os usuários armazenam dados. No caso
das implantações do Ceph, é comum criar um pool como partição lógica para
tipos de dados semelhantes. Por exemplo, ao implantar o Ceph como back end
para o OpenStack, uma implantação típica tem pools para volumes, imagens,
backups, máquinas virtuais e usuários como
client.glance
ou
client.cinder
.
30.2.2 Gerenciando usuários #
A funcionalidade de gerenciamento de usuários permite aos administradores de cluster do Ceph criar, atualizar e apagar usuários diretamente do cluster do Ceph.
Ao criar ou apagar usuários do cluster do Ceph, talvez você tenha que distribuir chaves aos clientes para que elas possam ser adicionadas aos chaveiros. Consulte a Seção 30.2.3, “Gerenciando chaveiros” para obter os detalhes.
30.2.2.1 Listando usuários #
Para listar os usuários em seu cluster, execute o seguinte:
cephuser@adm >
ceph auth list
O Ceph listará todos os usuários em seu cluster. Por exemplo, em um
cluster com dois nós, a saída de ceph auth list
tem
esta aparência:
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
Observe que a notificação TYPE.ID
para usuários é
aplicada de modo que osd.0
especifique um usuário do
tipo osd
e o ID seja 0
.
client.admin
é um usuário do tipo
client
e o ID é admin
. Observe
também que cada entrada tem uma entrada key:
value
, e uma ou mais entradas
caps:
.
Você pode usar a opção -o
nomedearquivo
com ceph auth
list
para gravar a saída em um arquivo.
30.2.2.2 Obtendo informações sobre usuários #
Para recuperar um usuário, chave e recursos específicos, execute o seguinte:
cephuser@adm >
ceph auth get TYPE.ID
Por exemplo:
cephuser@adm >
ceph auth get client.admin
exported keyring for client.admin
[client.admin]
key = AQA19uZUqIwkHxAAFuUwvq0eJD4S173oFRxe0g==
caps mds = "allow"
caps mon = "allow *"
caps osd = "allow *"
Os desenvolvedores também podem executar o seguinte:
cephuser@adm >
ceph auth export TYPE.ID
O comando auth export
é idêntico a auth
get
, mas também imprime o ID de autenticação interno.
30.2.2.3 Adicionando usuários #
A adição de um usuário cria um nome de usuário
(TYPE.ID
), uma chave secreta e quaisquer recursos
incluídos no comando que você usa para criar o usuário.
A chave do usuário permite que ele se autentique no cluster de armazenamento do Ceph. Os recursos do usuário lhe autorizam a ler, gravar ou executar Ceph Monitors (mon), Ceph OSDs (osd) ou servidores de metadados do Ceph (mds).
Há alguns comandos disponíveis para adicionar um usuário:
ceph auth add
Esse comando é a forma canônica de adicionar um usuário. Ele criará o usuário, gerará uma chave e adicionará quaisquer recursos especificados.
ceph auth get-or-create
Geralmente, esse comando é o método mais prático de criar um usuário, pois ele retorna um formato de arquivo de chaves com o nome de usuário (entre parênteses) e a chave. Se o usuário já existir, esse comando simplesmente retornará o nome de usuário e a chave no formato de arquivo de chaves. Você pode usar a opção
-o nomedearquivo
para gravar a saída em um arquivo.ceph auth get-or-create-key
Esse comando é um método prático de criar um usuário e retornar a chave dele (apenas). Ele é útil para clientes que precisam apenas da chave (por exemplo,
libvirt
). Se o usuário já existir, esse comando retornará apenas a chave. Você pode usar a opção-o nomedearquivo
para gravar a saída em um arquivo.
Ao criar usuários de cliente, você pode criá-los sem recursos. Um usuário
sem recursos pode apenas se autenticar, nada mais. Esse tipo de cliente
não pode recuperar o mapa de cluster do monitor. No entanto, você pode
criar um usuário sem recursos para adiar a adição de recursos usando o
comando ceph auth caps
.
Um usuário comum tem pelo menos recursos de leitura no Ceph Monitor e recursos de leitura e gravação nos Ceph OSDs. Além disso, as permissões de OSD do usuário costumam limitar-se ao acesso a determinado pool.
cephuser@adm >
ceph auth add client.john mon 'allow r' osd \ 'allow rw pool=liverpool'cephuser@adm >
ceph auth get-or-create client.paul mon 'allow r' osd \ 'allow rw pool=liverpool'cephuser@adm >
ceph auth get-or-create client.george mon 'allow r' osd \ 'allow rw pool=liverpool' -o george.keyringcephuser@adm >
ceph auth get-or-create-key client.ringo mon 'allow r' osd \ 'allow rw pool=liverpool' -o ringo.key
Se você conceder a um usuário recursos para OSDs, mas não restringir o acesso a determinados pools, o usuário terá acesso a todos os pools no cluster.
30.2.2.4 Modificando recursos do usuário #
O comando ceph auth caps
permite especificar um usuário
e mudar os recursos dele. A definição de novos recursos sobregravará os
atuais. Para ver os recursos atuais, execute ceph auth get
USERTYPE.USERID
.
Para adicionar recursos, você também precisa especificar os recursos
existentes quando usar o formato a seguir:
cephuser@adm >
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]']
Por exemplo:
cephuser@adm >
ceph auth get client.johncephuser@adm >
ceph auth caps client.john mon 'allow r' osd 'allow rw pool=prague'cephuser@adm >
ceph auth caps client.paul mon 'allow rw' osd 'allow r pool=prague'cephuser@adm >
ceph auth caps client.brian-manager mon 'allow *' osd 'allow *'
Para remover um recurso, você pode redefini-lo. Para que o usuário não tenha acesso a determinado daemon já definido, especifique uma string vazia:
cephuser@adm >
ceph auth caps client.ringo mon ' ' osd ' '
30.2.2.5 Apagando usuários #
Para apagar um usuário, execute ceph auth del
:
cephuser@adm >
ceph auth del TYPE.ID
em que TYPE é client
,
osd
, mon
ou mds
,
e ID é o nome de usuário ou o ID do daemon.
Se você criou usuários com permissões estritamente para um pool que não existe mais, convém apagá-los também.
30.2.2.6 Imprimindo uma chave do usuário #
Para imprimir a chave de autenticação do usuário em uma saída padrão, execute o seguinte:
cephuser@adm >
ceph auth print-key TYPE.ID
em que TYPE é client
,
osd
, mon
ou mds
,
e ID é o nome de usuário ou o ID do daemon.
A impressão da chave do usuário é útil quando você precisa preencher o
software cliente com a chave do usuário (como
libvirt
), conforme mostrado neste
exemplo:
root #
mount -t ceph host:/ mount_point \
-o name=client.user,secret=`ceph auth print-key client.user`
30.2.2.7 Importando usuários #
Para importar um ou mais usuários, execute ceph auth
import
e especifique um chaveiro:
cephuser@adm >
ceph auth import -i /etc/ceph/ceph.keyring
O cluster de armazenamento do Ceph adicionará novos usuários, as chaves e os recursos deles e atualizará os usuários existentes, as chaves e os recursos deles.
30.2.3 Gerenciando chaveiros #
Quando você acessa o Ceph por um cliente, esse cliente procura um chaveiro local. Por padrão, o Ceph predefine a configuração de chaveiro com os quatro nomes de chaveiro a seguir, portanto, você não precisa defini-la em seu arquivo de configuração do Ceph, a menos que queira anular os padrões:
/etc/ceph/cluster.name.keyring /etc/ceph/cluster.keyring /etc/ceph/keyring /etc/ceph/keyring.bin
A metavariável cluster é o nome do cluster do
Ceph conforme definido pelo nome do arquivo de configuração do Ceph.
ceph.conf
significa que o nome do cluster é
ceph
, portanto, ceph.keyring
. A
metavariável name é o tipo e o ID de usuário.
Por exemplo, client.admin
, portanto,
ceph.client.admin.keyring
.
Após criar um usuário (por exemplo,
client.ringo
), você deverá obter
a chave e adicioná-la a um chaveiro no cliente do Ceph para que o usuário
possa acessar o cluster de armazenamento do Ceph.
A Seção 30.2, “Gerenciamento de chave” apresenta os detalhes de como
listar, obter, adicionar, modificar e apagar usuários diretamente do
cluster de armazenamento do Ceph. No entanto, o Ceph também oferece o
utilitário ceph-authtool
para que você possa gerenciar
chaveiros de um cliente do Ceph.
30.2.3.1 Criando um chaveiro #
Ao usar os procedimentos na Seção 30.2, “Gerenciamento de chave” para criar usuários, você precisa fornecer as chaves de usuário ao(s) cliente(s) do Ceph para permitir a recuperação da chave do usuário especificado e a autenticação no cluster de armazenamento do Ceph. Os clientes do Ceph acessam os chaveiros para pesquisar um nome de usuário e recuperar a chave do usuário:
cephuser@adm >
ceph-authtool --create-keyring /path/to/keyring
Durante a criação de um chaveiro com vários usuários, é recomendável usar
o nome do cluster (por exemplo,
cluster.keyring) para o nome de arquivo do
chaveiro e gravá-lo no diretório /etc/ceph
para que a
configuração padrão do chaveiro obtenha o nome do arquivo sem que você
tenha que especificá-lo na cópia local do seu arquivo de configuração do
Ceph. Por exemplo, crie ceph.keyring
executando o
seguinte:
cephuser@adm >
ceph-authtool -C /etc/ceph/ceph.keyring
Durante a criação de um chaveiro com um único usuário, é recomendável usar
o nome do cluster, o tipo de usuário e o nome de usuário e gravá-lo no
diretório /etc/ceph
. Por exemplo,
ceph.client.admin.keyring
para o usuário
client.admin
.
30.2.3.2 Adicionando um usuário a um chaveiro #
Ao adicionar um usuário ao cluster de armazenamento do Ceph (consulte a Seção 30.2.2.3, “Adicionando usuários”), você pode recuperar o usuário, a chave e os recursos e gravá-lo em um chaveiro.
Para usar apenas um usuário por chaveiro, o comando ceph auth
get
com a opção -o
gravará a saída no formato
de arquivo do chaveiro. Por exemplo, para criar um chaveiro para o usuário
client.admin
, execute o
seguinte:
cephuser@adm >
ceph auth get client.admin -o /etc/ceph/ceph.client.admin.keyring
Para importar usuários para um chaveiro, você pode usar
ceph-authtool
para especificar o chaveiro de destino e
de origem:
cephuser@adm >
ceph-authtool /etc/ceph/ceph.keyring \
--import-keyring /etc/ceph/ceph.client.admin.keyring
Se o chaveiro estiver comprometido, apague sua chave do diretório
/etc/ceph
e recrie uma chave seguindo as mesmas
instruções da Seção 30.2.3.1, “Criando um chaveiro”.
30.2.3.3 Criando um usuário #
O Ceph inclui o comando ceph auth add
para criar um
usuário diretamente no cluster de armazenamento do Ceph. No entanto, você
também pode criar um usuário, as chaves e os recursos diretamente em um
chaveiro de cliente do Ceph. Em seguida, você pode importar o usuário para
o cluster de armazenamento do Ceph:
cephuser@adm >
ceph-authtool -n client.ringo --cap osd 'allow rwx' \
--cap mon 'allow rwx' /etc/ceph/ceph.keyring
Você também pode criar um chaveiro e adicionar um novo usuário a ele simultaneamente:
cephuser@adm >
ceph-authtool -C /etc/ceph/ceph.keyring -n client.ringo \
--cap osd 'allow rwx' --cap mon 'allow rwx' --gen-key
Nos cenários anteriores, o novo usuário
client.ringo
está apenas no
chaveiro. Para adicionar o novo usuário ao cluster de armazenamento do
Ceph, você ainda deve adicioná-lo ao cluster:
cephuser@adm >
ceph auth add client.ringo -i /etc/ceph/ceph.keyring
30.2.3.4 Modificando usuários #
Para modificar os recursos do registro de um usuário em um chaveiro, especifique o chaveiro e o usuário seguidos dos recursos:
cephuser@adm >
ceph-authtool /etc/ceph/ceph.keyring -n client.ringo \
--cap osd 'allow rwx' --cap mon 'allow rwx'
Para atualizar o usuário modificado no ambiente de cluster do Ceph, você deve importar as mudanças do chaveiro para a entrada do usuário no cluster do Ceph:
cephuser@adm >
ceph auth import -i /etc/ceph/ceph.keyring
Consulte a Seção 30.2.2.7, “Importando usuários” para obter detalhes sobre como atualizar um usuário do cluster de armazenamento do Ceph de um chaveiro.
30.2.4 Uso da linha de comando #
O comando ceph
suporta as seguintes opções relacionadas
à manipulação de nome de usuário e segredo:
--id
ou--user
O Ceph identifica os usuários com um tipo e um ID (TYPE.ID, como
client.admin
ouclient.user1
). As opçõesid
,name
e-n
permitem especificar a parte do ID do nome de usuário (por exemplo,admin
ouuser1
). Você pode especificar o usuário com --id e omitir o tipo. Por exemplo, para especificar o usuário client.foo, digite o seguinte:cephuser@adm >
ceph --id foo --keyring /path/to/keyring healthcephuser@adm >
ceph --user foo --keyring /path/to/keyring health--name
ou-n
O Ceph identifica os usuários com um tipo e um ID (TYPE.ID, como
client.admin
ouclient.user1
). As opções--name
e-n
permitem especificar o nome completo do usuário. Você deve especificar o tipo de usuário (normalmenteclient
) com o ID de usuário:cephuser@adm >
ceph --name client.foo --keyring /path/to/keyring healthcephuser@adm >
ceph -n client.foo --keyring /path/to/keyring health--keyring
O caminho para o chaveiro que contém um ou mais nomes de usuário e segredos. A opção
--secret
tem a mesma funcionalidade, mas não funciona com o Gateway de Objetos, que usa--secret
para outra finalidade. Você pode recuperar um chaveiro comceph auth get-or-create
e armazená-lo localmente. Essa é a abordagem preferencial, pois você pode alternar nomes de usuário sem mudar o caminho do chaveiro:cephuser@adm >
rbd map --id foo --keyring /path/to/keyring mypool/myimage