Rotacionar chaves para clusters fragmentados autogerenciados
Os membros do cluster fragmentado podem usarkeyfiles para autenticar uns aos outros como membros do mesmo sistema.
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 seu sistema. 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 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.