외부 비밀#
기능 사용 가능성
- 외부 비밀은 엔터프라이즈 자체 호스팅 및 엔터프라이즈 클라우드 계획에서 사용할 수 있습니다.
- n8n은 AWS Secrets Manager, Azure Key Vault, GCP Secrets Manager, Infisical 및 HashiCorp Vault를 지원합니다.
- n8n은 HashiCorp Vault Secrets를 지원하지 않습니다.
n8n의 자격 증명을 관리하기 위해 외부 비밀 저장소를 사용할 수 있습니다.
n8n은 모든 자격 증명을 데이터베이스에 암호화하여 저장하고, 기본적으로 이들에 대한 접근을 제한합니다. 외부 비밀 기능을 사용하면 민감한 자격 증명 정보를 외부 금고에 저장하고, 필요할 때 n8n이 이를 로드하도록 할 수 있습니다. 이는 추가적인 보안 계층을 제공하고, 여러 n8n 환경에서 사용되는 자격 증명을 중앙에서 관리할 수 있게 해줍니다.
n8n을 비밀 저장소에 연결#
비밀 이름
비밀 이름에는 공백, 하이픈 또는 기타 특수 문자를 포함할 수 없습니다. n8n은 영숫자(a-z
, A-Z
, 0-9
) 및 밑줄을 포함하는 비밀 이름을 지원합니다.
- n8n에서 설정 > 외부 비밀로 이동합니다.
- 저장소 공급자에 대해 설정을 선택합니다.
-
공급자의 자격 증명을 입력합니다:
- Azure Key Vault: 금고 이름, 테넌트 ID, 클라이언트 ID, 클라이언트 비밀을 제공하십시오. Microsoft Entra ID 앱을 등록하고 서비스 주체를 만드는 방법에 대한 정보는 Azure 문서를 참조하십시오: Microsoft Entra ID 앱 등록 및 서비스 주체 만들기. n8n은 비밀에 대한 단일 라인 값만 지원합니다.
-
AWS Secrets Manager: 액세스 키 ID, 비밀 액세스 키, 리전을 제공합니다. IAM 사용자에게는
secretsmanager:ListSecrets
,secretsmanager:BatchGetSecretValue
,secretsmanager:GetSecretValue
권한이 있어야 합니다.n8n이 AWS Secrets Manager의 모든 비밀에 접근할 수 있도록 하려면, IAM 사용자에게 다음 정책을 연결할 수 있습니다:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AccessAllSecrets", "Effect": "Allow", "Action": [ "secretsmanager:ListSecrets", "secretsmanager:BatchGetSecretValue", "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:ListSecretVersionIds" ], "Resource": "*" } ] }
또한 n8n이 특정 AWS Secret Manager 비밀에 접근하도록 더 제한할 수도 있습니다. 모든 자원에 접근하기 위해서는 여전히
secretsmanager:ListSecrets
및secretsmanager:BatchGetSecretValue
권한을 허용해야 합니다. 이 권한들은 n8n이 ARN 범위의 비밀을 검색할 수 있게 하지만, 비밀 값에 대한 접근을 제공하지는 않습니다.다음으로,
secretsmanager:GetSecretValue
권한의 범위를 n8n과 공유할 비밀의 특정 Amazon Resource Names (ARN)에 설정해야 합니다. 각 자원 ARN에 올바른 리전과 계정 ID를 사용하고 있는지 확인하십시오. ARN 세부정보는 AWS 대시보드의 비밀 탭에서 찾을 수 있습니다.예를 들어, 다음 IAM 정책은 특정 AWS 계정 및 리전에서 이름이
n8n
으로 시작하는 비밀에 대한 접근만 허용합니다:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListingSecrets", "Effect": "Allow", "Action": [ "secretsmanager:ListSecrets", "secretsmanager:BatchGetSecretValue" ], "Resource": "*" }, { "Sid": "RetrievingSecrets", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": [ "arn:aws:secretsmanager:us-west-2:123456789000:secret:n8n*" ] } ] }
더 많은 IAM 권한 정책 예시는 AWS 문서를 참조하십시오.
-
HashiCorp Vault: 금고 인스턴스에 대한 금고 URL을 제공하고, 인증 방법을 선택하십시오. 인증 세부정보를 입력하십시오. 선택적으로 네임스페이스를 제공할 수 있습니다.
- 인증 방법에 대한 HashiCorp 문서를 참조하십시오:
Token 인증 방법
AppRole 인증 방법
Userpass 인증 방법 - 금고 네임스페이스를 사용하는 경우 n8n이 연결해야 할 네임스페이스를 입력할 수 있습니다. HashiCorp Vault 네임스페이스에 대한 더 많은 정보는 Vault Enterprise 네임스페이스를 참조하십시오.
- 인증 방법에 대한 HashiCorp 문서를 참조하십시오:
Token 인증 방법
-
Infisical: 서비스 토큰을 제공합니다. 토큰을 얻는 방법에 대한 정보는 Infisical의 서비스 토큰 문서를 참조하십시오. Infisical을 자체 호스팅하는 경우 사이트 URL을 입력합니다.
Infisical 환경
토큰을 생성할 때 올바른 Infisical 환경을 선택해야 합니다. n8n은 이 환경에서 비밀을 로드하고, 다른 Infisical 환경의 비밀에는 접근할 수 없습니다. n8n은 단일 환경에 접근할 수 있는 서비스 토큰만 지원합니다.
Infisical 폴더
n8n은 Infisical 폴더를 지원하지 않습니다.
-
Google Cloud Platform: 최소한
Secret Manager Secret Accessor
및Secret Manager Secret Viewer
역할을 가진 서비스 계정에 대한 서비스 계정 키(JSON)를 제공합니다. 더 많은 정보는 Google의 서비스 계정 문서를 참조하십시오.
-
구성 저장을 클릭합니다.
- 비활성화 / 활성화 토글을 사용하여 공급자를 활성화합니다.
n8n 자격 증명에서 비밀 사용하기#
n8n 자격 증명에서 스토어의 비밀을 사용하려면:
- 새 자격 증명을 생성하거나 기존 자격 증명을 엽니다.
- 비밀을 사용하려는 필드에서:
- 필드 위에 마우스를 올립니다.
- Expression을 선택합니다.
- 비밀을 사용하려는 필드에 비밀 이름을 참조하는 expression을 입력합니다:
1
{{ $secrets.<vault-name>.<secret-name> }}
<vault-name>
은vault
(HashiCorp의 경우) 또는infisical
또는awsSecretsManager
입니다.<secret-name>
을 귀하의 금고에 표시된 이름으로 교체합니다.
n8n 환경에서 외부 비밀 사용하기#
n8n의 소스 제어 및 환경 기능은 Git에 기반한 서로 다른 n8n 환경을 생성할 수 있습니다. 이 기능은 서로 다른 인스턴스에서 서로 다른 자격 증명을 사용하는 것을 지원하지 않습니다. 각 n8n 인스턴스를 서로 다른 금고 또는 프로젝트 환경에 연결하여 서로 다른 환경에 대해 서로 다른 자격 증명을 제공하기 위해 외부 비밀 금고를 사용할 수 있습니다.
예를 들어, 개발용과 프로덕션용으로 두 개의 n8n 인스턴스가 있습니다. 금고로 Infisical을 사용합니다. Infisical에서 개발 및 프로덕션이라는 두 개의 환경이 있는 프로젝트를 생성합니다. 각 Infisical 환경에 대한 토큰을 생성합니다. 개발 환경을 위한 토큰을 사용하여 개발 n8n 인스턴스에 연결하고, 프로덕션 환경을 위한 토큰을 사용하여 프로덕션 n8n 인스턴스에 연결합니다.
프로젝트에서 외부 비밀 사용하기#
RBAC 프로젝트에서 외부 비밀을 사용하려면 프로젝트의 구성원으로 인스턴스 소유자 또는 인스턴스 관리자가 있어야 합니다.
문제 해결#
Infisical 버전 변경#
Infisical 버전 업그레이드는 n8n에 연결하는 데 문제를 일으킬 수 있습니다. Infisical 연결이 작동하지 않는 경우 최근 버전 변경이 있었는지 확인하십시오. 그렇다면 help@n8n.io에 문제를 보고하십시오.
인스턴스 소유자 또는 관리자가 소유한 자격 증명에서만 외부 비밀 설정#
인스턴스 소유자와 관리자가 가진 권한으로 인해 소유자와 관리자는 비밀 표현으로 다른 사용자가 소유한 자격 증명을 업데이트할 수 있습니다. 이는 인스턴스 소유자 또는 관리자가 미리 보기에선 작동하는 것처럼 보이지만, 프로덕션에서 워크플로가 실행될 때 비밀이 해결되지 않습니다.
외부 비밀은 인스턴스 관리자 또는 소유자가 소유한 자격 증명에만 사용하십시오. 이는 프로덕션에서 올바르게 해결되도록 보장합니다.