Kasu:
- Võimalus toota tehisintellektiga IaC (Terraform, Ansible) koodi kõige kitsamate lubade ja turvaliste vaikeväärtustega ning mõista deklaratiivset lähenemist
- Võimalus vältida andmete kadumist, lugedes ja hõivates kustutamis- ja sundimisread enne plaani/kontrolli väljundi rakendamist
- Võimalus vältida salajast leket, hoides olekufaili krüpteerituna, lukustatuna, kaugtaustaprogrammis ja jagades muudatused väikesteks, pööratavateks sammudeks
Infrastruktuuri haldamine koodina (IaC): Terraform, Ansible ja Plan Control koos AI-ga
Varem tehti serveri seadistamine käsitsi klikkide, käskude ja isiklike märkmete abil; Tulemuseks olid reprodutseerimatud "lumehelbekese" serverid, mida keegi täpselt ei teadnud seadistada. Infrastructure as Code (IaC) on lähenemine, mis selle kaose lõpetab: serverid, võrgud, turvareeglid ei määratleta käsitsi, vaid versioonitavate tekstifailide (koodi) abil. Selle koodi käivitamisel seadistatakse infrastruktuur täpselt nii, nagu te selle kirjutasite – sama, dokumenteeritud ja iga kord korratav. Levinumad tööriistad on Terraform ja CloudFormation pilve infrastruktuuri jaoks ning Ansible serveri konfigureerimiseks. Siin on AI väga osav selle IaC koodi kirjutamisel, selgitamisel ja ülevaatamisel. Kuid IaC võimsus on ka selle oht: üks vale liin võib hävitada terve infrastruktuuri; nii et AI kirjutab koodi, loete "plaani", kinnitate selle ja käivitate selle.
Selles üksuses käsitleme deklaratiivset lähenemist, plaani/rakendamise eristamist, riigi julgeolekut ja idempotentsust; Õpid IaC genereerimist tehisintellektiga ja kõige kriitilisemat oskust, "plaanijuhtimist".
Mõeldes deklaratiivselt: "mis siis, kui", mitte "kuidas teha"
Enamik IaC tööriistu on deklaratiivsed: kirjeldate süsteemi lõppseisu ("oletame, et 3 veebiserverit, 1 koormuse tasakaalustaja"), tööriist ise arvutab, kuidas sellesse olekusse jõuda. See erineb skripti kirjutamisest ("tee seda, siis tee seda" samm-sammult). Deklaratiivse lähenemise suureks eeliseks on idempotentsus: isegi kui kood kümme korda käivitada, on tulemus sama, sest tööriist kontrollib, kas soovitud olek on juba olemas ja kui on, siis ei puutu seda. Pidage meeles seda erinevust, kui kirjutate IaC-i AI-le: pange see ütlema "las see infrastruktuuri seisund", mitte "käivita neid käske".
Planeeri/rakendus: kõige olulisem turvapiire
IaC elupäästmise funktsioon on plaani samm. Terraformis, terraform plan, Ansible'is annab --check režiim enne koodi käivitamist eelvaate "mis muutub, kui ma selle rakendan": "Lisatakse 2 ressurssi, 1 muutub, 0 kustutatakse". See on ainus viis võrrelda oma kavatsust tegelikkusega enne rakendamist. Kriitiline reegel: ärge kunagi kandideerige ilma plaani lugemata. Otsige eriti "hävitada" jooni; Kui näete kirjavea tõttu teadet "12 kustutatakse" asemel "1 muudetakse", on plaan teid katastroofist päästnud. Pärast koodi printimist tehisintellektile laske sellel öelda "uurige plaani väljundit rida-realt koos minuga, märkige iga rida, mis sisaldab kustutamist/taasloomist".
Ettevaatust. Mõned Terraformi muudatused "hävitavad ja taasloovad" ressursi, mitte "kohal värskendavad". See tähendab andmebaasi andmete kadumist. -/+ ehk "sunnib asendamist" ignoreerimine plaani väljundis on üks kallimaid vigu.
Riigitoimik: saladuste ja tõe protokoll
Sellised tööriistad nagu Terraform hoiavad hallatava infrastruktuuri hetkeseisu olekufailis. See fail on kriitiline kahel põhjusel. Esiteks võib see sisaldada saladusi (andmebaasi paroolid, võtmed võivad sattuda tavateksti olekusse); Seetõttu ärge kunagi kleepige olekut avalikku hoidlasse või tehisintellekti, hoidke seda krüptitud ja juurdepääsupiiranguga kaugtaustaprogrammis. Teiseks, kui riik on rikutud või kadunud, kaotab sõiduk seose tegeliku taristu ja kujuteldava infrastruktuuri vahel; Seetõttu on oleku tagavara ja lukumehhanism (lukk, mis ei lase kahel inimesel seda korraga lõhkuda) hädavajalikud.
Samm-sammult: kaitske IaC AI-ga
- Riigi kavatsus ja pakkuja. "Kaks serverit AWS-is koos Terraformiga selles piirkonnas, selles suuruses ja turvarühm." Kui pilv, tööriist ja versioon on selged, loob AI õige süntaksi.
- Taotle turvalisuse vaikeseadeid. "Ava turvagrupp, lubage krüptimine, eraldage muutuja saladused, andke avalik juurdepääs." AI võib vaikimisi genereerida lahtisi proove.
- Lugege ja mõistate koodi. Mõistke rida rea haaval iga ressurssi, iga luba. Ärge rakendage luba, millest te aru ei saa.
- Hankige plaan ja kontrollige seda. Käivitage plaan/--kontroll, uurige väljundit AI-ga, märkige kustutamis- ja ümberehitusread.
- Rakenda väike ja pööratav. Tehke suuri muudatusi väikeste tükkidena, mitte korraga. Tea igal sammul tagasiteed.
- Kaitse riiki. Kasutage kaugjuhtimist, krüptitud taustaprogrammi ja lukustust; Ärge kunagi lekige olek.
kolm minikarpi
Juhtum 1 – plaan taastas andmebaasi. Üks insener soovis suurendada andmebaasi suurust Terraformi koodiga, mille ta koos tehisintellektiga koostas. Kui ta ootas terraformiplaani väljundis "1 muutumist", nägi ta "1 hävitamiseks, 1 lisamiseks" – tema valitud parameeter käivitas ümberehitamise, mitte kohapealse värskenduse, mis tähendab, et kõik andmed kustutatakse. Plaani juhtimine peatas pöördumatu andmekao enne selle rakendamist.
Juhtum 2 – naasmine lahtisest vaikeväärtusest. Meeskond küsis AI-lt tulemüüri koodi. Näite käivitamiseks genereeris AI lihtsa reegli 0.0.0.0/0, mis tähendab "avalikku Internetis". Insener märkas seda koodi lugedes ja piiras juurdepääsu ainult ettevõtte IP-vahemikule. Kui seda rakendataks ilma auditita, oleks andmebaas avatud kogu Internetile.
Juhtum 3 – olekuleke on välistatud. Noorem liige kavatses Terraformi probleemi lahendamiseks kleepida puutumata faili terraform.tfstate avalikku tööriista. Vaneminsener peatus: olek sisaldas lihtteksti andmebaasi parooli. Selle asemel jagati probleemi kirjeldavat dekrüpteeritud kokkuvõtet ja olek teisaldati kaugkrüptitud taustaprogrammi.
Neli kopeeritavat malli
1) IaC ressursside genereerimine (turvaline vaikeseade):
Teie roll: pilveinfrastruktuuri vaneminsener. [Pilv, nt. AWS] jaoks [tööriist, nt. Terraform] luua koodi. Eesmärk: [otstarve].Turvareeglid: avalik (0.0.0.0/0) juurdepääs AVATUD;alustage kitsaima õigusega; lülitage krüptimine sisse; eraldage saladused muutujateks, ärge manustage neid koodi; Kontrollige seadeid, mis võivad viia kustutamiseni/taasloomiseni. Selgitage iga allikat lühikese kommentaariga.
2) Plaani väljundaudit:
Allpool on [Terraform plan / Ansible check] väljund. Öelge mulle: (1) kui palju ressursse lisatakse/muutetakse/kustutatakse, (2) märkige ka read "hävita" või "sunnib asendama", mis kujutavad endast andmete kadumise ohtu, (3) loetlege kõik ootamatud või ohtlikud tunduvad muudatused. Väljund: [plaan]
3) IaC koodi turvaülevaade:
Kontrollige turvalisuse tagamiseks järgmist IaC koodi: (1) kas on liiga lai juurdepääs/load, (2) kas krüptimine on välja lülitatud, (3) kas koodi on manustatud saladusi, (4) kas seal on avalikult kättesaadavaid ressursse? Soovitage iga leiu jaoks parandus. Kood: [maskikood]
4) Jagage muudatus ohututeks osadeks:
Ma ei taha seda suurt taristumuudatust [selgitust] korraga ellu viia. Jagage see väikesteks sõltumatuteks sammudeks, mille juurde on lihtne tagasi pöörduda. Iga sammu puhul: mis muutub, millele peaksin plaanis tähelepanu pöörama, kuidas seda probleemide korral tagasi võtta?
Nõrk viip / Tugev viip
Nõrk viip:
Kirjutage Terraformi kood, mis loob AWS-is serveri.
Piirkond, suurus, turvalisus, võrk ja krüptimine on ebaselged. Tehisintellekt loob töötamiseks kõige lõdvemad ja selgesõnalisemad vaikeseaded – tootmisse pannes oleks see haavatavus.
Võimas viip:
Teie roll: pilveinfrastruktuuri vaneminsener. Defineeri AWS eu-central-1 peal Terraformiga veebiserver: t3.small, ainult ettevõtte IP vahemikust (annan muutujaga), port 443 avatud, ketas krüpteeritud, avalik ligipääs puudub, sildid kohustuslikud. Muutujale paljastatakse saladused. Pärast koodi: enne selle rakendamist öelge mulle 3 reatüüpi, millele peaksin plaanis tähelepanu pöörama, ja selgitage tagasiteed.
Lava
Risk
turvareeling
koodi kirjutamine
Lahtine vaikimisi (avalik)
Kõige kitsam luba + lugemine
plaani/kontrolli
Kustutamine ilma seda teadvustamata
Planeerige ülevaatus, hävitage märgistus
Rakenda
Suur ühekordne muudatus
Väikesed, pööratavad sammud
riigihaldus
Glasuuri lekkimine, moonutus
Kaug krüptitud taustaprogramm + lukk
Levinud vead
- Kandideerimine ilma kava lugemata. Plaan näeb ette kustutamist ja rekonstrueerimist; Kui see vahele jäetakse, on andmete kadu vältimatu.
- Lahti vaikimisi märkamata. AI eksemplarid toodavad sageli 0.0.0.0/0; Kui see viiakse tootmisse, tähendab see avatud lähtekoodiga kogu Internetile.
- Lekkiv olek. Olekufaili eksportimine AI-sse või avatud hoidlasse paljastab lihttekstisaladused.
- Saladuste manustamine koodi. Parooli kirjutamine IaC-koodi on pidev leke koodi versiooniajaloos.
- Ümberehituse eksitus värskenduse jaoks. Jõudude asendusrea ignoreerimine toob kaasa andmete kadumise andmebaasides.
Näpunäide. Isegi kui annate plaani väljundit tehisintellektile ülevaatamiseks, tehke lõplik otsus oma teadmistele, mitte plaani tekstile. AI teeb plaanist kokkuvõtte ja märgib riskantsed jooned; kuid vastus küsimusele "kas see kustutamine on vastuvõetav" sõltub teie ettevõtte kontekstist.
Kokkuvõttes
IaC pakub korratavust ja dokumentatsiooni, haldades infrastruktuuri käsitsi klõpsamise asemel versioonitava koodiga. AI on selle koodi kirjutamisel, kirjeldamisel ja turvalisuse huvides ülevaatamisel võimas partner. Kuid IaC võimsus on selle oht: üks liin võib kogu infrastruktuuri hävitada. Mõelge deklaratiivselt, alustage kõige kitsama õigusega, parandage lahtised vaikesätted, hoidke saladused koodist ja olekust eemal. Kõige olulisem kaitsepiire on planeerimise/kontrollimise samm: ärge kunagi käivitage ilma kustutamis- ja ümberehitusrida lugemata. Hoidke osariik krüpteerituna, lukustatuna ja eemal. Kood on AI, otsus on teie.
Rakenduse ülesanne
Valige väike infrastruktuuri sihtmärk (nt üks virtuaalmasin ja turvareegel). Ülaltoodud malliga "IaC ressursi genereerimine" küsige AI-lt turvaliste vaikeseadetega koodi. Kontrollige koodi veelkord malliga „IaC koodi turvaülevaade” ja proovige leida vähemalt üks lahtine säte. Võimalusel käivitage plaan/--check testkontol ja vaadake väljund üle malliga "Plani väljundi kontroll"; Vaadake, kas rida on kustutatud või uuesti loodud. Kirjutage oma leiud ja kuidas kindlustate riigi 6 punkti.
kontrollnimekiri
- [ ] Kas ma määrasin AI-le pilve, tööriista ja versiooni ning taotlesin koodi kõige kitsamate õigustega?
- [ ] Kas olen kontrollinud koodi lahtiste vaikeväärtuste suhtes (0.0.0.0/0, suletud krüptimine)?
- [ ] Kas ma olen koodi manustamise asemel muutuja saladused ekstraheerinud?
- [ ] Kas ma lugesin plaani/kontrolli väljundit ja märkisin kustutamisread enne taotlemist?
- [ ] Kas ma olen hinnanud liinide asendamise/ümberehitamise mõju andmete kadumisele?
- Kas ma ei hoidnud olekufaili [ ] krüpteerituna, lukustatuna kaugtaustaprogrammis ja lekkisin selle välja?