Průvodce pro vývojáře
5 min

Jak bezpečně sdílet API klíče a tajné údaje s týmem

Naučte se bezpečně sdílet API klíče, tajné klíče a proměnné prostředí s vývojovým týmem. Vyhněte se rizikovým metodám a osvojte si osvědčené postupy.

LOCK.PUB
Jak bezpečně sdílet API klíče a tajné údaje s týmem

Jak bezpečně sdílet API klíče a tajné údaje s týmem

Pokud profesionálně programujete, téměř jistě jste už potřebovali sdílet s kolegou API klíče, tajné klíče, hesla k databázi nebo přístupové údaje k serveru. Otázkou je, jak to udělat, aniž byste přitom vytvořili bezpečnostní zranitelnost.

Nebezpečné způsoby sdílení

Začněme tím, co byste nikdy dělat neměli. Překvapivě mnoho vývojových týmů na tyto postupy stále spoléhá.

1. Commitování do Gitu

Commitování souborů .env do Git repozitáře je nejčastější a zároveň nejnebezpečnější chyba.

# Never do this
git add .env
git commit -m "add env variables"
git push origin main

Jakmile se tajný údaj dostane do historie Gitu, jeho smazání pomocí git rm ho z historie neodstraní. Ve veřejných repozitářích automatizovaní boti odhalí vystavené tajné údaje během několika sekund.

2. Vložení do Slacku nebo Discordu

Vkládat API klíče přímo do kanálu v chatu je stejně riskantní.

  • Vidí je každý, kdo má do kanálu přístup
  • Díky vyhledávání ve zprávách je lze dohledat i později
  • Zpráva zůstává i poté, co zaměstnanec odejde
  • Správci workspace ve Slacku mohou číst všechny zprávy včetně DM

3. Odeslání e-mailem

E-mail není ve výchozím stavu šifrovaný. Zprávy lze zachytit při přenosu mezi poštovními servery a přihlašovací údaje zůstávají natrvalo ve schránce příjemce.

Skutečná cena úniku API klíče

Únik API klíče není jen bezpečnostní incident. Přímo se promítá do finančních škod.

Příklady úniků klíčů AWS

Incident Škoda
Vystavený AWS klíč jednotlivého vývojáře Účet 6 000 $ za jedinou noc
Veřejný GitHub repozitář startupu Přes 50 000 $ během 3 dnů
Únik z interní wiki velké firmy Únik dat v řádu milionů dolarů

Když uniknou klíče ke cloudovým službám AWS, GCP nebo Azure, útočníci během několika minut spustí obrovské množství výpočetních prostředků, obvykle na těžbu kryptoměn.

Další důsledky

  • Únik klíče k platebnímu API -> podvodné platby
  • Únik klíče k e-mailovému API -> hromadné rozesílání spamu
  • Únik přístupových údajů k databázi -> krádež zákaznických dat

Bezpečné způsoby sdílení API klíčů

Metoda 1: Tajná poznámka LOCK.PUB (okamžité sdílení)

Toto je nejpraktičtější přístup, když potřebujete předat klíče kolegovi hned teď.

Postup:

  1. Vytvořte na LOCK.PUB tajnou poznámku
  2. Zadejte API klíč a související kontext
  3. Nastavte heslo a krátkou dobu platnosti (Pro, např. 1 hodina)
  4. Odkaz pošlete přes Slack a heslo zvlášť v samostatné DM
# Příklad obsahu tajné poznámky
AWS_ACCESS_KEY_ID=AKIA...
AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI...
AWS_REGION=us-east-1

Poznámka: Tyto klíče jsou pouze pro stagingové prostředí.
O produkční klíče požádejte zvlášť.

Výhody:

  • Po uplynutí platnosti se přestane otevírat
  • K zobrazení je potřeba heslo
  • Na serveru je uložena šifrovaně
  • V historii Slacku nezůstanou žádné klíče v čitelné podobě

Metoda 2: Nástroje pro správu tajných údajů (pro celý tým)

S růstem týmu se specializované nástroje pro správu tajných údajů stávají nezbytností.

Nástroj Silná stránka Nejvhodnější pro
HashiCorp Vault Nejvýkonnější správa tajných údajů Velké firmy
AWS Secrets Manager Integrace s ekosystémem AWS Infrastrukturu postavenou na AWS
1Password Teams Rozhraní přívětivé pro vývojáře Startupy a malé týmy
Doppler Automatická synchronizace proměnných prostředí Týmy zaměřené na DevOps

Metoda 3: Správa proměnných prostředí (vzor .env.example)

Zahrnout do projektu soubor .env.example je standardní praxe.

# .env.example (committed to Git)
DATABASE_URL=
API_KEY=
SECRET_KEY=
STRIPE_SECRET=

# .env (never committed to Git)
DATABASE_URL=postgresql://user:pass@host:5432/db
API_KEY=sk-abc123...
SECRET_KEY=mysecret...
STRIPE_SECRET=sk_live_...

Soubor .env vždy přidejte do .gitignore.

# .gitignore
.env
.env.local
.env.production

Osvědčené postupy pro správu tajných údajů

1. Pravidelně rotujte klíče

API klíče by se měly pravidelně rotovat. Omezíte tím dobu, po kterou může kompromitovaný klíč způsobit škodu.

Typ klíče Doporučená rotace
Produkční API klíče 90 dní
Hesla k databázím 60 dní
Servisní tokeny 30 dní
Vývojové/testovací klíče Ihned, když někdo odejde

2. Pro každé prostředí používejte samostatné klíče

Pro vývojové, stagingové a produkční prostředí používejte různé klíče.

# Good
DEV_API_KEY=sk-dev-xxx
STAGING_API_KEY=sk-staging-xxx
PROD_API_KEY=sk-prod-xxx

# Bad - same key for all environments
API_KEY=sk-same-key-for-all

3. Uplatňujte princip nejnižších oprávnění

Každému API klíči udělte jen minimální nezbytná oprávnění.

  • Pro operace pouze se čtením používejte klíče jen pro čtení
  • Vydávejte klíče omezené na konkrétní služby
  • Administrátorské klíče svěřte co nejmenší skupině lidí

4. Automatizujte detekci úniků

Používejte nástroje jako GitHub Secret Scanning, GitGuardian nebo TruffleHog k automatickému odhalování tajných údajů commitnutých do repozitářů.

# Add secret scanning as a pre-commit hook
# .pre-commit-config.yaml
repos:
  - repo: https://github.com/Yelp/detect-secrets
    hooks:
      - id: detect-secrets

Rychlé postupy sdílení s LOCK.PUB

Zde jsou šablony postupů pro nejčastější situace ve vývojových týmech.

Zaškolení nového člena týmu

Když nastoupí nový vývojář, předejte mu všechny potřebné proměnné prostředí najednou.

  1. Shromážděte všechny proměnné prostředí do jedné tajné poznámky
  2. Nastavte platnost 24 hodin (Pro)
  3. Sdílejte odkaz a heslo
  4. Po uplynutí platnosti se poznámka přestane otevírat – kolega mezitím potvrdí, že ji převzal

Sdílení klíčů s externími partnery

Sdílení API klíčů s externími dodavateli vyžaduje zvláštní opatrnost.

  1. Vydejte klíč určený výhradně pro daného partnera
  2. Předejte ho tajnou poznámkou s krátkou platností (Pro)
  3. Požádejte partnera, aby si klíč uložil do vlastního nástroje pro správu tajných údajů
  4. Po skončení spolupráce klíč zneplatněte

Nouzové sdílení klíčů během incidentů

Když spadne server a jiný člen týmu naléhavě potřebuje přístup.

  1. Vytvořte tajnou poznámku s platností 1 hodina (Pro)
  2. Heslo sdělte telefonicky a odkaz pošlete přes messenger
  3. Po vyřešení incidentu sdílený klíč rotujte

Závěrem

Správa API klíčů a tajných údajů je základem bezpečnosti vývoje. Vkládat klíče do Slacku nebo je posílat e-mailem se může zdát pohodlné, ale jediný únik může stát tisíce, nebo dokonce miliony. Zvykněte si sdílet tajné údaje bezpečně od prvního dne.

Pokud potřebujete sdílet klíč s kolegou právě teď, zkuste tajnou poznámku.

Vytvořit tajnou poznámku ->

Vytvořit poznámku

Vytvořit poznámku

Klíčová slova

sdílení API klíčů
správa tajných klíčů
bezpečnost pro vývojáře
správa proměnných prostředí
prevence úniku klíčů
bezpečné sdílení přihlašovacích údajů
Jak bezpečně sdílet API klíče a tajné údaje s týmem | LOCK.PUB Blog