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.

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:
- Vytvořte na LOCK.PUB tajnou poznámku
- Zadejte API klíč a související kontext
- Nastavte heslo a krátkou dobu platnosti (Pro, např. 1 hodina)
- 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.
- Shromážděte všechny proměnné prostředí do jedné tajné poznámky
- Nastavte platnost 24 hodin (Pro)
- Sdílejte odkaz a heslo
- 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.
- Vydejte klíč určený výhradně pro daného partnera
- Předejte ho tajnou poznámkou s krátkou platností (Pro)
- Požádejte partnera, aby si klíč uložil do vlastního nástroje pro správu tajných údajů
- 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.
- Vytvořte tajnou poznámku s platností 1 hodina (Pro)
- Heslo sdělte telefonicky a odkaz pošlete přes messenger
- 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 poznámku
Vytvořit poznámkuKlíčová slova
Mohlo by se vám také líbit
Jak bezpečně sdílet SSH klíče a certifikáty s týmem
SSH klíče dávají plný přístup k serveru. Proč je neposílat přes Slack či e-mail a jak klíč bezpečně předat jednou tajnou poznámkou s vypršením platnosti.
Proč je sdílení hesel ve firemních chatech riskantní (a co dělat místo toho)
Sdílení hesel ve Slacku, Teams nebo jiných firemních messengerech přináší vážná bezpečnostní rizika. Poznejte bezpečnější způsoby, jak v práci sdílet přihlašovací údaje.
Jak bezpečně sdílet školní hesla s dětmi
Rodiče musí dětem předávat přihlašovací údaje ke školním portálům a děti sdílejí hesla se spolužáky. Poradíme, jak na to, aniž byste ohrozili bezpečnost účtů.