Girar chaves para clusters fragmentados
Os membros do cluster fragmentado podem usar keyfiles 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 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 chave local do mecanismo de armazenamento criptografado do MongoDB . Esse arquivo de 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 reduzir 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 reduzir 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 do 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 reduzir 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 reduzir 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 do 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.