Rotacionar chaves para clusters fragmentados autogerenciados
Os membros do cluster fragmentado podem usar arquivos -chave para autenticar uns aos outros como membros da mesma implantação.
Um arquivo de chave pode conter várias chaves e a autenticação de associação será estabelecida se pelo menos uma chave for comum entre os membros. Isso permite a atualização contínua das chaves sem tempo de inatividade.
O tutorial a seguir passo a passo do processo para atualizar, sem tempo de inatividade, a chave de um cluster fragmentado. [1]
Aviso
As chaves de exemplo neste tutorial são apenas para fins ilustrativos. NÃO use para sua implantação. Em vez disso, gere um arquivo-chave usando qualquer método de sua escolha (por exemplo, openssl rand -base64
756
, etc.).
Considere um cluster fragmentado onde o arquivo de chave de cada membro contém a seguinte chave:

O procedimento a seguir atualiza os nós do cluster fragmentado para usar uma nova chave:

[1] | Este tutorial não é aplicável ao arquivo de chave usado para o gerenciamento de chaves locais do storage engine criptografado do MongoDB . Esse arquivo -chave só pode conter uma única chave. |
Procedimento
1. Modificar o arquivo-chave para incluir chaves antigas e novas
Modifique o arquivo-chave de cada membro para incluir as chaves antigas e as novas.
Aviso
As chaves de exemplo neste tutorial são apenas para fins ilustrativos. NÃO use para sua implantação. Em vez disso, gere um arquivo-chave usando qualquer método de sua escolha (por exemplo, openssl rand -base64
756
, etc.).
Você pode especificar várias strings de chave como uma sequência de strings de chave (opcionalmente entre aspas):

1. Reiniciar cada membro
Quando todos os arquivos-chave contiverem as chaves antigas e as novas, reinicie cada membro um de cada vez.
Servidores de configuração
Para cada secundário do conjunto de réplica do servidor de configuração (CSRS), conecte o mongosh
ao membro e:
Use o método
db.shutdownServer()
para desligar o nó:use admin db.shutdownServer() Reinicie o membro.
Para o primário, conecte mongosh
ao nó e
Use
rs.stepDown()
para descer o membro:rs.stepDown() Use o método
db.shutdownServer()
para desligar o nó:use admin db.shutdownServer() Reinicie o membro.
Fragmentar conjuntos de réplicas
Para cada nó secundário dos conjuntos de réplicas do shard, conecte mongosh
ao nó e:
Use o método
db.shutdownServer()
para desligar o nó:use admin db.shutdownServer() Reinicie o membro.
Para o primário de cada conjunto de réplicas de fragmento, conecte mongosh
ao membro e
Use
rs.stepDown()
para descer o membro:rs.stepDown() Use o método
db.shutdownServer()
para desligar o nó:use admin db.shutdownServer() Reinicie o membro.
mongos
Roteadores
Para cada instância de mongos/roteador, conecte mongosh
à instância mongos
e:
Use o método
db.shutdownServer()
para desligar o nó:use admin db.shutdownServer() Reinicie o membro.
Depois que todos os membros tiverem sido reiniciados, os membros agora aceitarão a chave antiga ou a nova para autenticação de associação.
3. Atualizar o conteúdo do arquivo-chave somente para a nova chave
Aviso
As chaves de exemplo neste tutorial são apenas para fins ilustrativos. NÃO use para sua implantação. Em vez disso, gere um arquivo-chave usando qualquer método de sua escolha (por exemplo, openssl rand -base64
756
, etc.).
Modifique o arquivo-chave de cada membro para incluir apenas a nova senha.

4. Reiniciar cada membro
Quando todos os arquivos-chave contiverem apenas a nova chave, reinicie cada membro um de cada vez.
Servidores de configuração
Para cada secundário do conjunto de réplica do servidor de configuração (CSRS), conecte o mongosh
ao membro e:
Use o método
db.shutdownServer()
para desligar o nó:use admin db.shutdownServer() Reinicie o membro.
Para o primário, conecte mongosh
ao nó e
Use
rs.stepDown()
para descer o membro:rs.stepDown() Use o método
db.shutdownServer()
para desligar o nó:use admin db.shutdownServer() Reinicie o membro.
Fragmentar conjuntos de réplicas
Para cada nó secundário dos conjuntos de réplicas do shard, conecte mongosh
ao nó e:
Use o método
db.shutdownServer()
para desligar o nó:use admin db.shutdownServer() Reinicie o membro.
Para o primário de cada conjunto de réplicas de fragmento, conecte mongosh
ao membro e
Use
rs.stepDown()
para descer o membro:rs.stepDown() Use o método
db.shutdownServer()
para desligar o nó:use admin db.shutdownServer() Reinicie o membro.
mongos
Roteadores
Para cada instância de mongos/roteador, conecte mongosh
à instância mongos
e:
Use o método
db.shutdownServer()
para desligar o nó:use admin db.shutdownServer() Reinicie o membro.
Depois que todos os membros tiverem sido reiniciados, eles agora aceitarão apenas a nova chave para autenticação da associação.