Secrets externes
Disponibilité de la fonctionnalité
- La fonctionnalité des secrets externes est disponible avec les offres Enterprise Self-Hosted et Enterprise Cloud.
- n8n prend en charge les fournisseurs de secrets suivants : AWS Secrets Manager, Azure Key Vault, GCP Secrets Manager et HashiCorp Vault.
- À partir de la version 2.10.0 de n8n, vous pouvez connecter plusieurs coffres par fournisseur de secrets. Les versions antérieures ne prenaient en charge qu’un seul coffre par fournisseur.
- n8n ne prend pas en charge HashiCorp Vault Secrets.
Infisical est déprécié
Infisical est désormais déprécié. À partir de la version 2.10.0, il ne sera plus possible de connecter de nouveaux coffres Infisical, bien que les connexions existantes soient temporairement conservées.
Vous pouvez utiliser un stockage de secrets externes pour gérer les identifiants de n8n.
Par défaut, n8n chiffre tous les identifiants et les stocke dans sa base de données, en limitant l’accès à ces données. Grâce à la fonctionnalité des secrets externes, vous pouvez stocker vos informations sensibles dans un coffre externe, que n8n chargera au moment opportun. Cela ajoute une couche de sécurité supplémentaire et vous permet de gérer de manière centralisée les identifiants utilisés dans plusieurs environnements n8n.
Connexion de n8n à votre stockage de secrets
Valeurs des secrets
n8n ne prend en charge que les valeurs de secrets au format texte brut et ne supporte pas le format d’objet JSON.
-
Dans n8n, accédez à Paramètres > Secrets externes.
-
Cliquez sur Ajouter un coffre de secrets.
-
Saisissez un nom unique pour votre coffre. Ce nom correspondra à la première partie utilisée dans l’expression
{{ $secrets.<nom_du_coffre>.<nom_du_secret> }}pour référencer ce coffre. -
Sélectionnez un fournisseur de secrets pris en charge.
-
Saisissez les identifiants requis par votre fournisseur :
-
Azure Key Vault : indiquez le nom du coffre, l’ID de locataire, l’ID client et la clé secrète client. Consultez la documentation Azure sur l’inscription d’une application Microsoft Entra ID et la création d’un principal de service. n8n ne prend en charge que les valeurs de secrets sur une seule ligne.
-
AWS Secrets Manager : fournissez votre ID de clé d’accès, votre clé d’accès secrète et la région. L’utilisateur IAM doit disposer des autorisations suivantes :
secretsmanager:ListSecrets,secretsmanager:BatchGetSecretValueetsecretsmanager:GetSecretValue.Pour accorder à n8n l’accès à tous les secrets d’AWS Secrets Manager, vous pouvez attacher la stratégie IAM suivante à l’utilisateur. Vous pouvez également restreindre cette stratégie pour n’autoriser l’accès qu’à certains secrets spécifiques. Toutefois, vous devez conserver les autorisations
secretsmanager:ListSecretsetsecretsmanager:BatchGetSecretValuesur toutes les ressources, car elles permettent à n8n de lister et récupérer les ARN des secrets sans toutefois accéder à leurs valeurs.Ensuite, vous devez limiter l’autorisation
secretsmanager:GetSecretValueaux ARN (Amazon Resource Names) spécifiques des secrets que vous souhaitez partager avec n8n. Assurez-vous d’utiliser la région et l’ID de compte corrects dans chaque ARN. Vous trouverez ces informations dans la console AWS, sur la page de détails de chaque secret.Pour plus d’exemples de stratégies IAM, consultez la documentation AWS.
-
HashiCorp Vault : indiquez l’URL de votre instance Vault et choisissez votre méthode d’authentification. Saisissez les détails d’authentification requis. Vous pouvez éventuellement spécifier un namespace.
- Consultez la documentation HashiCorp selon votre méthode d’authentification :
- Si vous utilisez des namespaces Vault, vous pouvez indiquer le namespace auquel n8n doit se connecter. Pour en savoir plus, consultez la documentation sur les namespaces Vault Enterprise.
-
Google Cloud Platform : fournissez la clé de compte de service (au format JSON) d’un compte disposant au minimum des rôles Secret Manager Secret Accessor et Secret Manager Secret Viewer. Pour plus d’informations sur les comptes de service, consultez la documentation Google sur les comptes de service.
-
-
Enregistrez votre configuration.
-
Tant que ce stockage reste connecté, vous pouvez référencer ses secrets dans vos identifiants.
Partage de coffres
Par défaut, les coffres de secrets sont globaux : tous les utilisateurs de l’instance peuvent utiliser des identifiants faisant référence aux secrets de ce coffre.
L’administrateur de l’instance peut restreindre l’accès d’un coffre à un projet spécifique. Une fois attribué à un projet, seuls les identifiants appartenant à ce projet peuvent référencer ses secrets. Vous pouvez choisir d’associer un coffre à un seul projet ou de le laisser global.
Configuration de la portée de partage :
- Dans n8n, accédez à Paramètres > Secrets externes.
- Localisez le coffre à configurer et cliquez sur Modifier.
- Sous Partage, sélectionnez l’une des options suivantes :
- Global : partage ce coffre dans toute l’instance n8n, permettant à tous les identifiants de l’instance d’y faire référence.
- Projet : restreint ce coffre à un projet spécifique. Une fois un projet sélectionné, seuls les identifiants de ce projet peuvent accéder à ses secrets.
- Enregistrez votre configuration.
Utilisation des secrets dans les identifiants n8n
Pour utiliser un secret stocké dans vos identifiants n8n :
- Créez un nouvel identifiant ou ouvrez un identifiant existant.
- Sur le champ où vous souhaitez utiliser le secret :
- Passez la souris sur le champ.
- Cliquez sur Expression.
- Dans le champ, saisissez l’expression suivante :
{{ $secrets.<nom_du_coffre>.<nom_du_secret> }}
Remplacez <nom_du_coffre> par le nom que vous avez attribué lors de l’ajout du coffre, et <nom_du_secret> par le nom exact du secret tel qu’il apparaît dans votre coffre.
Utilisation des secrets externes dans différents environnements n8n
La fonctionnalité de contrôle de code source et de gestion des environnements de n8n, basée sur Git, vous permet de créer plusieurs environnements n8n distincts. Cette fonctionnalité ne prend pas en charge l’utilisation d’identifiants différents entre les instances. Cependant, grâce aux coffres de secrets externes, vous pouvez connecter chaque instance n8n à un coffre ou à un environnement de projet différent, afin de fournir des identifiants spécifiques à chaque environnement.
Par exemple, si vous disposez de deux instances n8n — une pour le développement et une pour la production — créez dans votre fournisseur de secrets un projet contenant deux environnements : dev et prod. Générez un jeton d’accès pour chacun. Connectez ensuite votre instance de développement à l’aide du jeton dev, et votre instance de production avec le jeton prod.
Utilisation des secrets externes dans les projets
Pour utiliser des secrets externes dans un projet avec RBAC (contrôle d’accès basé sur les rôles), vous devez être propriétaire de l’instance ou administrateur de l’instance, et figurer comme membre du projet concerné.
Vous pouvez utiliser la fonctionnalité de partage de coffres pour limiter l’accès d’un coffre à un projet spécifique. Un coffre attribué à un projet ne peut être utilisé que par les identifiants appartenant à ce projet.
Dépannage
N’utilisez les secrets externes que sur des identifiants appartenant au propriétaire ou à un administrateur de l’instance
En raison de leurs privilèges étendus, les propriétaires et administrateurs d’instance peuvent modifier les identifiants appartenant à d’autres utilisateurs en y intégrant des expressions de secrets. Bien que cela puisse sembler fonctionner correctement en mode prévisualisation, ces secrets ne seront pas résolus lorsque le workflow s’exécutera en production.
Pour garantir une résolution correcte en production, n’utilisez les secrets externes que sur des identifiants appartenant au propriétaire ou à un administrateur de l’instance.