Oi PESSOAL
Estou trabalhando em uma configuração de n8n que usa várias APIs externas, e estou pensando em como rotacionar chaves de API e tokens de acesso sem interromper os fluxos de trabalho ativos.
Por exemplo: Fluxo de trabalho n8n
↓
Credencial
↓
API Externa
quando uma chave de API expira ou precisa ser rotacionada, não quero que dezenas de fluxos de trabalho comecem a falhar de repente.
Estou considerando manter as credenciais em um gerenciador de segredos externo e usar um processo como: Nova Credencial
↓
Atualizar Segredo
↓
Testar Conexão
↓
Alternar Fluxos de Trabalho
↓
Revogar Credencial Antiga
Descreva o problema/erro/pergunta
Como você impede que os fluxos de trabalho ativos quebrem durante a rotação?
Qual é sua abordagem para detectar credenciais expiradas ou revogadas antes que afetem os usuários?
Qual é a mensagem de erro (se houver)?
Por favor, compartilhe seu fluxo de trabalho
(Selecione os nós em sua tela e use os atalhos de teclado CMD+C/CTRL+C e CMD+V/CTRL+V para copiar e colar o fluxo de trabalho.)
Oi @Kabrooks
O caminho seguro para rotação é manter a chave completamente fora das credenciais. Aponte o campo de credencial para seu cofre com uma expressão, então a rotação é uma escrita no cofre e nada em n8n é editado:
{{ $secrets.myvault.stripe_api_key }}
n8n relê o cofre em um intervalo de sondagem definido por N8N_EXTERNAL_SECRETS_UPDATE_INTERVAL, padrão de 300 segundos, então mantenha a chave antiga válida por pelo menos um intervalo completo após escrever a nova, depois revogue. Baixe o intervalo se quiser uma sobreposição mais curta. Duas restrições a planejar: isso é apenas Enterprise, e os segredos são resolvidos apenas em campos de credencial, não em outros campos de expressão.
Para detecção, configure um Workflow de Erro em cada workflow com um Gatilho de Erro que filtre 401 e 403 da API e o alerte, então uma chave revogada aparece na primeira execução com falha em vez de quando os usuários reportam.
Se você precisar verificar o que a camada gratuita auto-hospedada inclui e não inclui aqui:
Oi @Kabrooks Uma boa abordagem em produção é rotacionar credenciais gradualmente em vez de substituí-las abruptamente.
Nova Credencial
↓
Testar Conexão
↓
Implantar / Alternar
↓
Monitorar
↓
Revogar Credencial Antiga
Abordagem recomendada
Armazene segredos fora dos fluxos de trabalho quando possível
Crie e teste a nova credencial antes de alternar
Rotacione durante um período de baixo tráfego
Monitore falhas de API após a mudança
Mantenha a credencial antiga ativa brevemente como opção de reversão
Revogue a credencial antiga após confirmar que tudo está funcionando
Para implantações maiores, automatizar a rotação através de um gerenciador de segredos pode reduzir erros humanos.
A chave é evitar alterar ou revogar a credencial antiga antes de confirmar que a nova funciona, caso contrário uma simples rotação pode se transformar em uma indisponibilidade em produção.
Faz sentido. Uma coisa que estou curioso: ao rotacionar credenciais automaticamente, como você muda com segurança os fluxos de trabalho ativos para a nova credencial sem causar tempo de inatividade? Você depende de um gerenciador de segredos ou lida com a mudança diretamente no n8n @Niffzy
Normalmente eu usaria um gerenciador de segredos e tornaria o processo de rotação gradual em vez de mudar tudo de uma vez.
Criar Novo Segredo
↓
Testar Nova Credencial
↓
Atualizar Gerenciador de Segredos
↓
n8n Usa Novo Segredo
↓
Monitorar Falhas
↓
Revogar Segredo Antigo
A parte importante é ter um curto período de sobreposição onde a credencial antiga permanece válida. Isso te dá tempo para verificar se a nova funciona e reverter se algo der errado.
Para configurações maiores, automatizar esse processo com um gerenciador de segredos é geralmente mais seguro do que atualizar credenciais manualmente em vários fluxos de trabalho.