Pavyzdys Įmonė išgalvota, skaičiai iliustraciniai. Taip atrodo ataskaita, kurią gaunate po dviejų–trijų dienų infrastruktūros peržiūros.
Infrastruktūros peržiūros ataskaita
Internetinė parduotuvė · 8 kūrėjai · DigitalOcean, 3 serveriai
Ką peržiūrėjau
- Debesies paskyrą: serverius, duomenų bazę, failų saugyklą, ugniasienes ir sąskaitas — su prieiga konfigūracijai peržiūrėti, be prieigos prie duomenų.
- GitHub organizaciją: repozitorijas, narius ir tai, kaip kodas patenka į produkciją.
- Serverių konfigūraciją ir tai, kur bei kiek laiko saugomi logai.
- Pokalbį su komandos vadovu ir kūrėju, kuris diegia.
Santrauka vadovui
Trys svarbiausios rizikos
- Duomenų bazės kopija laikoma tame pačiame serveryje kaip pati duomenų bazė. Sugedus serveriui, neliktų nei vienos, nei kitos.
- Du buvę rangovai vis dar turi prieigą prie debesies ir kodo — gali ištrinti serverius, nors su jumis nebedirba.
- Į produkciją diegia vienas žmogus iš savo kompiuterio, su raktu, kuris atveria visus serverius.
- Ar atkūrimas iš atsarginių kopijų kada nors buvo išbandytas?
- Įrodymų nerasta: nėra nei aprašytos tvarkos, nei bandomųjų atkūrimų pėdsakų, o komanda neprisimena, kad būtų bandžiusi.
- Kur permokate už debesį?
- Apie 70 € per mėnesį: testavimo serveris veikia visą parą, du diskai nepriskirti jokiam serveriui, o seni snapshot’ai niekada netrinami.
Rizikos pagal svarbą
Prie kiekvienos — ką radau, kas gali nutikti ir kuris iš šešių darbų ją sutvarko.
- Kritinė
- duomenis ar pinigus galima prarasti dėl vieno gedimo arba žmogaus, kuris prieigą jau turi.
- Aukšta
- žala įmanoma, jei nutiks dar kas nors: sutriks svetainė, išeis žmogus, nutekės slaptažodis.
- Vidutinė
- tiesioginės žalos nėra, bet atsistatyti po gedimo užtruktų ilgiau, o spragos kaupiasi.
- Žema
- permokami pinigai, rizikos nėra.
-
Kritinė
Duomenų bazės kopija tame pačiame serveryje
- Ką radau
-
PostgreSQL veikia atskirame serveryje, o naktinė kopija (
pg_dump) rašoma į to paties serverio diską. Kitur kopijos nėra. - Kas gali nutikti
- Sugedus diskui ar per klaidą ištrynus serverį, prarandama ir duomenų bazė, ir kopija. Net kai kopija sveika, dingsta iki paros užsakymų.
- Kuris darbas
- Infrastruktūra kaip kodas
-
Kritinė
Buvę rangovai vis dar turi prieigą
- Ką radau
- Du buvę rangovai tebėra debesies komandoje ir GitHub organizacijoje. Dviejų veiksnių autentifikacija GitHub’e neprivaloma.
- Kas gali nutikti
- Jie patys arba kas nors, pavogęs jų slaptažodį, gali ištrinti serverius ar nusikopijuoti kodą — ir niekas to nepastebėtų.
- Kuris darbas
- Atskiro darbo nereikia: jūsų administratorius gali juos išimti ir įjungti privalomą dviejų veiksnių autentifikaciją.
-
Aukšta
Diegiama iš vieno kompiuterio
- Ką radau
-
Diegimo scenarijus ir SSH raktas yra tik vieno kūrėjo kompiuteryje. Tas pats
raktas jungiasi prie visų serverių kaip
root. - Kas gali nutikti
- Tam žmogui atostogaujant ar išėjus, pataisos niekas neišleidžia. Dingus jo kompiuteriui, raktas atveria visus serverius.
- Kuris darbas
- CI/CD grandinė
-
Aukšta
Slaptažodžiai repozitorijoje
- Ką radau
-
Failas
.envsu duomenų bazės slaptažodžiu ir mokėjimų tiekėjo API raktu yra git istorijoje. Repozitoriją mato visi 8 kūrėjai. - Kas gali nutikti
- Nutekėjus bet kurio kūrėjo paskyrai ar kompiuteriui, atsiveria duomenų bazė ir mokėjimai. Ištrynus failą, istorija raktų nepamiršta — juos reikia pakeisti.
- Kuris darbas
- Paslapčių tvarkymas
-
Aukšta
Duomenų bazė pasiekiama iš interneto
- Ką radau
- Ugniasienė leidžia jungtis prie PostgreSQL prievado iš bet kurio IP adreso. Ją saugo tik slaptažodis — tas pats, kuris yra repozitorijoje.
- Kas gali nutikti
- Kas turi slaptažodį, prie duomenų bazės prisijungia iš bet kur, ne tik iš jūsų serverių.
- Kuris darbas
- Infrastruktūra kaip kodas
-
Aukšta
Apie gedimus sužinoma iš klientų
- Ką radau
- Svetainės niekas netikrina iš išorės, aliarmų nėra. Logai guli kiekvieno serverio diske ir po 7 dienų ištrinami.
- Kas gali nutikti
- Parduotuvė gali neveikti valandomis, kol kas nors pastebi. Po savaitės nebeįmanoma išsiaiškinti, kas nutiko.
- Kuris darbas
- Logai ir stebėsena
-
Vidutinė
Serveriai sukonfigūruoti rankomis
- Ką radau
- Nginx ir sistemos nustatymai keisti tiesiai serveriuose ir niekur neaprašyti. Testavimo aplinkoje — kita PostgreSQL versija nei produkcijoje.
- Kas gali nutikti
- Sugedusio serverio greitai neatkursite — niekas nežino, kas jame keista. Dalis klaidų išlenda tik produkcijoje.
- Kuris darbas
- Infrastruktūra kaip kodas
-
Vidutinė
Nebepalaikoma operacinė sistema
- Ką radau
- Visuose serveriuose Ubuntu 20.04 — standartinis jos palaikymas jau baigėsi.
- Kas gali nutikti
- Saugumo pataisos nebeateina, nebent įjungtas išplėstinis palaikymas.
- Kuris darbas
- Infrastruktūra kaip kodas
-
Žema
Permoka už debesį
- Ką radau
- Testavimo serveris veikia visą parą, du diskai nepriskirti jokiam serveriui, 14 senų snapshot’ų niekada netrinami.
- Kas gali nutikti
- Apie 70 € per mėnesį mokama už tai, kuo niekas nesinaudoja.
- Kuris darbas
- Atskiro darbo nereikia — sutvarkoma kartu su pirmu darbu.
Ko nesiūlau
Kubernetes jums šiuo metu nereikia. Trims serveriams ir aštuoniems kūrėjams užtenka dabartinio Docker Compose — tik diegiamo per CI/CD, o ne iš kompiuterio. Prie šio klausimo verta grįžti, kai servisų paleidimas ir atnaujinimas vėl taps rankiniu darbu.
Ko nepatikrinau
- Mokėjimų ir el. laiškų siuntimo paslaugų paskyrų — prieigos prie jų nebuvo.
- DNS tiekėjo paskyros — ją valdo buvęs rangovas, prieigą reikia atsiimti.
- Pačios programos kodo saugumo — ši peržiūra jo nevertina.
Nuo ko pradėti
- Iškart, be manęs: jūsų administratorius išima buvusius rangovus, įjungia privalomą dviejų veiksnių autentifikaciją ir atsiima DNS paskyrą.
- Pirmas darbas — duomenų bazės kopijos kitoje vietoje ir išbandytas atkūrimas („Infrastruktūra kaip kodas“).
- Toliau — slaptažodžiai iš repozitorijos („Paslapčių tvarkymas“) ir diegimas per CI/CD, o ne iš vieno kompiuterio.