Nyereség:
- Képes IaC (Terraform, Ansible) kód előállítására mesterséges intelligenciával a legszűkebb engedélyekkel és biztonságos alapértelmezésekkel, és megérti a deklaratív megközelítést
- Képes adatvesztés megelőzésére törlési és cseresorok kiolvasásával és rögzítésével a terv/ellenőrzés kimenet alkalmazása előtt
- A titkos szivárgás megakadályozása az állapotfájl titkosításával, zárolásával a távoli háttérben, és a változtatások apró, visszafordítható lépésekre bontásával
Az infrastruktúra kódként történő kezelése (IaC): Terraform, Ansible és Plan Control AI-val
A múltban a szerver beállítása kézi kattintással, parancsokkal és személyes megjegyzésekkel történt; Az eredmény reprodukálhatatlan "hópehely" szerverek lettek, amelyeket senki sem tudta pontosan, hogyan kell beállítani. Az Infrastructure as Code (IaC) az a megközelítés, amely véget vet ennek a káosznak: a szervereket, hálózatokat, biztonsági szabályokat nem kézzel, hanem verziózható szövegfájlokkal (kóddal) határozzák meg. Amikor ezt a kódot futtatja, az infrastruktúra pontosan úgy van beállítva, ahogy írta – ugyanaz, dokumentált és minden alkalommal megismételhető. A leggyakoribb eszközök a Terraform és a CloudFormation a felhőinfrastruktúrához, valamint az Ansible a szerverkonfigurációhoz. Itt az AI nagyon képzett az IaC kód megírásában, magyarázatában és áttekintésében. De az IaC ereje egyben veszélye is: egy rossz vonal egy egész infrastruktúrát kiirthat; tehát az AI kódot ír, Ön elolvassa a "tervet", jóváhagyja és végrehajtja.
Ebben az egységben a deklaratív megközelítésről, a terv/alkalmaz különbségtételről, az állambiztonságról és az idempotenciáról lesz szó; Megtanulja az IaC generálását mesterséges intelligenciával és a legkritikusabb készségekkel, a "tervvezérléssel".
Deklaratív gondolkodás: "mi lenne, ha", nem "hogyan kell csinálni"
A legtöbb IaC eszköz deklaratív: leírod a rendszer végső állapotát ("mondjuk 3 webszerver, 1 terheléselosztó"), az eszköz maga számolja ki, hogyan jut el ebbe az állapotba. Ez különbözik a forgatókönyv írásától ("csináld ezt, majd csináld azt" lépésről lépésre). A deklaratív megközelítés nagy előnye az idempotencia: ha tízszer lefuttatjuk a kódot, az eredmény ugyanaz, mert az eszköz ellenőrzi, hogy létezik-e már a kívánt állapot, és ha igen, akkor nem ér hozzá. Emlékezzen erre a különbségre, amikor IaC-t ír az AI-nak: azt állítja be, hogy „legyen ez az infrastruktúra állapota”, nem pedig „futtassa ezeket a parancsokat”.
Tervezze/alkalmazza: a legfontosabb biztonsági korlát
Az IaC életmentő funkciója a tervlépés. A Terraformban a terraform plan, az Ansible-ben a --check mód a kód futtatása előtt egy előnézetet készít a "mi változik, ha alkalmazom" előnézetét: "2 erőforrás hozzáadódik, 1 megváltozik, 0 törlődik". Ez az egyetlen módja annak, hogy a megvalósítás előtt összehasonlítsa szándékát a valósággal. Kritikus szabály: soha ne jelentkezzen a terv elolvasása nélkül. Keresse különösen a "megsemmisítés" vonalakat; Ha egy elírás miatt a „12 törlésre kerül” szöveg jelenik meg az „1 módosul” helyett, akkor a terv megmentette a katasztrófától. Miután kinyomtatta a kódot a mesterséges intelligencia számára, írja be, hogy "soronként vizsgálja meg velem a terv kimenetét, jelöljön meg minden sort, amely törlést/újrakészítést tartalmaz".
Vigyázat: A Terraform bizonyos változtatásai "megsemmisítik és újrateremtik" az erőforrást, nem pedig "helyben frissítik". Ez adatvesztést jelent egy adatbázis számára. A -/+ figyelmen kívül hagyása vagy „kikényszeríti a helyettesítést” a tervkimenetben az egyik legdrágább hiba.
Állami akta: titkok és igazság nyilvántartása
Az olyan eszközök, mint a Terraform, az általuk kezelt infrastruktúra aktuális állapotát állapotfájlban tartják. Ez a fájl két okból is kritikus. Először is, titkokat tartalmazhat (adatbázis jelszavak, kulcsok egyszerű szöveges állapotba kerülhetnek); Ezért soha ne illessze be az állapotot nyilvános adattárba vagy mesterséges intelligenciába, hanem egy titkosított és korlátozott hozzáférésű távoli háttérrendszerben tárolja. Másodszor, ha az állam megsérül vagy elveszik, a jármű elveszíti a kapcsolatot a valós infrastruktúra és az elképzelt infrastruktúra között; Ezért elengedhetetlen az állapotmentés és a zárszerkezet (a zár, amely megakadályozza, hogy egyszerre két ember feltörje).
Lépésről lépésre: Biztonságos IaC AI segítségével
- Állami szándék és szolgáltató. "2 szerver AWS-en, Terraform-mal, ebben a régióban, ekkora és egy biztonsági csoport." Ha a felhő, az eszköz és a verzió egyértelmű, az AI megfelelő szintaxist állít elő.
- Biztonsági alapértelmezések kérése. "Nyissa meg a biztonsági csoportot, engedélyezze a titkosítást, bontsa ki a titkokat a változóba, biztosítson nyilvános hozzáférést." Az AI alapértelmezés szerint tud laza mintákat generálni.
- Olvassa el és értse meg a kódot. Sorról sorra megértse az összes erőforrást, minden engedélyt. Ne alkalmazzon olyan engedélyt, amelyet nem ért.
- Készítsen tervet és ellenőrizze azt. Futtassa a terv/--ellenőrzést, vizsgálja meg a kimenetet AI-vel, jelölje meg a törlési és újraépítési sorokat.
- Alkalmazza kicsi és megfordítható. Végezzen nagy változtatást kis darabokban, ne egyszerre. Minden lépésnél ismerje a visszavezető utat.
- Védje meg az államot. Távoli, titkosított háttérrendszer és zárolás használata; Soha ne szivárogjon állapot.
három mini tok
1. eset – A terv helyreállított egy adatbázist. Egy mérnök meg akarta növelni egy adatbázis méretét az általa mesterségesen előállított Terraform kóddal. Miközben azt várta, hogy a terraformterv kimenetében „1 megváltozik”, azt látta, hogy „1-et semmisít meg, 1-et hozzáad” – a választott paraméter egy újraépítést váltott ki, nem pedig egy helyben történő frissítést, ami azt jelenti, hogy minden adat törlődik. A tervvezérlés a megvalósítás előtt leállította a visszafordíthatatlan adatvesztést.
2. eset – Visszatérés a laza alapértelmezésből. Egy csapat tűzfalkódot kért az AI-tól. A példa futtatásához az AI egy egyszerű 0.0.0.0/0 szabályt generált, ami azt jelenti, hogy "nyilvános az interneten". A mérnök ezt a kód beolvasása közben vette észre, és csak a vállalati IP-tartományra szűkítette a hozzáférést. Ha auditálás nélkül valósítanák meg, az adatbázis nyitva lenne a teljes internet számára.
3. eset – állapotszivárgás megakadályozva. Egy fiatal tag éppen be akarta illeszteni a terraform.tfstate fájlt egy nyilvános eszközbe, hogy megoldjon egy Terraform problémát. A vezető mérnök leállt: az állapot egyszerű szöveges adatbázisjelszót tartalmazott. Ehelyett megosztották a problémát leíró, dekódolt összefoglalót, és az állapot átkerült a távoli titkosított háttérrendszerbe.
Négy másolható sablon
1) IaC erőforrás generálás (biztonságos alapértelmezett):
Az Ön szerepköre: vezető felhő infrastruktúra mérnök. [Felhő, pl. AWS] for [eszköz, pl. Terraform] kódot generál. Cél: [cél].Biztonsági szabályok: nyilvános (0.0.0.0/0) hozzáférés NYITVA;kezdje a legszűkebb jogosultsággal; kapcsolja be a titkosítást; bontsa ki a titkokat változókba, ne ágyazza be őket kódba; Ellenőrizze azokat a beállításokat, amelyek törléshez/újrakészítéshez vezethetnek. Magyarázza meg az egyes forrásokat egy rövid megjegyzéssel.
2) Tervezze meg az output auditot:
Az alábbiakban egy [Terraform plan / Ansible check] kimenet látható. Mondja el nekem: (1) hány erőforrás kerül hozzáadásra/módosításra/törlésre, (2) jelölje meg az adatvesztés kockázatát jelentő "megsemmisítés" vagy "csere kényszer" sorokat is, (3) felsorolja a váratlannak vagy veszélyesnek tűnő változtatásokat. Kimenet: [terv]
3) IaC kód biztonsági felülvizsgálata:
Vizsgálja meg a következő IaC-kódot a biztonság érdekében: (1) túlságosan széles hozzáférés/engedélyek vannak, (2) ki van kapcsolva a titkosítás, (3) vannak-e titkok a kódban, (4) vannak-e nyilvánosan elérhető erőforrások? Javasoljon javítást minden egyes megállapításhoz. Kód: [maszk kód]
4) Oszd fel a változást biztonságos részekre:
Ezt a nagy infrastrukturális változást [magyarázat] nem akarom egyszerre végrehajtani. Bontsd le apró, független lépésekre, amelyekhez könnyű visszatérni. Minden lépésnél: mi változik, mire figyeljek a tervben, hogyan tudom visszavonni, ha problémák vannak?
Gyenge felszólítás / Erős felszólítás
Gyenge felszólítás:
Írjon Terraform kódot, amely létrehoz egy szervert az AWS-en.
A régió, a méret, a biztonság, a hálózat és a titkosítás nem egyértelmű. A mesterséges intelligencia a leglazább, legkifejezettebb alapértelmezéseket hozza létre a működéshez – ha gyártásba kerülne, az sebezhetőséget jelentene.
Erőteljes felszólítás:
Az Ön feladata: vezető felhő infrastruktúra mérnök. AWS eu-central-1-en definiálj Terraform-mal webszervert: t3.small, csak a céges IP tartományból (változóval adom meg), a 443-as port nyitva van, a lemez titkosított, publikus hozzáférés nincs, a feliratozás kötelező. A változó előtt feltárulnak titkok. A kód után: Megvalósítás előtt mondja el a 3 sortípust, amire figyelnem kell a tervben, és magyarázza el a visszatérési utat.
Színpad
Kockázat
biztonsági korlát
kód írása
Laza alapértelmezett (nyilvános)
Legszűkebb engedély + olvasás
tervezni/ellenőrizni
Törlés anélkül, hogy észrevenné
Tervezze meg az ellenőrzést, semmisítse meg a jelölést
Alkalmazni
Egyszeri jelentős változás
Kicsi, megfordítható lépések
államigazgatás
Mázas szivárgás, torzulás
Távoli titkosított háttér + zár
Gyakori hibák
- Jelentkezés a terv elolvasása nélkül. A terv törlést és újjáépítést vetít előre; Ha kihagyja, az adatvesztés elkerülhetetlen.
- Nem veszi észre a laza alapértelmezést. Az AI-példányok gyakran 0.0.0.0/0-t produkálnak; Ha élesre kerül, az nyílt forráskódot jelent a teljes internet számára.
- Szivárgó állapot. Az állapotfájl AI-ba vagy nyílt adattárba exportálása egyszerű szöveges titkokat tesz közzé.
- Titkok kódba ágyazása. A jelszó IaC-kódba való beírása a kód verziótörténetének állandó kiszivárgása.
- Az újraépítés összetévesztése a frissítéssel. Az erőcsere-sor figyelmen kívül hagyása adatvesztést eredményez az adatbázisokban.
Tipp: Még akkor is, ha a terv kimenetét egy MI-nek adja át felülvizsgálatra, a végső döntést saját tudására alapozza, ne a terv szövegére. Az AI összefoglalja a tervet, és megjelöli a kockázatos vonalakat; de az „elfogadható-e ez a törlés” kérdésre adott válasz az Ön üzleti környezetétől függ.
Összefoglalva
Az IaC megismételhetőséget és dokumentálást biztosít az infrastruktúra verziózható kóddal történő kezelésével, nem pedig manuális kattintással. A mesterséges intelligencia hatékony partner ennek a kódnak a megírásában, leírásában és biztonsági szempontú felülvizsgálatában. De az IaC ereje a veszélye: egyetlen vonal az egész infrastruktúrát kiirthatja. Gondolkodjon deklaratívan, kezdje a legszűkebb engedéllyel, javítsa ki a laza alapértelmezéseket, tartsa távol a titkokat a kódtól és az állapottól. A legfontosabb védőkorlát a tervezés/ellenőrzés lépés: soha ne hajtsa végre a törlési és újraépítési sorok elolvasása nélkül. Tartsa az államot titkosítva, zárolva és távoli állapotban. A kód az MI, a döntés a tiéd.
Pályázati feladat
Válasszon egy kis infrastruktúra-célt (például egyetlen virtuális gépet és egy biztonsági szabályt). A fenti „IaC-erőforrás-generálás” sablonnal kérjen az AI-tól egy biztonságos alapértelmezett kódot. Ellenőrizze még egyszer a kódot az „IaC-kód biztonsági felülvizsgálata” sablonnal, és próbáljon meg találni legalább egy laza beállítást. Ha lehetséges, futtassa a terv/--ellenőrzést egy tesztfiókon, és tekintse át a kimenetet a "Plan output check" sablonnal; Nézze meg, van-e törlés vagy újbóli létrehozás sor. Írd le 6 pontban megállapításaidat és azt, hogyan biztosítod az államot.
ellenőrző lista
- [ ] Megadtam a felhőt, az eszközt és a verziót a mesterséges intelligencia számára, és a legszűkebb engedélyekkel kértem kódot?
- [ ] Ellenőriztem a kódban, hogy nincsenek-e laza alapértelmezett értékek (0.0.0.0/0, zárt titkosítás)?
- [ ] Kibontottam a változó titkait ahelyett, hogy beágyaztam volna őket a kódba?
- [ ] Elolvastam a terv/ellenőrzés kimenetet és bejelöltem a törlési sorokat jelentkezés előtt?
- [ ] Kiértékeltem a vonalak „kényszercseréjének”/újjáépítésének adatvesztési hatását?
- Nem tartottam titkosítva, zárolva a [ ] State fájlt a távoli háttérrendszerben, és nem szivárogtattam ki?