Unità 3 / 11

Ġestjoni tal-Infrastruttura bħala Kodiċi: Intelliġenza Artifiċjali b'Terraform u IaC

Qligħ:

  • Kapaċità li tifhem il-kunċett tal-IaC u ċ-ċiklu tax-xogħol ta’ Terraform (init, tippjana, tapplika, tiddikjara, modulu) u li l-intelliġenza artifiċjali tipproduċi abbozzi sikuri tal-HCL
  • Kapaċità li tiċċekkja kull bidla bi pjan qabel ma tapplika u taqbad linji ta 'qerda/sostituzzjoni mhux mistennija
  • Kapaċità li tapplika l-prinċipji li żżomm is-sigrieti barra mill-kodiċi, iżżomm l-istat b'mod sigur, u timminimizza l-permessi IAM

Fil-passat, it-twaqqif ta 'server kien kwistjoni ta' tikklikkja permezz ta 'pannell tas-sħab: oħloq magna virtwali, waqqaf in-netwerk, żid ir-regola tas-sigurtà. Dan il-metodu kien bil-mod, suxxettibbli għall-iżbalji, u irrepetibbli - kien kważi impossibbli li jitwaqqaf l-istess ambjent għat-tieni darba. Illum, l-infrastruttura hija ġestita bħala kodiċi. IaC (Infrastructure as Code) huwa approċċ biex jiddeskrivi riżorsi tal-cloud bħal servers, netwerks, u databases f'fajls ta 'test aktar milli manwalment. Dawn il-fajls ipoġġu fil-kontroll tal-verżjoni (Git); Tista 'tara min biddel xiex, meta, u xiex; Tista' twaqqaf l-istess infrastruttura ħafna drabi, eżattament bl-istess mod, bi kmand wieħed.

L-għodda IaC l-aktar komuni hija Terraform. Terraform jieħu d-definizzjonijiet li tikteb b’lingwa li tista’ tinqara msejħa HCL (HashiCorp Configuration Language — il-lingwa tal-konfigurazzjoni ta’ Terraform), tittraduċihom fl-API tal-fornitur tal-cloud (AWS, Azure, GCP) u toħloq ir-riżorsi. L-AI taf lil HCL tajjeb ħafna u tipproduċi blokki kumplessi malajr. Iżda fl-IaC, l-ispiża ta 'żball hija għolja: definizzjoni waħda ħażina tista' tħassar database ta 'produzzjoni sħiħa. Huwa għalhekk li r-regola tad-deheb f'Terraform hija li tara kull bidla bi 'pjan' qabel ma timplimentaha.

Runtime ta' Terraform

Terraform jaħdem bi tliet kmandi bażiċi — li tkun taf li dawn huwa prerekwiżit għall-kontroll tal-output tal-AI:

  • `terraform init`: Jibda l-proġett, tniżżel il-plugins tal-fornitur meħtieġa.
  • `pjan terraform`: Tqabbel is-sitwazzjoni attwali mas-sitwazzjoni mixtieqa u turi x'għandek iżżid, x'għandek tibdel, x'għandek tħassar. Ma jimplimenta xejn. Huwa l-aktar pass kritiku tas-sigurtà.
  • `terraform apply`: Attwalment japplika l-Pjan, billi joħloq/jimmodifika r-riżorsi.

Barra minn hekk, żewġ kunċetti huma vitali. Stat (fajl tal-istat): Dan huwa l-fajl fejn Terraform iżomm l-istat attwali tar-riżorsi li jimmaniġġja; Normalment tinħażen f'maħżen remot u msakkar sabiex żewġ persuni ma jkunux jistgħu jbiddluh jew jeqirduh fl-istess ħin. Modulu: Pakkett ta 'konfigurazzjoni li jista' jerġa 'jintuża; Pereżempju, tista' tuża l-modulu "Twaqqaf netwerk" f'ħafna proġetti.

Tip: L-iktar sinjal perikoluż f'output Terraform huwa jeqirdu jew -/+ (jibdel) linji fl-output tal-pjan. Dawn ifissru li r-riżorsa se titħassar. Jekk tara qerda mhux mistennija fi pjan, qatt ma tapplika, l-ewwel tifhem għaliex deher.

Pass pass: Kitba IaC bl-AI

  1. Iċċara l-infrastruttura mixtieqa. Kun konkret bħal "VPC wieħed, żewġ subnets, grupp ta' sigurtà wieħed u t3.micro EC2 wieħed fuq eu-central-1".
  2. Speċifika l-fornitur u l-verżjoni. Liema sħaba, liema Terraform u verżjoni tal-fornitur? Jekk ma tispeċifikax verżjoni, AI tista' tirritorna sintassi skaduta/inkompatibbli.
  3. Ikollha l-abbozz HCL prodott. Itlob ukoll varjabbli u outputs.
  4. Ħu Sigriet barra. Valuri bħal passwords u ċwievet għandhom imorru għall-kaxxa-forti varjabbli u sigrieta, mhux għall-kodiċi.
  5. Mexxi `init` + `pjan`. Aqra l-output tal-pjan linja b'linja; Iċċekkja għal tħassir mhux mistenni.
  6. Ibda żgħir, implimenta gradwalment. Applikaha f'kont/ambjent tat-test iżolat l-ewwel.

Sigurtà: Riskji speċifiċi għall-IaC

IaC hija riskjuża daqskemm hija qawwija. Tliet punti kritiċi:

  1. Hemm sigriet fil-fajl tal-istat. L-istat Terraform kultant iżomm valuri sensittivi, bħal passwords tad-database, f'test sempliċi. Qatt tpoġġi lill-Istat f'repożitorju pubbliku; Uża backend remot kriptat u b'aċċess ristrett.
  2. Tdaħħalx sigrieti fl-HCL. Linji bħal password="prod123" jinkitbu b'mod permanenti fl-istorja Git. Minflok, uża varjabbli u agħti l-valur waqt ir-runtime mill-varjabbli ambjentali (TF_VAR_...) jew kaxxa-forti sigrieta.
  3. Permess IAM wiesa' ħafna. L-AI kultant tipproduċi blokki bħal Azzjoni: "*" (ħalli kollox) biex "jagħmilha taħdem". Din hija vulnerabbiltà; dejjaq il-permess għall-minimu meħtieġ.
Attenzjoni: Ladarba sigriet jidħol fl-istorja Git, jibqa' fil-passat u jista' jiġi kompromess, anki jekk tħassar il-fajl. Jekk tikkommetti bi żball, immedjatament tikkanċella u dawwar is-sigriet; It-tħassir biss mhuwiex biżżejjed.

Tabella tas-sinjali tal-pjan riskjuż

Pjan stampat

Tifsira

x'għandek tagħmel

+ toħloq

Se jiżdiedu riżors ġdid

Ġeneralment bla periklu, reviżjoni għalkemm

~ aġġornament fil-post

Is-sors se jinbidel fuq il-post

Ivverifika l-impatt (se jkun hemm qtugħ?)

-/+ ibdel

Se jiġi mħassar u rikrejat

ATTENZJONI: jista' jseħħ telf ta' data

- jeqirdu

Ir-riżorsa se tinqered

STOP: qatt ma tapplika jekk ma tkunx qed tistennieh

tliet każijiet żgħar

Każ 1 — 2 ijiem xogħol fi 3 sigħat. Tim wieħed kien se jikteb Terraform biex iwaqqaf ambjent tat-test ġdid (VPC, subnets, database RDS, cluster ECS) iżda kienu għadhom kif marru għal HCL. Huma ddeskrivew l-arkitettura u l-verżjonijiet tal-AI u pproduċew pjan modulari. Huma vverifikaw kull modulu bil-pjan u kellhom jibda jaħdem fi 3 sigħat; Jieħduhom jumejn ta 'prova manwali u żball.

Każ 2 — il-pjan qabad tħassir. Inġinier mexxa pjan mingħajr ma applika kodiċi ta 'aġġornament iġġenerat mill-AI. L-output kien fih -/+ jissostitwixxi għad-database tal-produzzjoni — l-AI ppruvat tissostitwixxi qasam li ma jistax jiġi sostitwit, li kien ifisser li tħassar u terġa’ toħloq id-database. L-inġinier waqaf japplika u biddel il-bidla għall-metodu sikur. Il-vizzju tal-ippjanar evita diżastru.

Każ 3 — nixxija sigrieta midfuna. A junior, YZ maħruġa db_password = "S3cret!" Huwa kkommetta l-linja kif inhi u mbuttaha. Maqbuda fir-reviżjoni tal-kodiċi; Il-password kienet immedjatament ikkanċellata u mibdula, il-valur ġie mċaqlaq għal varjabbli u mitmugħa mill-kaxxa-forti sigrieta. Lezzjoni: Qatt ma hemm sigrieti b'test ċar fl-HCL.

Erba' mudelli li jistgħu jiġu kkupjati

1) Ġenerazzjoni ta' abbozz ta' infrastruttura:

Ikteb l-infrastruttura li ġejja fuq [CLOUD: AWS] b'Terraform (verżjoni ~> 1.7): [LISTA SORSI]. Reġjun [X]. Regoli:- Agħmel il-valuri sensittivi kollha varjabbli, daħħalhomx f'HCL.- Waħħal il-verżjoni tal-fornitur (required_providers).- Imminimizza l-permessi IAM, tużax "*".- Irritorna [X, Y] bħala output. Agħti l-kodiċi b'mod modulari u bi spjegazzjonijiet.

2) Interpretazzjoni tal-output tal-pjan:

Analizza l-output tal-'terraform plan' hawn taħt. Elenka lili:(1) liema riżorsi ġew miżjuda/mibdula/MĦASSAR,(2) ringieli f'riskju ta' telf jew interruzzjoni tad-dejta,(3) 3 mistoqsijiet li għandi nagħmel qabel napplika.Plan: [OUTPUT]

3) Eżamina HCL eżistenti għas-sigurtà:

Iċċekkja l-kodiċi Terraform li ġej għas-sigurtà: sigriet inkorporat, permess IAM wiesa 'żżejjed, regola tan-netwerk miftuħ (0.0.0.0/0), ħażna mhux kriptata? Ikteb kull sejba f'ordni ta' importanza u korrezzjoni. Kodiċi: [HCL]

4) Ikkonverti l-kodiċi ripetittiv għall-modulu:

Ikkonverti l-kodiċi Terraform ripetittiv li ġej f'modulu li jista 'jerġa' jintuża: liema valuri għandhom ikunu varjabbli, x'għandha tkun l-interface tal-modulu? Uri wkoll eżempju użu. Kodiċi: [HCL]

Pront dgħajjef / Pront qawwi

Dgħajjef: "Oħloq database b'Terraform."

Riżultat: mhux ċar liema sħaba, liema magna, liema verżjoni, kriptata jew le; Bis-sintassi tal-wirt, l-AI tista' tipprovdi eżempju disponibbli pubblikament li jdaħħal il-password fil-kodiċi.

Qawwija: "Oħloq istanza RDS PostgreSQL 15 fuq AWS b'Terraform ~> 1.7. Agħmel il-password varjabbli, daħħalhiex fil-kodiċi. Il-ħażna hija encrypted, aċċessibbli biss minn subnet privat, mhux pubbliku. Waħħal il-verżjoni tal-fornitur. Irritorna l-endpoint bħala output."

Differenza: it-tieni pront jagħti l-magna, il-verżjoni, l-encryption, ir-restrizzjoni tan-netwerk u r-regola sigrieta — l-output huwa sigur u qrib il-prod.

Żbalji komuni

  • Li `applika` mingħajr ma tagħmel `pjan`. L-iżball l-aktar għali fl-IaC; dejjem tippjana l-ewwel.
  • Inkorporazzjoni Sigriet fl-HCL. Joħloq tnixxija permanenti fl-istorja Git.
  • Ħażna Stat mhux sikur. Stat pubbliku mhux kriptat, miftuħ huwa diżastru.
  • Mhux jiffissaw il-verżjoni. L-użu tal-fornitur mingħajr ma tispeċifika verżjoni jwassal għal fallimenti f'daqqa fil-futur.
  • *`Azzjoni: Permess wiesa' bħal ""`.** Jikser il-prinċipju tal-inqas privileġġ.
  • Injora 'jeqred' mhux mistenni. L-applikazzjoni tal-linji tat-tħassir fil-Pjan mingħajr dubju.

Fil-qosor

IaC jibdel l-infrastruttura f’kodiċi li jista’ jiġi ripetut, verżjoni u li jista’ jiġi vverifikat; L-aktar għodda komuni hija Terraform. L-AI malajr tipproduċi stubs HCL, iżda trid tipprovdi l-verżjoni, id-dettalji speċifiċi għall-cloud, u r-regoli tas-sigurtà. Ir-regola infallibbli f'Terraform: biex tara kull bidla bi pjan, biex tinvestiga tħassir mhux mistenni, biex iżżomm is-sigrieti 'l bogħod mill-kodiċi u biex iżżomm l-istat b'mod sigur. Il-linji jeqirdu u jissostitwixxu fil-produzzjoni tal-pjan huma l-postijiet li għandhom jinqraw bl-aktar attenzjoni.

Kompitu ta' applikazzjoni

Ħalli l-AI tiġġenera infrastruttura żgħira (eż. barmil tal-ħażna u politika ta' aċċess) billi tuża l-mudell "Iġġenera skeċċ tal-infrastruttura" hawn fuq. Imbagħad: (1) ikkontrolla l-mudell "vetting" għal permessi sigrieti jew * inkorporati fil-kodiċi; (2) jekk possibbli, mexxi init + pjan f'kont tat-test u aqra l-output tal-pjan bil-mudell "interpretazzjoni tal-pjan"; (3) innota kwalunkwe tħassir/bidliet mhux mistennija.

lista ta' kontroll

  • [ ] Żidt sħaba, Terraform/verżjoni tal-fornitur, u restrizzjonijiet ta' encryption/netwerk fil-pront tiegħi.
  • [ ] M'hemm l-ebda sigriet sempliċi fil-kodiċi; valuri ta 'preċiżjoni varjabbli.
  • [ ] Naqqas IAM/permessi għal permessi minimi, * Ma użajtx.
  • [ ] I ġrajt pjan qabel applika u qrajt l-output linja b'linja.
  • [ ] Ivverifikajt li m'hemm l-ebda qerda/sostituzzjoni mhux mistennija fil-Pjan.
  • [ ] Jiena ċert li l-istat jinżamm f'backend encrypted, imsakkar u ristrett.