Bezpečnost

    Jak bezpečně poslat externistovi dočasné přihlašovací údaje k databázi

    Založte uživatele databáze s omezenými právy a koncem platnosti, heslo pošlete jednorázovým odkazem místo e-mailu, zabezpečte připojení a účet včas uzavřete.

    LinkPilot Team · Lidé, kteří vyvíjejí a provozují LinkPilot ve společnosti TetraCore, LLC · O LinkPilotu

    Externista, který má opravit import, vyladit dotaz nebo převést tabulku, k tomu obvykle potřebuje přihlašovací údaje k databázi. Riziko málokdy představuje on sám. Představují ho samotné přihlašovací údaje: vytvořené ve spěchu, širší, než úkol vyžaduje, vložené do e-mailu a funkční ještě půl roku poté, co byla faktura zaplacena.

    Řešením je krátká rutina. Rozhodněte, zda je přímý přístup do databáze vůbec potřeba, vytvořte uživatele s omezenými oprávněními a předem daným koncem platnosti, pošlete heslo přes jednorázový tajný odkaz místo zprávy, která si ponechává kopie, zabezpečte síťovou cestu a po dokončení práce účet uzavřete. Tento návod prochází jednotlivé kroky a tam, kde to pomůže, uvádí přesné příkazy.

    Potřebuje externista přímý přístup do databáze?

    Začněte úkolem, ne požadavkem. „Opravit import“ může znamenat čtení jedné tabulky, ale také zápis do poloviny schématu. Zeptejte se, o jakou operaci jde, v jakém prostředí a které tabulky se jí týkají, a pak hledejte levnější způsob, jak ji umožnit.

    • Stagingová databáze s nedávnou anonymizovanou kopií pokryje většinu diagnostiky i migrací a nevystaví žádné skutečné záznamy zákazníků.
    • Aplikační nebo administrátorské API často stačí, když externista potřebuje měnit data, a ne schéma.
    • Replika pro čtení dává analýze, která jen čte, místo, kde může běžet, aniž by se dotkla primární databáze.

    Pokud nic z toho nevyhovuje a produkčnímu přístupu se nejde vyhnout, zapište jednou větou proč. Tato poznámka poslouží jako zdůvodnění, až bude někdo přístup později prověřovat.

    Vytvořte uživatele s omezenými oprávněními a pevným koncem

    Nikdy nepředávejte sdílené přihlašovací údaje ani údaje zaměstnance. Díky samostatnému uživateli uvidíte, co externista dělal, omezíte, k čemu se dostane, a odeberete ho, aniž byste ovlivnili kohokoli dalšího. Konec platnosti nastavte uživateli hned při vytvoření, aby přístup skončil, i když na to zapomenete.

    V PostgreSQL vypadá uživatel, který smí číst jen dvě tabulky a k pevnému datu přestane fungovat, takto:

    CREATE ROLE contractor_jo LOGIN PASSWORD 'generated-elsewhere'
      VALID UNTIL '2026-11-08 18:00+00';
    GRANT CONNECT ON DATABASE app TO contractor_jo;
    GRANT USAGE ON SCHEMA public TO contractor_jo;
    GRANT SELECT ON orders, order_items TO contractor_jo;
    

    MySQL má CREATE USER ... PASSWORD EXPIRE INTERVAL 14 DAY a spravované služby jako RDS, Cloud SQL a Supabase umožňují totéž ve své konzoli nebo pomocí krátkodobých tokenů založených na IAM. Použijte to, co vaše platforma podporuje, a heslo nechte vygenerovat správce hesel, místo abyste nějaké vymýšleli.

    Přidělte nejmenší sadu oprávnění, se kterou jde zadaný úkol dokončit. U diagnostiky to znamená SELECT na konkrétních tabulkách. U migrace zápis do objektů, které se budou měnit, a nic dalšího. Role vlastníka nebo superuživatele nejsou pro dočasný účet nikdy správná volba.

    Jak poslat externistovi dočasné přihlašovací údaje k databázi

    Heslo je jediná část předání, která musí zůstat tajná. Hostitel, port, název databáze a uživatelské jméno se útočníkovi hodí, ale samy nestačí, takže mohou putovat běžnou zprávou. Držte obě části odděleně.

    1. Ověřte příjemce kanálem, kterému už důvěřujete, například v e-mailové konverzaci ke smlouvě nebo telefonátem. Podobně vypadající adresy jsou častou cestou, jak se přihlašovací údaje dostanou do nesprávné e-mailové schránky.
    2. Vytvořte jednorázový tajný odkaz jen s heslem. V LinkPilotu se text zašifruje ve vašem prohlížeči ještě před uložením, uložená kopie se zničí při prvním otevření odkazu a vypršení platnosti můžete zvolit na hodinu, 24 hodin nebo sedm dní. V tarifu Pro můžete nastavit vlastní vypršení platnosti, přidat heslovou frázi a v časové ose auditu vidět, kdy byl odkaz otevřen.
    3. Pošlete odkaz v běžné konverzaci s jednořádkovou poznámkou, k čemu slouží a kdy vyprší. Uživatelské jméno do stejné zprávy jako odkaz nedávejte.
    4. Údaje pro připojení pošlete zvlášť: hostitel, port, databáze, uživatelské jméno a zda je povinné TLS. Stačí druhý e-mail nebo komentář v tiketu, protože nic z toho samo o sobě tajné není.
    5. Heslovou frázi předejte jiným kanálem, pokud jste ji nastavili, například textovou zprávou nebo telefonicky.
    6. Požádejte externistu o potvrzení, že se odkaz otevřel. Pokud odkaz hlásí, že už byl zobrazen, a externista ho neotevřel, považujte heslo za vyzrazené a změňte ho.

    Funkce sdílení ve správci hesel je rozumná alternativa, pokud externista už má přístup do vašeho trezoru. U jednorázové zakázky se jednorázovým odkazem vyhnete zakládání účtu jen kvůli předání jedné hodnoty. Kdy se hodí které řešení, popisuje článek Tajné odkazy vs. správci hesel.

    Zabezpečte připojení

    Dobře omezený uživatel na otevřeném portu je pořád problém. Většinu rizika odstraní tři opatření.

    • Vyžadujte TLS u připojení a řekněte externistovi, ať ve svém klientovi nastaví sslmode=require nebo ekvivalent. Mnoho klientů bez upozornění přejde na nešifrované spojení, pokud to nevynutíte.
    • Omezte zdroj připojení seznamem povolených IP adres, VPN nebo bastion hostem. Povolení adresy externisty na dobu práce se rychle nastaví a rychle odebere.
    • Sdílejte jen to, co úkol vyžaduje. Externista nepotřebuje schéma vnitřní sítě, ostatní databáze na serveru ani URL administrátorské konzole.

    Pokud vaše platforma místo statických hesel nabízí krátkodobé tokeny IAM, je to obvykle lepší volba a předání hesla úplně odpadne.

    Sledujte účet a pak ho uzavřete

    Ještě před začátkem práce zapněte pro nového uživatele logování přihlášení a dotazů, abyste mohli porovnat, co se stalo, s tím, co bylo dohodnuto. Přihlášení v neobvyklou hodinu nebo dotazy na nesouvisející tabulky stojí za otázku, ne za obvinění.

    Když úkol skončí nebo se změní jeho rozsah, udělejte ještě týž den čtyři věci:

    1. Smažte nebo deaktivujte uživatele a ověřte, že se už nemůže připojit.
    2. Odeberte síťovou výjimku, kterou jste pro externistu přidali.
    3. Změňte každý tajný údaj, který putoval spolu s přístupem, například heslo aplikace, které bylo ve stejném tiketu.
    4. Zaznamenejte předání: kdo měl přístup, k čemu, odkdy dokdy a proč. Uchovejte záznam, ne heslo.

    Dočasný přístup, který je omezený, má konec platnosti, byl předán jednou a včas uzavřen, není bezpečnostní výjimka. Takhle má přístup externistů normálně fungovat.

    Nástroje k tomuto článku

    Časté dotazy

    LinkPilot pošle tajný odkaz, který po otevření zmizí.

    Zašifruje se ve vašem prohlížeči, zobrazí se jednou a pak se zničí. Bez účtu.

    Vytvořit tajný odkaz

    Čtěte dál