Eining 6 / 11

Stjórnun innviða sem kóða (IaC): Terraform, Ansible og Plan Control

Hagnaður:

  • Geta til að framleiða IaC (Terraform, Ansible) kóða með gervigreind með þrengstu heimildum og öruggum vanskilum og skilja yfirlýsingaraðferðina
  • Geta til að koma í veg fyrir tap á gögnum með því að lesa og fanga eyðingu og þvinga út skiptilínur áður en áætluninni er beitt/athugað framleiðsla
  • Geta til að koma í veg fyrir leynilegan leka með því að halda ríkisskránni dulkóðuðu, læstri, í ytri bakendanum og skipta breytingum í lítil, afturkræf skref

Stjórnun innviða sem kóða (IaC): Terraform, Ansible og Plan Control með gervigreind

Áður fyrr var uppsetning netþjóns gerð með handvirkum smellum, skipunum og persónulegum athugasemdum; Niðurstaðan var óafturkallanlegir „snjókorna“ netþjónar sem enginn vissi nákvæmlega hvernig ætti að setja upp. Infrastructure as Code (IaC) er nálgunin sem bindur enda á þennan glundroða: netþjónar, net, öryggisreglur eru ekki skilgreindar með höndunum, heldur með útgáfuhæfum textaskrám (kóða). Þegar þú keyrir þennan kóða er innviðinn settur upp nákvæmlega eins og þú skrifaðir hann - sá sami, skjalfestur og endurtekinn í hvert skipti. Algengustu verkfærin eru Terraform og CloudFormation fyrir skýjainnviði og Ansible fyrir uppsetningu miðlara. Hér er gervigreind mjög fær í að skrifa, útskýra og endurskoða þennan IaC kóða. En kraftur IaC er líka hættan þess: ein röng lína getur þurrkað út heilan innviði; svo gervigreindin skrifar kóða, þú lest „áætlunina“, samþykkir hana og framkvæmir hana.

Í þessari einingu munum við ræða yfirlýsingaraðferðina, áætlun/beita aðgreiningu, ríkisöryggi og getuleysi; Þú munt læra IaC kynslóð með gervigreind og mikilvægustu hæfileikana, "áætlunarstjórnun".

Að hugsa með yfirlýsandi hætti: "hvað ef", ekki "hvernig á að gera"

Flest IaC verkfæri eru lýsandi: þú lýsir lokastöðu kerfisins ("við skulum segja 3 vefþjónar, 1 álagsjafnari"), tólið sjálft reiknar út hvernig á að komast í það ástand. Þetta er frábrugðið því að skrifa handrit ("gerðu þetta, gerðu það síðan" skref fyrir skref). Stóri kosturinn við yfirlýsandi nálgun er vanmáttur: jafnvel þótt þú keyrir kóðann tíu sinnum, þá er niðurstaðan sú sama, vegna þess að tólið athugar hvort það ástand sem óskað er eftir sé þegar til, og ef það er það snertir það það ekki. Mundu eftir þessum mun þegar þú skrifar IaC í gervigreindina: þú lætur það segja "láttu þennan innviði standa", ekki "keyra þessar skipanir".

Skipuleggja/beita: mikilvægasta öryggishandrið

Lífsbjargandi eiginleiki IaC er áætlunarskrefið. Í Terraform, terraform plan, í Ansible, --check mode framleiðir sýnishorn af "hvað mun breytast ef ég nota það" áður en þú keyrir kóðann: "2 tilföngum verður bætt við, 1 mun breytast, 0 verður eytt". Þetta er eina leiðin til að bera saman ætlun þína við raunveruleikann fyrir framkvæmd. Mikilvæg regla: aldrei sækja um án þess að lesa áætlunina. Leitaðu sérstaklega að "eyðileggja" línunum; Ef þú sérð „12 verður eytt“ í stað „1 verður breytt“ vegna innsláttarvillu hefur áætlunin bjargað þér frá hörmungum. Eftir að hafa prentað kóðann í gervigreindina skaltu láta hann segja "skoðaðu úttak áætlunarinnar línu fyrir línu með mér, merktu við hverja línu sem inniheldur eyðingu/afþreyingu."

Varúð: Sumar breytingar á Terraform „eyðileggja og endurskapa“ auðlind frekar en að „uppfæra á sínum stað“. Þetta þýðir gagnatap fyrir gagnagrunn. Að hunsa -/+ eða "þvingar skipta" í úttak áætlunarinnar er ein af dýrustu mistökunum.

Ríkisskrá: skrá yfir leyndarmál og sannleika

Verkfæri eins og Terraform halda núverandi stöðu innviða sem þeir stjórna í ástandsskrá. Þessi skrá er mikilvæg af tveimur ástæðum. Í fyrsta lagi getur það innihaldið leyndarmál (lykilorð gagnagrunns, lyklar geta fallið í ástand í látlausum texta); Þess vegna skaltu aldrei líma ríkið í opinbera geymslu eða gervigreind, hafðu það í dulkóðuðu og aðgangstakmörkuðu ytra bakenda. Í öðru lagi, ef ríkið er spillt eða glatað, missir farartækið tengslin milli raunverulegra innviða og ímyndaðra innviða; Þess vegna er öryggisafrit af ríkinu og læsingarbúnaður (lás sem kemur í veg fyrir að tveir menn brotni það á sama tíma) nauðsynlegar.

Skref fyrir skref: Tryggðu IaC með gervigreind

  1. Áform ríkisins og veitandi. „2 netþjónar á AWS, með Terraform, á þessu svæði, í þessari stærð og öryggishópur. Ef skýið, tólið og útgáfan eru skýr framleiðir gervigreindin rétta setningafræði.
  2. Biðja um sjálfgefnar öryggisstillingar. "Opna öryggishóp, virkja dulkóðun, draga út leyndarmál til að breyta, veita almenningi aðgang." AI getur sjálfgefið búið til laus sýni.
  3. Lestu og skildu kóðann. Skilja hvert tilfang, hvert leyfi, línu fyrir línu. Ekki sækja um leyfi sem þú skilur ekki.
  4. Fáðu áætlun og endurskoðuðu hana. Keyrðu áætlun/--athugaðu, skoðaðu úttakið með gervigreind, merktu eyðingu og endurbyggðu línurnar.
  5. Berið á lítið og afturkræft. Framkvæmdu stóra breytingu í litlum hlutum, ekki öllum í einu. Þekkja leiðina til baka í hverju skrefi.
  6. Vernda ríkið. Notaðu fjarstýrðan, dulkóðaðan bakenda og læsingu; Aldrei leka ástand.

þrjú smámál

Mál 1 - Áætlunin endurheimti gagnagrunn. Verkfræðingur vildi stækka gagnagrunn með Terraform kóðanum sem hann framleiddi með gervigreind. Á meðan hann bjóst við að „1 myndi breytast“ í terraform planinu, sá hann „1 til að eyðileggja, 1 til að bæta við“ - færibreytan sem hann valdi var að koma af stað endurbyggingu, ekki uppfærslu á staðnum, sem þýðir að öllum gögnum yrði eytt. Áætlunarstýring stöðvaði óafturkræft gagnatap áður en það var innleitt.

Tilvik 2 — Til baka frá lausu vanskilum. Hópur bað gervigreindina um eldveggskóða. Til að keyra dæmið bjó gervigreindin til einfalda reglu upp á 0.0.0.0/0, sem þýðir "opinber á internetinu". Verkfræðingurinn tók eftir þessu þegar hann las kóðann og minnkaði aðganginn að aðeins IP-svið fyrirtækisins. Ef það væri innleitt án endurskoðunar væri gagnagrunnurinn opinn fyrir allt internetið.

Mál 3 - Komið í veg fyrir leka ríkisins. Yngri meðlimur ætlaði að líma terraform.tfstate skrána ósnortna í opinbert tól til að leysa Terraform vandamál. Yfirverkfræðingur stöðvaður: ríkið innihélt venjulegt lykilorð gagnagrunns. Þess í stað var afkóðuðu yfirliti sem lýsir vandamálinu deilt og ríkið var flutt yfir á fjarlæga dulkóðaða bakenda.

Fjögur afritanleg sniðmát

1) IaC auðlindamyndun (öruggt sjálfgefið):

Hlutverk þitt: yfirmaður skýjainnviðaverkfræðingur. [Ský, t.d. AWS] fyrir[tól, t.d. Terraform] búa til kóða. Tilgangur: [tilgangur].Öryggisreglur: almenningur (0.0.0.0/0) aðgangur OPINN;byrjaðu með þrengsta leyfi; kveikja á dulkóðun; draga leyndarmál út í breytur, ekki fella þær inn í kóða; Athugaðu stillingar sem gætu leitt til eyðingar/afþreyingar. Útskýrðu hverja heimild með stuttri athugasemd.

2) Skipuleggja úttektarúttekt:

Hér að neðan er [Terraform áætlun / Ansible check] úttak. Segðu mér: (1) hversu mörgum tilföngum verður bætt við/breytt/eytt, (2) merktu einnig "eyðileggja" eða "þvingar skipta út" línurnar sem skapa hættu á gagnatapi, (3) skrá allar breytingar sem virðast óvæntar eða hættulegar. Framleiðsla: [áætlun]

3) Öryggisskoðun IaC kóða:

Skoðaðu eftirfarandi IaC kóða með tilliti til öryggis: (1) eru of víðtækar aðgangar/heimildir, (2) er slökkt á dulkóðun, (3) eru leyndarmál innbyggð í kóðann, (4) eru til auðlindir sem eru aðgengilegar almenningi? Leggðu til leiðréttingu fyrir hverja niðurstöðu. Kóði: [grímukóði]

4) Skiptu breytingunni í örugga hluta:

Ég vil ekki innleiða þessa miklu innviðabreytingu [skýring] í einu. Skiptu því niður í lítil, sjálfstæð skref sem auðvelt er að komast aftur í. Fyrir hvert skref: hvaða breytingar, hverju ætti ég að borga eftirtekt í áætluninni, hvernig afturkalla ég það ef vandamál koma upp?

Veik kvaðning / Sterk kvaðning

Veik kvaðning:

Skrifaðu Terraform kóða sem býr til netþjón á AWS.

Svæði, stærð, öryggi, netkerfi, dulkóðun eru óljós. Gervigreindin framleiðir lausustu, skýrustu vanskilin til að virka - ef það er sett í framleiðslu væri það varnarleysi.

Öflug tilvitnun:

Hlutverk þitt: yfirmaður skýjainnviðaverkfræðingur. Skilgreindu vefþjón með Terraform á AWS eu-central-1: t3.small, aðeins frá fyrirtækis IP-sviðinu (ég mun gefa það með breytu), port 443 er opið, diskurinn er dulkóðaður, enginn almenningur aðgangur, merki eru nauðsynleg. Leyndarmál birtast breytunni. Eftir kóðann: Áður en þú innleiðir hann skaltu segja mér hvaða 3 línugerðir ég ætti að borga eftirtekt til í áætluninni og útskýra afturleiðina.

Sviði

Áhætta

öryggishandrið

skrifa kóða

Laust sjálfgefið (opinbert)

Þrengsta leyfi + lestur

skipuleggja / athuga

Eyðir án þess að gera sér grein fyrir því

Skipuleggja skoðun, eyðileggja merkingar

Sækja um

Mikil einskiptisbreyting

Lítil, afturkræf skref

stjórnsýslu ríkisins

Gljáleki, brenglun

Fjarlægur dulkóðaður bakendi + læsing

Algeng mistök

  • Að sækja um án þess að lesa áætlunina. Áætlunin boðar eyðingu og endurbyggingu; Ef því er sleppt er gagnatap óhjákvæmilegt.
  • Tek ekki eftir lausu sjálfgefnu. AI tilvik framleiða oft 0.0.0.0/0; Ef það er flutt í framleiðslu þýðir það opinn uppspretta fyrir allt internetið.
  • Leka ríki. Útflutningur á ástandsskránni í gervigreind eða opna geymslu afhjúpar leyndarmál í texta.
  • Fella leyndarmál inn í kóða. Að skrifa lykilorðið inn í IaC kóða er viðvarandi leki í útgáfusögu kóðans.
  • Að misskilja endurbyggingu fyrir uppfærslu. Að hunsa sveitarskiptalínuna mun leiða til taps gagna í gagnagrunnum.
Ábending: Jafnvel þegar þú gefur gervigreindum áætlunarúttak til endurskoðunar skaltu byggja lokaákvörðunina á eigin þekkingu, ekki áætlunartextanum. AI tekur saman áætlunina og flaggar áhættusamar línur; en svarið við spurningunni "er þessi eyðing ásættanleg" fer eftir viðskiptasamhengi þínu.

Í stuttu máli

IaC færir endurtekningarhæfni og skjöl með því að stjórna innviðum með útgáfuhæfan kóða frekar en handvirkum smellum. Gervigreind er öflugur samstarfsaðili við að skrifa þennan kóða, lýsa honum og fara yfir hann til öryggis. En kraftur IaC er hættan þess: ein lína getur þurrkað út allan innviði. Hugsaðu yfirlýsingu, byrjaðu með þrengstu leyfi, lagaðu lausar vanskil, haltu leyndarmálum utan kóða og ástands. Mikilvægasta handriðið er áætlun/athugunarskrefið: framkvæma aldrei án þess að lesa eyðingu og endurbyggja línurnar. Haltu State dulkóðuðu, læstu og fjarstýrðu. Kóðinn er gervigreind, ákvörðunin er þín.

Umsóknarverkefni

Veldu lítið innviðamarkmið (til dæmis eina sýndarvél og öryggisreglu). Með „IaC resource generation“ sniðmátinu hér að ofan skaltu biðja gervigreindina um kóða með öruggum sjálfgefnum stillingum. Athugaðu kóðann með "IaC kóða öryggisskoðun" sniðmátinu og reyndu að finna að minnsta kosti eina lausa stillingu. Ef mögulegt er, keyrðu plan/--check á prófunarreikning og skoðaðu úttakið með "Plan output check" sniðmátinu; Athugaðu hvort það er til að eyða eða endurskapa línu. Skrifaðu niður niðurstöður þínar og hvernig þú tryggir ríkið í 6 stigum.

gátlisti

  • [ ] Tilgreindi ég ský, tól og útgáfu fyrir gervigreind og bað um kóða með þrengstu heimildum?
  • [ ] Hef ég athugað kóðann fyrir lausum vanskilum (0.0.0.0/0, lokað dulkóðun)?
  • [ ] Hef ég dregið út leyndarmálin í breytuna í stað þess að fella þau inn í kóðann?
  • [ ] Las ég áætlunina/athugaðu úttakið og merkti við eyðingarlínurnar áður en ég sótti um?
  • [ ] Hef ég metið áhrif gagnataps af því að „þvinga endurnýjun“ / endurbyggja línur?
  • Geymdi ég ekki [ ] State skrána dulkóðaðri, læstri, í ytri bakendanum og lak henni út?