Добивки:
- Способност за производство на IaC (Terraform, Ansible) код со вештачка интелигенција со најтесни дозволи и безбедни стандардни вредности и разбирање на декларативниот пристап
- Способност да се спречи губење на податоци со читање и снимање линии за бришење и принудно замена пред да се примени излезот на план/проверка
- Способност да се спречи тајно истекување со чување на државната датотека шифрирана, заклучена, во далечинскиот задниот дел и прекршување на промените во мали, реверзибилни чекори
Управување со инфраструктурата како код (IaC): Terraform, Ansible и Plan Control with AI
Во минатото, поставувањето на серверот се правеше со рачни кликања, команди и лични белешки; Резултатот беа неповторливи сервери „снегулка“ кои никој не знаеше точно како да ги постави. Инфраструктурата како код (IaC) е пристапот со кој се става крај на овој хаос: серверите, мрежите, безбедносните правила не се дефинираат рачно, туку со текстуални датотеки што може да се верзиираат (код). Кога ќе го извршите овој код, инфраструктурата се поставува точно како што сте ја напишале - иста, документирана и повторлива секој пат. Најчестите алатки се Terraform и CloudFormation за облак инфраструктура и Ansible за конфигурација на серверот. Овде вештачката интелигенција е многу вешт во пишувањето, објаснувањето и прегледувањето на овој IaC код. Но, моќта на IaC е и негова опасност: една погрешна линија може да избрише цела инфраструктура; па вештачката интелигенција пишува код, вие го читате „планот“, го одобрувате и извршите.
Во оваа единица ќе разговараме за декларативниот пристап, планот/применувањето на дистинкцијата, државната безбедност и немоќта; Ќе ја научите генерацијата IaC со вештачка интелигенција и најкритичната вештина „контрола на планот“.
Размислување декларативно: „што ако“, а не „како да се направи“
Повеќето IaC алатки се декларативни: ја опишувате конечната состојба на системот („да речеме 3 веб сервери, 1 load balancer“), самата алатка пресметува како да се дојде до таа состојба. Ова е различно од пишување скрипта („направи го ова, па направи го тоа“ чекор по чекор). Големата предност на декларативниот пристап е идемпотенција: дури и ако го извршите кодот десет пати, резултатот е ист, бидејќи алатката проверува дали саканата состојба веќе постои, а ако постои, не ја допира. Запомнете ја оваа разлика кога ќе напишете IaC на вештачката интелигенција: ќе ја натерате да каже „нека состојбата на оваа инфраструктура“, а не „изврши ги овие команди“.
Планирајте/применете: најважна безбедносна ограда
Карактеристиката за спасување живот на IaC е чекорот на планот. Во Terraform, terraform plan, во Ansible, --check режимот произведува преглед на „што ќе се смени ако го применам“ пред да се изврши кодот: „Ќе се додадат 2 ресурси, 1 ќе се промени, 0 ќе се избрише“. Ова е единствениот начин да ја споредите вашата намера со реалноста пред имплементацијата. Критично правило: никогаш не применувајте без да го прочитате планот. Побарајте ги особено линиите „уништи“; Ако видите „12 ќе бидат избришани“ наместо „1 ќе се промени“ поради печатна грешка, планот ве спасил од катастрофа. Откако ќе го испечатите кодот на вештачката интелигенција, нека каже „испитај го излезот на планот линија по ред со мене, означи ја секоја линија што содржи бришење/рекреација“.
Внимание: некои промени на Terraform „уништуваат и создаваат“ ресурс наместо „да се ажурираат на место“. Ова значи губење на податоци за базата на податоци. Игнорирањето -/+ или „силата замена“ во излезот на планот е една од најскапите грешки.
Државно досие: запис за тајните и вистината
Алатките како Terraform ја задржуваат моменталната состојба на инфраструктурата со која управуваат во државна датотека. Оваа датотека е критична поради две причини. Прво, може да содржи тајни (лозинки на базата на податоци, клучевите може да паднат во состојба во обичен текст); Затоа, никогаш не ставајте ја состојбата во јавно складиште или вештачка интелигенција, чувајте ја во шифрирана и ограничена за пристап оддалечена заднина. Второ, ако државата е корумпирана или изгубена, возилото ја губи врската помеѓу вистинската инфраструктура и замислената инфраструктура; Затоа, резервна копија на состојбата и механизам за заклучување (брава што спречува две лица да ја скршат истовремено) се од суштинско значење.
Чекор по чекор: Обезбедете IaC со вештачка интелигенција
- Државна намера и давател. „2 сервери на AWS, со Terraform, во овој регион, со оваа големина и безбедносна група“. Ако облакот, алатката и верзијата се јасни, вештачката интелигенција произведува правилна синтакса.
- Побарајте поставки за безбедност. „Отворете ја безбедносната група, овозможете шифрирање, извлечете тајни во променливата, доделете јавен пристап“. ВИ стандардно може да генерира лабави примероци.
- Прочитајте го и разберете го кодот. Разберете го секој ресурс, секоја дозвола, линија по линија. Не применувајте дозвола што не ја разбирате.
- Добијте план и прегледајте го. Извршете го планот/--проверете, испитајте го излезот со вештачка интелигенција, означете ги линиите за бришење и обновување.
- Нанесете мала и реверзибилна. Спроведете голема промена во мали парчиња, не одеднаш. Знајте го патот назад на секој чекор.
- Заштитете ја државата. Користете далечински, шифриран заднина и заклучување; Никогаш не пропуштајте состојба.
три мини футроли
Случај 1 - Планот обнови база на податоци. Еден инженер сакал да ја зголеми големината на базата на податоци со Terraform кодот што го создал со вештачка интелигенција. Додека очекуваше „1 да се промени“ во излезот на терраформниот план, виде „1 за уништување, 1 за додавање“ - параметарот што тој го избра предизвикува обнова, а не ажурирање на место, што значи дека сите податоци ќе бидат избришани. Контролата на планот го запре неповратното губење на податоци пред да се спроведе.
Случај 2 - Враќање од лабаво стандардно. Тим побара од AI код за заштитен ѕид. За да го извршиме примерот, вештачката интелигенција генерира едноставно правило од 0.0.0.0/0, што значи „јавно на интернет“. Инженерот го забележал ова додека го читал кодот и го стеснил пристапот само до опсегот на IP на претпријатието. Доколку се имплементира без да биде ревидирана, базата на податоци би била отворена за целиот интернет.
Случај 3 - Спречено истекување на државата. Еден помлад член требаше да ја залепи датотеката terraform.tfstate недопрена во јавна алатка за да реши проблем со Terraform. Високиот инженер запре: состојбата содржеше лозинка за базата на податоци со обичен текст. Наместо тоа, беше споделено дешифрирано резиме што го опишува проблемот и состојбата беше преместена во далечинскиот шифриран заден дел.
Четири шаблони за копирање
1) Генерирање на ресурси за IaC (безбедно стандардно):
Вашата улога: виш инженер за облак инфраструктура. [Облак, на пр. AWS] за[алатка, на пр. Terraform] генерира код. Цел: [цел].Безбедносни правила: јавен (0.0.0.0/0) пристап ОТВОРЕН;започнете со најтесна дозвола; вклучи шифрирање; извлечете тајни во променливи, не ги вметнувајте во код; Проверете ги поставките што може да доведат до бришење/рекреирање. Објаснете го секој извор со краток коментар.
2) Планирајте ревизија на излезот:
Подолу е излез [Terraform plan / Ansible check]. Кажи ми: (1) колку ресурси ќе бидат додадени/променети/избришани, (2) исто така означете ги линиите „уништи“ или „присили замена“ кои претставуваат ризик од губење податоци, (3) наведете ги сите промени што изгледаат неочекувани или опасни. Излез: [план]
3) Безбедносен преглед на IaC кодот:
Испитајте го следниов IaC код за безбедност: (1) дали има премногу широк пристап/дозволи, (2) дали е исклучено шифрирањето, (3) дали има тајни вградени во кодот, (4) дали има јавно достапни ресурси? Предложете корекција за секој наод. Код: [маскиран код]
4) Поделете ја промената на сигурни делови:
Не сакам да ја спроведам оваа голема инфраструктурна промена [објаснување] одеднаш. Поделете го на мали, независни чекори на кои е лесно да се вратите. За секој чекор: што се менува, на што треба да обрнам внимание во планот, како да го поништам ако има проблеми?
Слаб промпт / Силен промпт
Слаба навестување:
Напишете Terraform код кој создава сервер на AWS.
Регионот, големината, безбедноста, мрежата, шифрирањето се нејасни. Вештачката интелигенција произведува најлабави, најексплицитни стандардни за работа - ако се стави во производство, тоа би било ранливост.
Моќен потсетник:
Вашата улога: виш инженер за облак инфраструктура. Дефинирајте веб-сервер со Terraform на AWS eu-central-1: t3.small, само од корпоративната IP опсег (ќе го дадам со променлива), портот 443 е отворен, дискот е шифриран, нема јавен пристап, етикетите се задолжителни. Тајните и се откриваат на променливата. По кодот: Пред да го имплементирате, кажете ми кои се 3-те типа на линии на кои треба да обрнам внимание во планот и објаснете ја патеката за враќање.
Фаза
Ризик
заштитна ограда
пишување код
Лабаво стандардно (јавно)
Најтесна дозвола + читање
план/проверка
Бришење без да го сфатите
Планирајте инспекција, уништи означување
Пријавете се
Голема еднократна промена
Мали, реверзибилни чекори
државната администрација
Истекување на глазура, изобличување
Далечински шифриран заднина + заклучување
Вообичаени грешки
- Пријавување без читање на планот. Планот предвидува бришење и реконструкција; Ако се прескокне, загубата на податоци е неизбежна.
- Не забележувајќи го лабавото стандардно. Инстанците со вештачка интелигенција често произведуваат 0.0.0.0/0; Ако се префрли во производство, тоа значи отворен код за целиот интернет.
- Државата што протекува. Извезувањето на државната датотека во вештачка интелигенција или отворено складиште ги открива тајните на обичен текст.
- Вметнување тајни во код. Запишувањето на лозинката во кодот IaC е постојано протекување во историјата на верзијата на кодот.
- Погрешно обнова со ажурирање. Игнорирањето на линијата за замена на силите ќе резултира со губење на податоци во базите на податоци.
Совет: Дури и кога го давате излезот од планот на вештачка интелигенција за преглед, конечната одлука засновајте ја на сопственото знаење, а не на текстот на планот. ВИ го сумира планот и ги означува ризичните линии; но одговорот на прашањето „дали ова бришење е прифатливо“ зависи од вашиот деловен контекст.
Сумирано
IaC носи повторливост и документација преку управување со инфраструктурата со код кој може да се верзија, наместо со рачни кликнувања. Вештачката интелигенција е моќен партнер во пишувањето на овој код, опишувањето и прегледувањето за безбедност. Но, моќта на IaC е неговата опасност: една линија може да ја избрише целата инфраструктура. Размислете декларативно, започнете со најтесната дозвола, поправете лабави стандардни вредности, чувајте ги тајните надвор од кодот и државата. Највиталната заштитна ограда е чекорот на план/проверка: никогаш не извршувајте без да ги прочитате линиите за бришење и обновување. Чувајте ја државата шифрирана, заклучена и оддалечена. Кодот е ВИ, одлуката е ваша.
Задача за апликација
Изберете мала инфраструктурна цел (на пример, една виртуелна машина и безбедносно правило). Со шаблонот „Генерирање на ресурси IaC“ погоре, побарајте од AI код со безбедни стандардни поставки. Повторно проверете го кодот со шаблонот „безбедносен преглед на кодот IaC“ и обидете се да најдете барем една лабава поставка. Ако е можно, извршете план/--проверете на тест-сметка и прегледајте го излезот со шаблонот „Проверка на излез на план“; Погледнете дали има линија за бришење или повторно создавање. Запишете ги вашите наоди и како ќе ја обезбедите државата во 6 точки.
листа за проверка
- [ ] Дали наведов облак, алатка и верзија на вештачката интелигенција и побарав код со најтесни дозволи?
- [ ] Дали го проверив кодот за лабави стандардни вредности (0.0.0.0/0, затворено шифрирање)?
- [ ] Дали ги извлеков тајните на променливата наместо да ги вградувам во кодот?
- [ ] Дали го прочитав излезот од план/проверка и ги означив линиите за бришење пред да аплицирам?
- [ ] Дали го проценив влијанието на загубата на податоци на линиите за „замена на сили“ / обнова?
- Нели ја чував датотеката [ ] State шифрирана, заклучена, во оддалечениот заден дел и не ја протеков?