Gevinster:
- Evne til at producere IaC (Terraform, Ansible) kode med kunstig intelligens med de smalleste tilladelser og sikre standarder og forstå den deklarative tilgang
- Evne til at forhindre tab af data ved at læse og indfange slette og tvinge udskiftningslinjer før anvendelse af planen/tjek output
- Evne til at forhindre hemmelig lækage ved at holde tilstandsfilen krypteret, låst i den eksterne backend og bryde ændringer i små, reversible trin
Management of Infrastructure as Code (IaC): Terraform, Ansible og Plan Control med AI
Tidligere blev opsætning af en server udført med manuelle klik, kommandoer og personlige noter; Resultatet var irreproducerbare "snefnug"-servere, som ingen vidste præcist, hvordan de skulle opsætte. Infrastructure as Code (IaC) er den tilgang, der afslutter dette kaos: servere, netværk, sikkerhedsregler defineres ikke manuelt, men af versionsbare tekstfiler (kode). Når du kører denne kode, er infrastrukturen sat op præcis, som du skrev den - den samme, dokumenterede og kan gentages hver gang. De mest almindelige værktøjer er Terraform og CloudFormation til cloud-infrastruktur og Ansible til serverkonfiguration. Her er AI'en meget dygtig til at skrive, forklare og gennemgå denne IaC-kode. Men kraften ved IaC er også dens fare: én forkert linje kan udslette en hel infrastruktur; så AI'en skriver kode, du læser "planen", godkender den og udfører den.
I denne enhed vil vi diskutere den deklarative tilgang, plan/anvend skelnen, statssikkerhed og idempotens; Du vil lære IaC-generering med AI og den mest kritiske færdighed, "planstyring".
Tænker deklarativt: "hvad nu hvis", ikke "hvordan gør man"
De fleste IaC-værktøjer er deklarative: du beskriver den endelige tilstand af systemet ("lad os sige 3 webservere, 1 load balancer"), værktøjet beregner selv, hvordan man kommer til den tilstand. Dette er forskelligt fra at skrive et script ("gør dette, så gør det" trin for trin). Den store fordel ved den deklarative tilgang er idempotens: Selv hvis du kører koden ti gange, er resultatet det samme, fordi værktøjet tjekker, om den ønskede tilstand allerede eksisterer, og hvis den gør, rører den den ikke. Husk denne forskel, når du skriver IaC til AI'en: du får den til at sige "lad denne infrastruktur tilstand", ikke "kør disse kommandoer".
Planlæg/anvend: mest vitale sikkerhedsrækværk
Den livreddende funktion ved IaC er plantrinnet. I Terraform producerer terraform plan, i Ansible, --check-tilstand en forhåndsvisning af "hvad vil ændre sig, hvis jeg anvender det", før koden køres: "2 ressourcer vil blive tilføjet, 1 vil ændre sig, 0 vil blive slettet". Dette er den eneste måde at sammenligne din hensigt med virkeligheden før implementering. Kritisk regel: Ansøg aldrig uden at have læst planen. Se især efter "ødelæg"-linjerne; Hvis du ser "12 vil blive slettet" i stedet for "1 vil blive ændret" på grund af en tastefejl, har planen reddet dig fra katastrofe. Efter at have udskrevet koden til AI, skal du få det til at sige "undersøg planens output linje for linje med mig, marker hver linje, der indeholder sletning/genskabelse."
Forsigtig: Nogle ændringer af Terraform "ødelægger og genskaber" en ressource i stedet for at "opdatere på plads". Dette betyder tab af data for en database. At ignorere -/+ eller "tvinger udskiftning" i planoutputtet er en af de dyreste fejl.
Statsmappe: optegnelse over hemmeligheder og sandhed
Værktøjer som Terraform beholder den aktuelle tilstand af den infrastruktur, de administrerer, i en tilstandsfil. Denne fil er kritisk af to grunde. For det første kan det indeholde hemmeligheder (databaseadgangskoder, nøgler kan falde i tilstand i klartekst); Indsæt derfor aldrig staten i et offentligt lager eller AI, hold det i en krypteret og adgangsbegrænset fjernbackend. For det andet, hvis staten er korrupt eller tabt, mister køretøjet forbindelsen mellem den virkelige infrastruktur og den forestillede infrastruktur; Derfor er en backup af staten og en låsemekanisme (lås, der forhindrer to personer i at bryde den på samme tid) afgørende.
Trin for trin: Sikre IaC med AI
- Statens hensigt og udbyder. "2 servere på AWS, med Terraform, i denne region, denne størrelse og en sikkerhedsgruppe." Hvis skyen, værktøjet og versionen er klare, producerer AI den korrekte syntaks.
- Anmod om sikkerhedsstandarder. "Åbn sikkerhedsgruppe, aktiver kryptering, udtræk hemmeligheder til variable, giv offentlig adgang." AI kan som standard generere løse prøver.
- Læs og forstå koden. Forstå hver ressource, hver tilladelse, linje for linje. Anvend ikke en tilladelse, du ikke forstår.
- Få en plan og revider den. Kør plan/--tjek, undersøg output med AI, markér slette- og genopbyg linjerne.
- Påfør lille og vendbar. Gennemfør en stor forandring i små stykker, ikke alle på én gang. Kend vejen tilbage ved hvert skridt.
- Beskyt staten. Brug fjernbetjening, krypteret backend og lås; Aldrig utæt tilstand.
tre minisager
Tilfælde 1 — Planen genoprettede en database. En ingeniør ønskede at øge størrelsen af en database med Terraform-koden, han producerede med AI. Mens han forventede, at "1 skulle ændres" i terraform-planens output, så han "1 at ødelægge, 1 at tilføje" - den parameter, han valgte, udløste en genopbygning, ikke en opdatering på stedet, hvilket betyder, at alle data ville blive slettet. Plankontrol stoppede irreversibelt datatab, før det blev implementeret.
Tilfælde 2 — Retur fra løs standard. Et hold bad AI om en firewall-kode. For at køre eksemplet genererede AI en simpel regel på 0.0.0.0/0, hvilket betyder "offentlig på internettet". Ingeniøren bemærkede dette, mens han læste koden og indsnævrede adgangen til kun virksomhedens IP-område. Hvis den blev implementeret uden at blive revideret, ville databasen være åben for hele internettet.
Tilfælde 3 — Statslækage forhindret. Et juniormedlem var ved at indsætte terraform.tfstate-filen intakt i et offentligt værktøj for at løse et Terraform-problem. Senioringeniør stoppet: tilstand indeholdt en klartekst databaseadgangskode. I stedet blev en dekrypteret oversigt, der beskriver problemet, delt, og tilstanden blev flyttet til den fjernkrypterede backend.
Fire kopierbare skabeloner
1) Generering af IaC-ressourcer (sikker standard):
Din rolle: Senior cloud-infrastrukturingeniør. [Sky, f.eks. AWS] for[værktøj, f.eks. Terraform] generere kode. Formål: [formål].Sikkerhedsregler: offentlig (0.0.0.0/0) adgang ÅBEN; start med den snævreste tilladelse; slå kryptering til; udtræk hemmeligheder i variabler, indlejr dem ikke i kode; Tjek indstillinger, der kan føre til sletning/genskabelse. Forklar hver kilde med en kort kommentar.
2) Planlæg outputrevision:
Nedenfor er en [Terraform plan / Ansible check] output. Fortæl mig: (1) hvor mange ressourcer der vil blive tilføjet/ændret/slettet, (2) også markere linjerne "ødelæg" eller "tvinger udskiftning", der udgør en risiko for datatab, (3) angiv eventuelle ændringer, der virker uventede eller farlige. Output: [plan]
3) IaC kode sikkerhedsgennemgang:
Undersøg følgende IaC-kode for sikkerhed: (1) er der alt for bred adgang/tilladelser, (2) er kryptering slået fra, (3) er der hemmeligheder indlejret i koden, (4) er der offentligt tilgængelige ressourcer? Foreslå korrektion for hvert fund. Kode: [maskeret kode]
4) Opdel ændringen i sikre dele:
Jeg ønsker ikke at implementere denne store infrastrukturændring [forklaring] på én gang. Opdel det i små, selvstændige trin, som er nemme at komme tilbage til. For hvert trin: hvilke ændringer, hvad skal jeg være opmærksom på i planen, hvordan fortryder jeg det, hvis der er problemer?
Svag prompt / Stærk prompt
Svag prompt:
Skriv Terraform-kode, der opretter en server på AWS.
Region, størrelse, sikkerhed, netværk, kryptering er uklare. AI producerer de løseste, mest eksplicitte standarder for at fungere - hvis det sættes i produktion, ville det være en sårbarhed.
Kraftig prompt:
Din rolle: Senior cloud-infrastrukturingeniør. Definer en webserver med Terraform på AWS eu-central-1: t3.small, kun fra virksomhedens IP-område (jeg vil give det med en variabel), port 443 er åben, disken er krypteret, ingen offentlig adgang, etiketter er obligatoriske. Hemmeligheder afsløres for variablen. Efter koden: Inden du implementerer den, fortæl mig de 3 linjetyper, jeg skal være opmærksom på i planen, og forklar returstien.
Scene
Risiko
sikkerhedsrækværk
skrive kode
Løs standard (offentlig)
Snævreste tilladelse + læst
planlægge/tjek
Sletter uden at være klar over det
Planlæg inspektion, ødelægge mærkning
Ansøg
Større engangsændring
Små, vendbare trin
statsforvaltningen
Glasurlækage, forvrængning
Fjernkrypteret backend + lås
Almindelige fejl
- Ansøger uden at læse planen. Planen varsler sletning og genopbygning; Hvis det springes over, er datatab uundgåeligt.
- Lægger ikke mærke til den løse standard. AI-forekomster producerer ofte 0.0.0.0/0; Hvis det flyttes til produktion, betyder det open source til hele internettet.
- Lækkende tilstand. Eksport af tilstandsfilen til AI eller åbent lager afslører klarteksthemmeligheder.
- Indlejring af hemmeligheder i kode. At skrive adgangskoden i IaC-koden er en vedvarende lækage i kodeversionshistorikken.
- Forveksler en genopbygning for en opdatering. Ignorering af kraftudskiftningslinjen vil resultere i datatab i databaser.
Tip: Selv når du giver planoutputtet til en AI til gennemgang, skal du basere den endelige beslutning på din egen viden, ikke planteksten. AI opsummerer planen og markerer risikable linjer; men svaret på spørgsmålet "er denne sletning acceptabel" afhænger af din forretningsmæssige kontekst.
Sammenfattende
IaC bringer repeterbarhed og dokumentation ved at administrere infrastruktur med versionsbar kode i stedet for manuelle klik. AI er en stærk partner til at skrive denne kode, beskrive den og gennemgå den for sikkerheden. Men kraften ved IaC er dens fare: én linje kan udslette hele infrastrukturen. Tænk deklarativt, start med den snævreste tilladelse, ret løse standardindstillinger, hold hemmeligheder ude af kode og tilstand. Det mest vitale autoværn er plan-/kontroltrinnet: Udfør aldrig uden at læse slette- og genopbygningslinjerne. Hold staten krypteret, låst og fjernbetjening. Koden er AI's, beslutningen er din.
Ansøgningsopgave
Vælg et lille infrastrukturmål (f.eks. en enkelt virtuel maskine og en sikkerhedsregel). Med skabelonen "Generering af IaC-ressourcer" ovenfor, spørg AI om en kode med sikre standardindstillinger. Dobbelttjek koden med skabelonen "IaC-kodesikkerhedsgennemgang", og prøv at finde mindst én løs indstilling. Hvis det er muligt, kør plan/--check på en testkonto og gennemgå outputtet med skabelonen "Plan output check"; Se, om der er en slet- eller genskabelseslinje. Skriv dine resultater ned, og hvordan du vil sikre staten i 6 punkter.
tjekliste
- [ ] Har jeg specificeret sky, værktøj og version til AI og anmodet om kode med de smalleste tilladelser?
- [ ] Har jeg tjekket koden for løse standardindstillinger (0.0.0.0/0, lukket kryptering)?
- [ ] Har jeg udtrukket hemmelighederne til variablen i stedet for at indlejre dem i koden?
- [ ] Har jeg læst planen/tjekket output og markeret slettelinjerne, før jeg ansøgte?
- [ ] Har jeg evalueret datatabseffekten af "tvinger erstatning" / genopbygge linjer?
- Havde jeg ikke opbevaret [ ] State-filen krypteret, låst i fjernbetjeningen og lækket den ud?