Dodávateľ potrebuje jeden súkromný repozitár pre obmedzený projekt a žiadosť prichádza buď ako «sprístupnite repozitár verejne», alebo ako «dajte im prístup cez VPN». Obe odpovede obchádzajú skutočnú otázku. Autorizácia repozitára a sieťový vstup sú oddelené vrstvy a oprávnenie, na ktorom záleží, je to, ktoré tejto osobe umožní čítať alebo pushovať do tohto jedného repozitára. Všetko ostatné v ktoromkoľvek balíku je riziko navyše. Najprv navrhnite autorizačnú vrstvu, potom rozhodnite, koľko málo sieťovej cesty potrebuje.

Ilustratívna zákazka to skonkretizuje: jeden externý vývojár, jeden repozitár, žiadne produkčné hosty, žiadne administratívne rozhranie. Držte tento rozsah pevný, kým porovnávate vstupy.

Dva vstupy, dve rôzne hranice

Verejne dostupná služba repozitára stále vynucuje autentifikáciu HTTPS alebo SSH a autorizáciu aplikácie. Verejná dostupnosť neznamená anonymnú čitateľnosť. Cenou je listener, ktorý musíte udržiavať, monitorovať a záplatať.

Vstup cez VPN môže tento listener držať mimo verejnej cesty, ale široký účet VPN môže odhaliť nesúvisiace služby. Zvyšné verejné meno hostiteľa, listener SSH alebo zabudnutá rodina adries môžu zničiť hranicu iba cez VPN, o ktorej ste si mysleli, že ju máte. Preto návrh iba cez VPN potrebuje inventár listenerov, nielen pravidlo firewallu.

Porovnávajte povolené cesty, nie štítky. V každom prípade ponechajte autentifikáciu aplikácie a bežné overenie identity servera.

Roly v repozitári sú jednotkou oprávnenia

Dajte dodávateľovi individuálnu identitu s najmenšou rolou, ktorá úlohu dokončí. Prehliadanie, pushovanie, údržba a správa sú rôzne roly a skupina, ktorá prideľuje každý interný projekt, nie je to isté ako prístup k jednému repozitáru. Skontrolujte skutočné názvy rolí vo svojej platforme, namiesto toho, aby ste predpokladali, že názov skupiny zodpovedá jednej role.

Vymenujte každú operáciu, ktorú zákazka skutočne potrebuje. Prístup z prehliadača a prenos Git môžu používať rôzne prihlasovacie údaje alebo listenery. Automatizované buildy, sťahovanie balíkov a webhooky môžu bežať ako samostatné identity s vlastnými cestami doručenia a VPN na notebooku ich neprepojí.

Ochrana obsahu repozitára je samostatná práca. Zmena vstupnej cesty neodstráni tajomstvo, ktoré už je v histórii, neobmedzí autorizovaný klon ani nezabezpečí pracovnú stanicu prispievateľa.

Prihlasovacie údaje, ktoré prežijú človeka

Odchod je miesto, kde sa prístup k repozitáru a sieťový prístup znova rozchádzajú. Odstráňte autorizáciu repozitára a nárok na VPN prostredníctvom ich vlastníkov, potom skontrolujte osobné tokeny, SSH kľúče, prihlasovacie údaje automatizácie a aktívne relácie. Nasadený kľúč je klasický prežívajúci: môže si ponechať nastavený prístup na čítanie alebo zápis po tom, čo osoba opustí organizáciu. Odstránenie zo zoznamu členov nie je úplný odchod.

Zinventarizujte strojové prihlasovacie údaje podľa vlastníka a účelu pred koncom zákazky, nie po ňom. Token vytvorený pre týždňový build môže projekt prežiť o rok, ak nikto nezapísal, prečo existuje.

Overte operáciu, odmietnutie aj odchod

Pred odovzdaním otestujte tri veci: povolená operácia s repozitárom uspeje, nesúvisiaci repozitár je odmietnutý a vyradená identita zlyhá. Ak je návrh iba cez VPN, potvrďte, že stará priama verejná cesta už operáciu nedokáže vykonať.

Uchovajte kód aj záznamy o revíziách, ale nedovoľte, aby sa zabudnutý prístup stal plánom obnovy. Písomný zoznam identít, rolí a dátumov expirácie je to, čo robí z ďalšej žiadosti dodávateľa opakovateľný proces.

Súvisiace články