Wróć do bloga
n8n

n8n Credentials i bezpieczeństwo – jak chronić dane

Twoje workflow przetwarzają klucze API, dane klientów, tokeny. Ten artykuł pokazuje jak je zabezpieczyć.

8 min czytania
n8n, bezpieczeństwo, credentials, RODO, security, self-hosting

Twój workflow ma dostęp do Gmaila, CRM, konta bankowego, API płatności. Jedno wycieknięcie credentials = katastrofa. n8n traktuje bezpieczeństwo poważnie – ale konfiguracja leży po Twojej stronie. Ten artykuł pokazuje co zrobić.

TL;DR

  • Credentials w n8n są szyfrowane (AES-256-CBC) – nie zapisuj kluczy API w node'ach
  • Encryption key – ustaw N8N_ENCRYPTION_KEY przy pierwszym uruchomieniu. Bez niego = dane w bazie niezabezpieczone
  • RODO – self-hosting na polskim serwerze = pełna kontrola. Cloud = serwery w EU (Niemcy)
  • Reverse proxy + SSL – obowiązkowe na produkcji
  • Backup – credentials nie eksportują się z workflow, backup bazy = jedyna kopia

Nie masz n8n? Zainstaluj bezpiecznie. Kontekst: kompletny poradnik n8n.


Credentials – jak n8n chroni Twoje klucze

Jak działa szyfrowanie

n8n szyfruje credentials algorytmem AES-256-CBC. Klucz szyfrujący to N8N_ENCRYPTION_KEY – zmienna środowiskowa, którą ustawiasz przy instalacji.

bash
# Docker – dodaj do environment
N8N_ENCRYPTION_KEY=twoj-losowy-klucz-min-24-znaki
Nie gubiaj Encryption Key!

Bez N8N_ENCRYPTION_KEY nie odszyfrujesz credentials z bazy danych. Utrata klucza = utrata WSZYSTKICH credentials. Zapisz go w bezpiecznym miejscu (menedżer haseł, nie w repo).

Czego NIE robić z credentials

1. Nie wklejaj kluczy API bezpośrednio w node'y

Źle:

HTTP Request → Header: Authorization: Bearer sk-1234567890

Dobrze:

HTTP Request → Authentication: Predefined Credential Type → OpenAI API

n8n Credentials: szyfrowane, centralne zarządzanie, łatwa rotacja. Klucz w node: plaintext w workflow JSON, eksportuje się z workflow, widoczny dla każdego z dostępem.

2. Nie eksportuj workflow z credentials

Workflow JSON nie zawiera credentials (celowo). Ale mogą zawierać dane, które leciały przez node'y – sprawdź przed udostępnieniem.

3. Nie używaj $credentials w expressions

$credentials.xxx.yyy nie działa w n8n expressions (blokada bezpieczeństwa). Jeśli potrzebujesz wartości credential w wyrażeniu – użyj Edit Fields do przepisania wartości.


Bezpieczeństwo instancji n8n

1. SSL/HTTPS – obowiązkowe

Bez HTTPS dane lecą plaintextem – w tym credentials i dane workflow. Na produkcji HTTPS jest obowiązkowe.

Rozwiązanie: Caddy jako reverse proxy (automatyczny SSL). Instrukcja instalacji z Caddy.

2. Uwierzytelnianie

n8n domyślnie wymaga loginu. Upewnij się, że:

  • Hasło jest silne (min. 16 znaków)
  • Nie używasz domyślnych danych
  • N8N_BASIC_AUTH_ACTIVE=true jest ustawione

3. Zmienne środowiskowe

Przechowuj wrażliwe dane jako zmienne środowiskowe, nie w workflow:

bash
# docker-compose.yml
environment:
  - N8N_ENCRYPTION_KEY=twoj-klucz
  - OPENAI_API_KEY=sk-xxx
  - SLACK_TOKEN=xoxb-xxx

W n8n użyj tych zmiennych w Credentials lub przez $env.VARIABLE_NAME.

4. Firewall

Ogranicz dostęp do n8n:

  • Port 5678: tylko przez reverse proxy
  • SSH: tylko z Twojego IP
  • API n8n: uwierzytelnianie wymagane

5. Aktualizacje

n8n regularnie łata luki bezpieczeństwa. Aktualizuj przynajmniej co miesiąc:

bash
docker compose pull && docker compose up -d

RODO i przetwarzanie danych

Self-hosting: pełna kontrola

Self-hosting na polskim serwerze (np. Mikrus) = dane nie opuszczają Polski. Najlepsza opcja dla firm z wymaganiami RODO.

n8n Cloud: serwery w EU

n8n Cloud działa na AWS eu-central-1 (Frankfurt, Niemcy). Dane w EU – zgodne z RODO, ale poza Polską.

Co n8n przetwarza

DaneGdzieJak długo
CredentialsBaza n8n (szyfrowane)Do usunięcia
Execution dataBaza n8nKonfigurowalne (domyślnie: zawsze)
Workflow JSONBaza n8nDo usunięcia
Dane przetwarzaneRAM (w trakcie) + baza (po execution)Konfigurowalne

Rekomendacje RODO

  1. Retencja execution data – ustaw automatyczne usuwanie:
    EXECUTIONS_DATA_MAX_AGE=168 # 7 dni
  2. Nie loguj danych wrażliwych – wyłącz save execution data dla workflow przetwarzających PESEL, dane zdrowotne
  3. Umowa powierzenia – jeśli przetwarzasz dane klientów przez n8n Cloud, potrzebujesz DPA z n8n GmbH
  4. Dokumentacja – opisz n8n w rejestrze czynności przetwarzania (art. 30 RODO)
Self-hosting = pełna kontrola RODO

Self-hosting to jedyna opcja dająca 100% kontroli nad danymi. Wiesz dokładnie gdzie są, kto ma dostęp, jak długo są przechowywane. Dla firm przetwarzających dane wrażliwe – jedyna sensowna opcja.


Backup i disaster recovery

Co backupować

  1. Baza danych n8n – credentials (szyfrowane), workflow, execution data
  2. Encryption key – bez niego baza jest bezużyteczna
  3. Docker volumes/home/node/.n8n
  4. Docker compose + Caddyfile – konfiguracja

Automatyczny backup (cron)

bash
# Backup co noc o 2:00
0 2 * * * docker run --rm -v n8n_data:/data -v /backup:/backup alpine \
  tar czf /backup/n8n-$(date +\%Y\%m\%d).tar.gz /data

Restore

bash
# Zatrzymaj n8n
docker compose down

# Przywróć backup
docker run --rm -v n8n_data:/data -v /backup:/backup alpine \
  tar xzf /backup/n8n-20260218.tar.gz -C /

# Uruchom n8n
docker compose up -d

Test restore

Rób test restore co miesiąc. Backup, którego nie przetestowałeś, nie istnieje.


Checklist bezpieczeństwa

Zanim pójdziesz na produkcję:

  • N8N_ENCRYPTION_KEY ustawiony i zapisany w bezpiecznym miejscu
  • HTTPS/SSL skonfigurowany (Caddy/Nginx)
  • Silne hasło do n8n (min. 16 znaków)
  • Firewall – port 5678 zamknięty (tylko przez reverse proxy)
  • Credentials w node Credentials (nie w hardcode)
  • Execution data retention ustawione (7-30 dni)
  • Automatyczny backup skonfigurowany (codziennie)
  • Test restore wykonany
  • Aktualizacje n8n – plan co miesiąc

FAQ

Czy credentials wyciekną przy eksporcie workflow?

Nie – n8n celowo nie eksportuje credentials w pliku JSON workflow. Ale execution data może zawierać dane, które przepływały przez workflow. Sprawdź przed udostępnieniem.

Czy n8n jest bezpieczny dla danych firmowych?

Self-hosted z właściwą konfiguracją – tak. n8n to oprogramowanie open source, audytowane przez społeczność. Bezpieczeństwo zależy od Twojej konfiguracji (SSL, firewall, backup, encryption key).

Co jeśli stracę Encryption Key?

Wszystkie credentials stają się nieodszyfrowane. Musisz je skonfigurować ponownie. Workflow działają, ale każdy node z credentials wymaga ponownej konfiguracji.

Czy n8n loguje dane, które przez niego przepływają?

Tak – execution data zawiera input/output każdego node'a. Ustaw retencję (EXECUTIONS_DATA_MAX_AGE) i rozważ wyłączenie save data dla wrażliwych workflow (EXECUTIONS_DATA_SAVE_ON_SUCCESS=none).