Skip to content

外部机密

功能可用性

  • 企业自托管和企业云计划中提供外部机密。
  • n8n 支持 AWS Secrets Manager、Azure Key Vault、GCP Secrets Manager、Infisical 和 HashiCorp Vault。
  • n8n 不支持HashiCorp Vault Secrets

您可以使用外部机密存储来管理n8n 的凭据

n8n 将所有凭证加密存储在其数据库中,并默认限制访问。使用外部密钥功能,您可以将敏感凭证信息存储在外部保管库中,并在需要时让 n8n 加载。这提供了额外的安全保障,并允许您在一个中心位置管理跨多个n8n 环境使用的凭证。

将 n8n 连接到你的机密存储

秘密名字

您的机密名称不能包含空格、连字符或其他特殊字符。n8n 支持包含字母数字字符( 、、和)和下划线的机密名称。n8n 当前仅支持机密的纯文本值,而不支持 JSON 对象或键值对。

  1. 在 n8n 中,转到“设置” > “外部机密”
  2. 为您的商店提供商选择“设置”
    • Azure Key Vault:提供您的
    • 保管库名称
    • 租户 ID
    • 客户端 ID
    • 客户端密钥
    • 。请参阅 Azure 文档以
    • 。n8n 仅支持单行密钥值。
      • 有关您的身份验证方法,请参阅 HashiCorp 文档:
      • 如果您使用保管库命名空间,则可以输入 n8n 应连接到的命名空间。有关 HashiCorp Vault 命名空间的更多信息,请参阅
  3. 保存您的配置。

  4. 使用“禁用”/“启用”切换来启用提供程序。

在 n8n 凭证中使用机密

要在 n8n 凭证中使用商店中的机密:

  1. 创建新凭证或打开现有凭证。
  2. 在要使用密钥的字段上:
    1. 将鼠标悬停在字段上。
    1. 选择
    1. 表达式
  3. 在要使用机密的字段中,输入引用机密名称的表达式:是(对于 HashiCorp)或或。 将其替换为保管库中显示的名称。

在 n8n 环境中使用外部机密

n8n 的源代码管理和环境功能允许您创建由 Git 支持的不同 n8n 环境。该功能不支持在不同实例中使用不同的凭据。您可以使用外部密钥库,通过将每个 n8n 实例连接到不同的密钥库或项目环境,为不同的环境提供不同的凭据。

例如,您有两个 n8n 实例,一个用于开发,一个用于生产。您使用 Infisical 作为您的 Vault。在 Infisical 中,创建一个包含两个环境(开发和生产)的项目。为每个 Infisical 环境生成一个令牌。使用开发环境的令牌连接您的开发 n8n 实例,使用生产环境的令牌连接您的生产 n8n 实例。

在项目中使用外部机密

要在RBAC 项目中使用外部机密,您必须拥有实例所有者或实例管理员作为项目成员。

故障排除

不明确的版本变化

Infisical 版本升级可能会导致连接到 n8n 时出现问题。如果您的 Infisical 连接停止工作,请检查是否有最近的版本变更。如果是,请将问题报告给 help@n8n.io。

仅对实例所有者或管理员拥有的凭据设置外部机密

由于实例所有者和管理员拥有权限,因此他们可以使用 secrets 表达式来更新其他用户的凭据。对于实例所有者或管理员来说,这在预览版中似乎有效,但工作流程在生产环境中运行时,该 secret 将无法解析。

仅将外部机密用于实例管理员或所有者所拥有的凭据。这可确保它们在生产环境中正确解析。