Segredos Externos
Disponibilidade do recurso
- A funcionalidade de segredos externos está disponível nos planos Enterprise Self-Hosted e Enterprise Cloud.
- O n8n suporta os seguintes provedores de segredos: AWS Secrets Manager, Azure Key Vault, GCP Secrets Manager e HashiCorp Vault.
- A partir da versão 2.10.0 do n8n, é possível conectar múltiplos cofres (vaults) por provedor de segredos. Nas versões anteriores, apenas um cofre era permitido por provedor.
- O n8n não suporta o HashiCorp Vault Secrets.
Infisical foi descontinuado
O Infisical foi descontinuado. A partir da versão 2.10.0, você não poderá mais conectar novos cofres do Infisical, embora as conexões existentes continuem funcionando por enquanto.
Você pode usar cofres externos de segredos para gerenciar as credenciais do n8n.
Por padrão, o n8n criptografa e armazena todas as credenciais em seu banco de dados, restringindo o acesso a elas. Com a funcionalidade de segredos externos, você pode armazenar informações sensíveis de credenciais em um cofre externo e fazer com que o n8n as carregue conforme necessário. Isso adiciona uma camada extra de segurança e permite gerenciar credenciais usadas em múltiplos ambientes do n8n a partir de um local centralizado.
Conectando o n8n ao seu cofre de segredos
Valores dos segredos
O n8n suporta apenas valores de segredos em formato de texto simples, não suportando objetos JSON.
-
No n8n, vá para Configurações > Segredos Externos.
-
Clique em Adicionar Cofre de Segredos.
-
Insira um nome único para o seu cofre. Esse nome será a primeira parte usada na expressão
{{ $secrets.<nome_do_cofre>.<nome_do_segredo> }}nas credenciais. -
Selecione um provedor de segredos compatível.
-
Insira as credenciais do seu provedor:
-
Azure Key Vault: Forneça o Nome do Cofre, ID do Locatário, ID do Cliente e Chave Secreta do Cliente. Consulte a documentação do Azure sobre como registrar um aplicativo no Microsoft Entra ID e criar uma entidade de serviço. O n8n suporta apenas valores de segredos em uma única linha.
-
AWS Secrets Manager: Forneça sua ID da chave de acesso, Chave secreta de acesso e Região. O usuário IAM deve ter as permissões
secretsmanager:ListSecrets,secretsmanager:BatchGetSecretValueesecretsmanager:GetSecretValue.Para conceder ao n8n acesso a todos os segredos no AWS Secrets Manager, você pode anexar a seguinte política ao usuário IAM. Alternativamente, você pode restringir o escopo para permitir acesso apenas a segredos específicos. No entanto, ainda será necessário permitir as permissões
secretsmanager:ListSecretsesecretsmanager:BatchGetSecretValueem todos os recursos, pois elas permitem que o n8n liste e identifique os segredos dentro de um intervalo de ARNs, sem fornecer acesso aos valores reais.Em seguida, defina o escopo da permissão
secretsmanager:GetSecretValuepara incluir apenas os Nomes de Recurso da Amazon (ARNs) específicos que você deseja compartilhar com o n8n. Certifique-se de usar a região e o ID da conta corretos em cada ARN. Você pode encontrar essas informações na página de detalhes do segredo no console da AWS.Para mais exemplos de políticas de permissões do IAM, consulte a documentação da AWS.
-
HashiCorp Vault: Forneça a URL do Vault da sua instância e selecione seu método de autenticação. Insira os detalhes de autenticação. Opcionalmente, forneça um namespace.
- Consulte a documentação do HashiCorp para o método de autenticação que você está usando:
- Se você estiver usando namespaces do Vault, insira o namespace ao qual o n8n deve se conectar. Para mais informações, consulte Namespaces do Vault Enterprise.
-
Google Cloud Platform (GCP): Forneça a chave da conta de serviço (em formato JSON) de uma conta de serviço com pelo menos as funções Secret Manager Secret Accessor e Secret Manager Secret Viewer. Para mais informações sobre contas de serviço, consulte a documentação do Google sobre contas de serviço.
-
-
Salve sua configuração.
-
Enquanto o cofre estiver conectado, você poderá referenciar seus segredos nas credenciais.
Compartilhamento de cofres
Por padrão, os cofres de segredos são globais: todos os usuários da instância podem usar credenciais que referenciem segredos desse cofre.
Administradores da instância podem restringir um cofre a projetos específicos. Após atribuir um cofre a um projeto, somente as credenciais desse projeto poderão referenciar seus segredos. Você pode optar por vincular o cofre a um único projeto ou mantê-lo global.
Configurando o escopo de compartilhamento:
- No n8n, vá para Configurações > Segredos Externos.
- Localize o cofre que deseja configurar e selecione Editar.
- Em Compartilhamento, escolha uma das opções abaixo:
- Global: Compartilha este cofre em toda a instância do n8n, permitindo que todas as credenciais da instância referenciem seus segredos.
- Projeto: Restringe este cofre a um projeto específico. Após selecionar um projeto, apenas as credenciais desse projeto poderão acessar seus segredos.
- Salve sua configuração.
Usando segredos nas credenciais do n8n
Para usar um segredo armazenado em suas credenciais do n8n:
- Crie uma nova credencial ou abra uma existente.
- No campo onde deseja usar o segredo:
- Passe o mouse sobre o campo.
- Selecione Expressão (Expression).
- No campo, insira a expressão que referencia o nome do segredo:
{{ $secrets.<nome_do_cofre>.<nome_do_segredo> }}
Substitua <nome_do_cofre> pelo nome que você definiu ao adicionar o cofre e <nome_do_segredo> pelo nome exibido no seu cofre de segredos.
Usando segredos externos em diferentes ambientes do n8n
O controle de código-fonte e a funcionalidade de ambientes do n8n permitem criar diferentes ambientes baseados no Git. Essa funcionalidade não suporta o uso de credenciais diferentes entre instâncias. No entanto, você pode usar cofres externos para conectar cada instância do n8n a cofres ou ambientes distintos, fornecendo credenciais diferentes para cada ambiente.
Por exemplo, suponha que você tenha duas instâncias do n8n: uma para desenvolvimento e outra para produção. No seu provedor de segredos, crie um projeto com dois ambientes: desenvolvimento e produção. Gere um token para cada ambiente. Conecte a instância de desenvolvimento usando o token de desenvolvimento e a instância de produção usando o token de produção.
Usando segredos externos em projetos com RBAC
Para usar segredos externos em projetos com RBAC (Controle de Acesso Baseado em Funções), você deve ter o proprietário da instância ou um administrador da instância como membro do projeto.
Você pode usar a funcionalidade de compartilhamento de cofres para restringir um cofre a um projeto específico. Cofres atribuídos a um projeto só podem ser usados nas credenciais desse projeto.
Solução de problemas
Use segredos externos apenas em credenciais pertencentes ao proprietário ou administrador da instância
Como proprietários e administradores têm permissões elevadas, eles conseguem atualizar credenciais de outros usuários usando expressões de segredos. Embora isso possa parecer funcionar corretamente na visualização (preview), os segredos não serão resolvidos corretamente quando o fluxo de trabalho for executado em produção.
Portanto, use segredos externos somente em credenciais pertencentes ao proprietário ou administrador da instância. Isso garante que os segredos sejam resolvidos corretamente em ambientes de produção.