Rotacionar chaves para conjuntos de réplicas autogerenciados
Os membros do conjunto de réplicas 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 detalha o processo para atualizar a chave de um conjunto de réplicas sem tempo de inatividade. [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 conjunto de réplicas onde o arquivo-chave de cada membro contém a seguinte chave:
O procedimento a seguir atualiza os membros do conjunto de réplicas 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. Você pode especificar múltiplas chaves como strings entre aspas ou como uma sequência de chaves.
Aviso
As chaves de exemplo neste tutorial são apenas para fins ilustrativos. NÃO use em seu sistema. 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 simples ou duplas).
2. Reiniciar cada membro
Quando todos os arquivos-chave contiverem as chaves antigas e as novas, reinicie cada membro um de cada vez.
Para cada nó secundário, 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, 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.
Como os arquivos-chave contêm as chaves antigas e novas, todos os membros agora podem aceitar qualquer uma das chaves 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 em seu sistema. 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.
Para cada nó secundário, 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, 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.
Todos os membros agora aceitam apenas a nova chave para autenticação de associação.