Kitengo 6 / 11

Usimamizi wa Miundombinu kama Kanuni (IaC): Udhibiti wa Mfumo wa Hali ya Juu, Unaofaa na Mpango

Faida:

  • Uwezo wa kutoa msimbo wa IaC (Terraform, Ansible) na akili ya bandia yenye ruhusa finyu na chaguo-msingi salama na kuelewa mbinu ya kutangaza.
  • Uwezo wa kuzuia upotezaji wa data kwa kusoma na kunasa kufuta na kulazimisha laini za uingizwaji kabla ya kutumia mpango/angalia matokeo.
  • Uwezo wa kuzuia uvujaji wa siri kwa kuweka faili ya serikali iliyosimbwa, imefungwa, kwenye sehemu ya nyuma ya mbali na kuvunja mabadiliko katika hatua ndogo, zinazoweza kubadilishwa.

Usimamizi wa Miundombinu kama Kanuni (IaC): Udhibiti wa Hali ya Mazingira, Unaofaa na Mpango na AI

Katika siku za nyuma, kuanzisha seva ilifanyika kwa kubofya kwa mwongozo, amri, na maelezo ya kibinafsi; Matokeo yake yalikuwa seva za "snowflake" zisizoweza kuzalishwa ambazo hakuna mtu aliyejua jinsi ya kusanidi. Miundombinu kama Kanuni (IaC) ni mbinu ambayo inamaliza machafuko haya: seva, mitandao, sheria za usalama hazifafanuliwa kwa mkono, lakini kwa faili za maandishi zinazoweza kubadilishwa (msimbo). Unapotumia msimbo huu, miundombinu huwekwa kama ulivyoiandika - sawa, kurekodiwa, na kurudiwa kila wakati. Zana za kawaida ni Terraform na CloudFormation kwa miundombinu ya wingu na Yanafaa kwa usanidi wa seva. Hapa AI ni ustadi sana wa kuandika, kuelezea na kukagua nambari hii ya IaC. Lakini nguvu ya IaC pia ni hatari yake: mstari mmoja mbaya unaweza kufuta miundombinu yote; kwa hivyo AI huandika msimbo, unasoma "mpango", uidhinishe na utekeleze.

Katika kitengo hiki, tutajadili mkabala wa kutangaza, tofauti ya mpango/tumia, usalama wa serikali na kutokuwa na uwezo; Utajifunza kizazi cha IaC na AI na ustadi muhimu zaidi, "udhibiti wa mpango".

Kufikiria kwa kutangaza: "vipi ikiwa", sio "jinsi ya kufanya"

Zana nyingi za IaC ni za kutangaza: unaelezea hali ya mwisho ya mfumo ("hebu tuseme seva 3 za wavuti, kisawazisha 1 cha mzigo"), zana yenyewe huhesabu jinsi ya kufikia hali hiyo. Hii ni tofauti na kuandika hati ("fanya hivi, kisha fanya vile" hatua kwa hatua). Faida kubwa ya mbinu ya kutangaza ni idempotency: hata ikiwa unaendesha msimbo mara kumi, matokeo ni sawa, kwa sababu chombo kinakagua ili kuona ikiwa hali inayotakiwa tayari iko, na ikiwa inafanya, haiigusa. Kumbuka tofauti hii unapoandika IaC kwa AI: unaifanya kusema "acha hali hii ya miundombinu", sio "endesha amri hizi".

Panga/tuma maombi: matusi muhimu zaidi ya usalama

Kipengele cha kuokoa maisha cha IaC ni hatua ya mpango. Katika Terraform, terraform plan, katika Ansible, --check mode hutoa hakikisho la "nini kitabadilika nikiitumia" kabla ya kuendesha msimbo: "rasilimali 2 zitaongezwa, 1 itabadilika, 0 itafutwa". Hii ndio njia pekee ya kulinganisha nia yako na ukweli kabla ya utekelezaji. Kanuni muhimu: usiwahi kuomba bila kusoma mpango. Angalia hasa kwa mistari ya "kuharibu"; Ukiona "12 itafutwa" badala ya "1 itabadilishwa" kwa sababu ya makosa ya kuandika, mpango huo umekuokoa kutokana na maafa. Baada ya kuchapisha msimbo kwa AI, iambie "chunguza mstari wa matokeo ya mpango kwa mstari na mimi, alama kila mstari ambao una kufuta / burudani."

Tahadhari: Baadhi ya mabadiliko ya Terraform "kuharibu na kuunda upya" rasilimali badala ya "kusasisha mahali". Hii inamaanisha upotezaji wa data kwa hifadhidata. Kupuuza -/+ au "ubadilishaji wa nguvu" katika matokeo ya mpango ni mojawapo ya makosa ya gharama kubwa zaidi.

Faili ya serikali: rekodi ya siri na ukweli

Zana kama Terraform huweka hali ya sasa ya miundombinu wanayosimamia katika faili ya serikali. Faili hii ni muhimu kwa sababu mbili. Kwanza, inaweza kuwa na siri (nenosiri za hifadhidata, funguo zinaweza kuanguka katika hali kwa maandishi wazi); Kwa hivyo, usiwahi kubandika hali kwenye hazina ya umma au AI, iweke katika mazingira ya nyuma yaliyosimbwa na yenye vikwazo vya ufikiaji. Pili, ikiwa serikali imeharibiwa au kupotea, gari hupoteza kiungo kati ya miundombinu halisi na miundombinu inayofikiriwa; Kwa hiyo, chelezo ya hali na utaratibu wa kufuli (kufuli ambayo inazuia watu wawili kuivunja kwa wakati mmoja) ni muhimu.

Hatua kwa hatua: Salama IaC na AI

  1. Nia ya serikali na mtoaji. "Seva 2 kwenye AWS, na Terraform, katika eneo hili, saizi hii, na kikundi cha usalama." Ikiwa wingu, zana, na toleo ni wazi, AI hutoa syntax sahihi.
  2. Omba chaguomsingi za usalama. "Fungua kikundi cha usalama, wezesha usimbaji fiche, toa siri ili zibadilishwe, toa ufikiaji wa umma." AI inaweza kutoa sampuli huru kwa chaguo-msingi.
  3. Soma na uelewe kanuni. Kuelewa kila rasilimali, kila ruhusa, mstari kwa mstari. Usitumie ruhusa ambayo huelewi.
  4. Pata mpango na uikague. Endesha mpango/--angalia, chunguza matokeo na AI, weka alama kwenye kufuta na ujenge upya mistari.
  5. Omba ndogo na inayoweza kubadilishwa. Tekeleza mabadiliko makubwa katika vipande vidogo, sio mara moja. Jua njia ya kurudi katika kila hatua.
  6. Linda Jimbo. Tumia backend ya mbali, iliyosimbwa na kufuli; Usiwahi kuvuja hali.

kesi tatu ndogo

Kesi ya 1 - Mpango ulipata hifadhidata. Mhandisi alitaka kuongeza ukubwa wa hifadhidata kwa kutumia msimbo wa Terraform aliotengeneza na AI. Wakati alitarajia "1 kubadilika" katika matokeo ya mpango wa terraform, aliona "1 kuharibu, 1 kuongeza" - kigezo alichochagua kilikuwa kikianzisha uundaji upya, sio sasisho la mahali, ikimaanisha kwamba data yote itafutwa. Udhibiti wa mpango ulisimamisha upotevu wa data usioweza kutenduliwa kabla haujatekelezwa.

Kesi ya 2 - Rudi kutoka kwa chaguo-msingi huru. Timu iliuliza AI msimbo wa ngome. Ili kutekeleza mfano, AI ilitoa sheria rahisi ya 0.0.0.0/0, ikimaanisha "umma kwenye wavuti". Mhandisi aligundua hili alipokuwa akisoma msimbo na akapunguza ufikiaji wa anuwai ya IP ya biashara pekee. Ikiwa ingetekelezwa bila kukaguliwa, hifadhidata ingekuwa wazi kwa mtandao mzima.

Kesi 3 - Uvujaji wa serikali umezuiwa. Mwanachama mdogo alikuwa karibu kubandika faili ya terraform.tfstate katika zana ya umma ili kutatua suala la Terraform. Mhandisi mkuu alisimama: hali ilikuwa na nenosiri la hifadhidata ya maandishi plain. Badala yake, muhtasari uliosimbwa unaoelezea tatizo ulishirikiwa na hali ilihamishiwa kwenye mazingira ya nyuma yaliyosimbwa kwa mbali.

Violezo vinne vinavyoweza kunakiliwa

1) Uzalishaji wa rasilimali ya IaC (chaguo-msingi salama):

Jukumu lako: mhandisi mkuu wa miundombinu ya wingu. [Wingu, k.m. AWS] kwa[zana, k.m. Terraform] tengeneza nambari. Kusudi: [kusudi].Sheria za usalama: ufikiaji wa umma (0.0.0.0/0) FUNGUA; anza kwa ruhusa finyu zaidi; washa usimbaji fiche; toa siri katika vigeu, usizipachike kwenye msimbo; Angalia mipangilio ambayo inaweza kusababisha kufutwa/kuburudisha. Eleza kila chanzo kwa maoni mafupi.

2) Panga ukaguzi wa matokeo:

Ifuatayo ni matokeo ya [Terraform plan/Ansible check]. Niambie: (1) ni rasilimali ngapi zitaongezwa/kubadilishwa/kufutwa, (2) pia weka alama kwenye mistari ya "haribu" au "lazimisha uingizwaji" ambayo inahatarisha kupoteza data, (3) orodhesha mabadiliko yoyote ambayo yanaonekana kuwa yasiyotarajiwa au hatari. Pato: [mpango]

3) Ukaguzi wa usalama wa msimbo wa IaC:

Chunguza msimbo ufuatao wa IaC kwa ajili ya usalama: (1) kuna ufikiaji/ruhusa pana zaidi, (2) usimbaji fiche umezimwa, (3) je, kuna siri zilizopachikwa kwenye msimbo, (4) je, kuna rasilimali zinazopatikana kwa umma? Pendekeza marekebisho kwa kila matokeo. Msimbo: [msimbo uliofichwa]

4) Gawanya mabadiliko katika sehemu salama:

Sitaki kutekeleza mabadiliko haya makubwa ya miundombinu [maelezo] mara moja. Igawanye katika hatua ndogo, huru ambazo ni rahisi kurejea. Kwa kila hatua: ni mabadiliko gani, ninapaswa kuzingatia nini katika mpango, nifanyeje ikiwa kuna matatizo?

Mwongozo dhaifu / Mwongozo thabiti

Agizo dhaifu:

Andika msimbo wa Terraform ambao huunda seva kwenye AWS.

Eneo, saizi, usalama, mtandao, usimbaji fiche haziko wazi. AI huzalisha chaguo-msingi zilizo huru zaidi, zilizo wazi zaidi ili kufanya kazi - ikiwa itawekwa katika uzalishaji, inaweza kuwa hatari.

Agizo lenye nguvu:

Jukumu lako: mhandisi mkuu wa miundombinu ya wingu. Fafanua seva ya wavuti na Terraform kwenye AWS eu-central-1: t3.small, tu kutoka kwa anuwai ya IP ya kampuni (nitaitoa kwa kutofautisha), bandari 443 imefunguliwa, diski imesimbwa, hakuna ufikiaji wa umma, lebo ni za lazima. Siri zinafunuliwa kwa kutofautiana. Baada ya nambari: Kabla ya kuitekeleza, niambie aina 3 za mstari ninazopaswa kuzingatia katika mpango na kuelezea njia ya kurudi.

Jukwaa

Hatari

matusi ya usalama

kanuni ya kuandika

Chaguo-msingi huru (ya umma)

Ruhusa finyu zaidi + soma

panga/angalia

Inafuta bila kujua

Mpango wa ukaguzi, kuharibu kuashiria

Omba

Mabadiliko makubwa ya mara moja

Hatua ndogo, zinazoweza kugeuzwa

utawala wa serikali

Kuvuja kwa glaze, kupotosha

Mazingira ya nyuma yaliyosimbwa kwa mbali + kufuli

Makosa ya kawaida

  • Kuomba bila kusoma mpango. Mpango huo unaonyesha kufutwa na ujenzi upya; Ikirukwa, upotezaji wa data hauepukiki.
  • Bila kugundua chaguo-msingi huru. Matukio ya AI mara nyingi huzalisha 0.0.0.0/0; Ikiwa itahamishwa kwa uzalishaji, inamaanisha chanzo wazi kwa mtandao mzima.
  • Jimbo linalovuja. Kuhamisha faili ya serikali kwa AI au hazina wazi hufichua siri za maandishi wazi.
  • Kupachika siri katika msimbo. Kuandika nenosiri katika msimbo wa IaC ni uvujaji unaoendelea katika historia ya toleo la msimbo.
  • Inakosea uundaji upya kwa sasisho. Kupuuza mstari wa kubadilisha nguvu kutasababisha upotezaji wa data katika hifadhidata.
Kidokezo: Hata unapotoa matokeo ya mpango kwa AI ili ikague, fanya uamuzi wa mwisho kwa ujuzi wako mwenyewe, si maandishi ya mpango. AI inatoa muhtasari wa mpango na kuashiria mistari hatari; lakini jibu la swali "je ufutaji huu unakubalika" inategemea muktadha wa biashara yako.

Kwa muhtasari

IaC huleta kurudiwa na uhifadhi wa hati kwa kudhibiti miundombinu yenye msimbo unaoweza kubadilishwa badala ya kubofya mwenyewe. AI ni mshirika mwenye nguvu katika kuandika nambari hii, kuielezea, na kuikagua kwa usalama. Lakini nguvu ya IaC ni hatari yake: mstari mmoja unaweza kufuta miundombinu yote. Fikiria kutangaza, anza na ruhusa finyu zaidi, rekebisha chaguo-msingi zilizolegea, weka siri nje ya kanuni na hali. Mlinzi muhimu zaidi ni hatua ya mpango/angalia: usiwahi kutekeleza bila kusoma mistari ya kufuta na kuunda upya. Weka Jimbo kwa njia fiche, imefungwa na ukiwa mbali. Nambari ni ya AI, uamuzi ni wako.

Jukumu la maombi

Chagua lengo dogo la miundombinu (kwa mfano, mashine moja pepe na sheria ya usalama). Ukiwa na kiolezo cha "kizalisha rasilimali cha IaC" hapo juu, uliza AI msimbo wenye chaguo-msingi salama. Angalia msimbo mara mbili kwa kiolezo cha "Mapitio ya usalama ya msimbo wa IaC" na ujaribu kutafuta angalau mpangilio mmoja ambao haujalegea. Ikiwezekana, endesha mpango/--angalia akaunti ya jaribio na ukague matokeo kwa kiolezo cha "Panga ukaguzi wa matokeo"; Angalia ikiwa kuna mstari wa kufuta au kuunda upya. Andika matokeo yako na jinsi utakavyolinda jimbo katika pointi 6.

orodha ya ukaguzi

  • [ ] Je, nilibainisha wingu, zana na toleo kwa AI na kuomba msimbo wenye vibali finyu zaidi?
  • [ ] Je, nimeangalia msimbo kwa chaguo-msingi huru (0.0.0.0/0, usimbaji fiche uliofungwa)?
  • [ ] Je, nimetoa siri za kutofautisha badala ya kuzipachika kwenye msimbo?
  • [ ] Je, nilisoma mpango/kuangalia matokeo na kuweka alama kwenye mistari ya kufuta kabla ya kutuma maombi?
  • [ ] Je, nimetathmini athari ya kupoteza data ya "ubadilishaji wa nguvu" / kuunda upya mistari?
  • Je, sikuiweka [ ] faili ya Jimbo ikiwa imesimbwa kwa njia fiche, imefungwa, katika sehemu ya nyuma ya mbali na kuivuja?