единици
1. Въведение в изкуствения интелект в управлението на системи и мрежи: Роли, граници, удостоверяване и пълномощия 2. Скриптове за автоматизация: Безопасно генериране на Bash, PowerShell и Python 3. Анализ на регистрационния файл и анализ на първопричината: Намиране на сигнала в шума 4. Мониторинг на капацитета и производителността: Разчитане на показатели и планиране за бъдещето 5. Управление на конфигурацията: Генериране на конфигурация, валидиране и улавяне на отклонение 6. Управление на инфраструктурата като код (IaC): Terraform, Ansible и Plan Control 7. Управление на документация и информация: Runbook, Post mortem и корпоративна памет 8. Прогнозна поддръжка: Виждане на повреди, преди да се случат 9. Управление на промените: Оценка на риска, връщане назад и прозорец за поддръжка 10. Сигурност и отбрана: Използване на изкуствен интелект за отбранителни цели и в рамките на правомощията 11. Интеграция от край до край: Управление на инцидент от началото до края
единица 6 / 11

Управление на инфраструктурата като код (IaC): Terraform, Ansible и Plan Control

Печалби:

  • Възможност за създаване на IaC (Terraform, Ansible) код с изкуствен интелект с най-тесните разрешения и безопасни настройки по подразбиране и разбиране на декларативния подход
  • Възможност за предотвратяване на загуба на данни чрез четене и улавяне на редове за изтриване и принудителна замяна преди прилагане на изхода за план/проверка
  • Възможност за предотвратяване на тайно изтичане чрез поддържане на държавния файл криптиран, заключен в отдалечения бекенд и разделяне на промените на малки, обратими стъпки

Управление на инфраструктурата като код (IaC): Terraform, Ansible и Plan Control с AI

В миналото настройката на сървър се извършваше с ръчни кликвания, команди и лични бележки; Резултатът беше невъзпроизводими "снежинки" сървъри, които никой не знаеше как точно да настрои. Инфраструктурата като код (IaC) е подходът, който слага край на този хаос: сървърите, мрежите, правилата за сигурност се дефинират не на ръка, а чрез текстови файлове с възможност за версии (код). Когато стартирате този код, инфраструктурата е настроена точно както сте я написали - една и съща, документирана и повтаряща се всеки път. Най-често срещаните инструменти са Terraform и CloudFormation за облачна инфраструктура и Ansible за конфигурация на сървъра. Тук AI е много опитен в писането, обяснението и прегледа на този IaC код. Но силата на IAC е и неговата опасност: една грешна линия може да унищожи цяла инфраструктура; така че изкуственият интелект пише код, вие четете „плана“, одобрявате го и го изпълнявате.

В тази част ще обсъдим декларативния подход, разграничението план/прилагане, държавна сигурност и идемпотентност; Ще научите генериране на IaC с AI и най-критичното умение, „контрол на плана“.

Декларативно мислене: „ами ако“, а не „как да направя“

Повечето IaC инструменти са декларативни: вие описвате крайното състояние на системата („да речем 3 уеб сървъра, 1 балансьор на натоварването“), инструментът сам изчислява как да стигне до това състояние. Това е различно от писането на скрипт („направи това, след това направи това“ стъпка по стъпка). Голямото предимство на декларативния подход е идемпотентността: дори да стартирате кода десет пъти, резултатът е същият, защото инструментът проверява дали желаното състояние вече съществува и ако го има, не го докосва. Запомнете тази разлика, когато пишете IaC към AI: вие го карате да казва „оставете тази инфраструктура в състояние“, а не „изпълнете тези команди“.

Планирайте/приложете: най-важният предпазен парапет

Животоспасяващата функция на IaC е стъпката на плана. В Terraform, планът на terraform, в Ansible, режимът --check създава предварителен преглед на „какво ще се промени, ако го приложа“, преди да стартирам кода: „2 ресурса ще бъдат добавени, 1 ще се промени, 0 ще бъде изтрит“. Това е единственият начин да сравните намерението си с реалността преди изпълнение. Критично правило: никога не кандидатствайте, без да сте прочели плана. Потърсете специално линиите "destroy"; Ако видите „12 ще бъдат изтрити“ вместо „1 ще бъде променено“ поради печатна грешка, планът ви е спасил от катастрофа. След като отпечатате кода на AI, накарайте го да каже „разгледайте изхода на плана ред по ред с мен, маркирайте всеки ред, който съдържа изтриване/повторно създаване“.

Внимание: Някои промени в Terraform „унищожават и създават отново“ ресурс, вместо да „актуализират на място“. Това означава загуба на данни за база данни. Пренебрегването на -/+ или "принудително заместване" в изхода на плана е една от най-скъпите грешки.

Държавно досие: запис на тайни и истина

Инструменти като Terraform запазват текущото състояние на инфраструктурата, която управляват, във файл със състояние. Този файл е критичен по две причини. Първо, може да съдържа тайни (пароли за база данни, ключове могат да изпаднат в състояние в обикновен текст); Затова никога не поставяйте състоянието в публично хранилище или AI, дръжте го в криптиран отдалечен бекенд с ограничен достъп. Второ, ако държавата е повредена или изгубена, превозното средство губи връзката между реалната инфраструктура и въображаемата инфраструктура; Следователно резервното копие на състоянието и механизмът за заключване (заключване, което не позволява на двама души да го разбият едновременно) са от съществено значение.

Стъпка по стъпка: Защитете IaC с AI

  1. Държавно намерение и доставчик. „2 сървъра на AWS, с Terraform, в този регион, този размер и група за сигурност.“ Ако облакът, инструментът и версията са ясни, AI произвежда правилен синтаксис.
  2. Изискване на настройки по подразбиране за сигурност. „Отворете групата за сигурност, активирайте криптиране, извлечете тайни за променлива, дайте публичен достъп.“ AI може да генерира свободни проби по подразбиране.
  3. Прочетете и разберете кода. Разберете всеки ресурс, всяко разрешение, ред по ред. Не прилагайте разрешение, което не разбирате.
  4. Вземете план и го проверете. Изпълнете план/--проверете, прегледайте изхода с AI, маркирайте редовете за изтриване и възстановяване.
  5. Нанесете малки и обратими. Приложете голяма промяна на малки части, не всички наведнъж. Познавайте пътя обратно на всяка стъпка.
  6. Защита на държавата. Използвайте дистанционен, криптиран бекенд и заключване; Никога не пропускайте състояние.

три мини калъфа

Случай 1 — Планът възстанови база данни. Инженер искаше да увеличи размера на база данни с кода на Terraform, който създаде с AI. Докато очакваше „1 за промяна“ в изходния план на тераформата, той видя „1 за унищожаване, 1 за добавяне“ — параметърът, който избра, задейства възстановяване, а не актуализация на място, което означава, че всички данни ще бъдат изтрити. Контролът на плана спря необратимата загуба на данни, преди да бъде приложен.

Случай 2 — Връщане от loose default. Екип поиска от AI код за защитна стена. За да изпълни примера, AI генерира просто правило 0.0.0.0/0, което означава „обществено в интернет“. Инженерът забеляза това, докато четеше кода, и стесни достъпа само до IP обхвата на предприятието. Ако беше приложена без одит, базата данни щеше да бъде отворена за целия интернет.

Случай 3 — Предотвратено изтичане на състояние. Младши член се канеше да постави файла terraform.tfstate непокътнат в публичен инструмент за решаване на проблем с Terraform. Старши инженер спря: състоянието съдържа парола за база данни в обикновен текст. Вместо това беше споделено декриптирано резюме, описващо проблема, и състоянието беше преместено в отдалечения шифрован бекенд.

Четири копируеми шаблона

1) Генериране на IaC ресурси (сигурно по подразбиране):

Вашата роля: старши инженер по облачна инфраструктура. [Облак, напр. AWS] за [инструмент, напр. Terraform] генерира код. Цел: [предназначение]. Правила за сигурност: публичен (0.0.0.0/0) достъп ОТВОРЕНО; стартиране с най-тясното разрешение; включете криптиране; извличайте тайни в променливи, не ги вграждайте в код; Проверете настройките, които могат да доведат до изтриване/повторно създаване. Обяснете всеки източник с кратък коментар.

2) Планирайте одита на изхода:

По-долу е даден изход [План на тераформа / Анзибъл проверка]. Кажете ми: (1) колко ресурси ще бъдат добавени/променени/изтрити, (2) също маркирайте редовете „унищожаване“ или „принудителна замяна“, които представляват риск от загуба на данни, (3) избройте всички промени, които изглеждат неочаквани или опасни. Резултат: [план]

3) Преглед на сигурността на IAC кода:

Проверете следния IaC код за сигурност: (1) има ли прекалено широк достъп/разрешения, (2) изключено ли е криптирането, (3) има ли тайни, вградени в кода, (4) има ли публично достъпни ресурси? Предложете корекция за всяка констатация. Код: [маскиран код]

4) Разделете промяната на безопасни части:

Не искам да прилагам тази голяма инфраструктурна промяна [обяснение] наведнъж. Разделете го на малки, независими стъпки, към които е лесно да се върнете. За всяка стъпка: какви промени, на какво трябва да обърна внимание в плана, как да го отменя, ако има проблеми?

Слаба подкана / Силна подкана

Слаба подкана:

Напишете код на Terraform, който създава сървър на AWS.

Регионът, размерът, сигурността, мрежата, криптирането са неясни. AI произвежда най-свободните, най-явните настройки по подразбиране за работа - ако бъде пуснат в производство, това би било уязвимост.

Мощна подкана:

Вашата роля: старши инженер по облачна инфраструктура. Дефинирайте уеб сървър с Terraform на AWS eu-central-1: t3.small, само от корпоративния IP диапазон (ще го дам с променлива), порт 443 е отворен, дискът е криптиран, няма публичен достъп, етикетите са задължителни. Тайните се разкриват на променливата. След кода: Преди да го внедря, кажете ми 3 типа линии, на които трябва да обърна внимание в плана и обяснете обратния път.

Етап

Риск

предпазен парапет

писане на код

Разхлабена настройка по подразбиране (публична)

Най-тясното разрешение + четене

план/проверка

Изтриване без да осъзнаваш

Планирайте инспекция, унищожете маркировката

Кандидатствайте

Голяма еднократна промяна

Малки, обратими стъпки

държавна администрация

Изтичане на глазура, изкривяване

Дистанционно криптиран бекенд + заключване

Често срещани грешки

  • Кандидатстване без четене на плана. Планът предвещава заличаване и реконструкция; Ако се пропусне, загубата на данни е неизбежна.
  • Без да забелязвате разхлабеното по подразбиране. AI екземплярите често произвеждат 0.0.0.0/0; Ако бъде преместен в производство, това означава отворен код за целия интернет.
  • Течаща държава. Експортирането на държавния файл в AI или отворено хранилище разкрива тайни в обикновен текст.
  • Вграждане на тайни в кода. Записването на паролата в IaC кода е постоянно изтичане в историята на версиите на кода.
  • Объркайте реконструкцията с актуализация. Пренебрегването на реда за замяна на сили ще доведе до загуба на данни в базите данни.
Съвет: Дори когато предоставяте изхода на плана на AI за преглед, вземете окончателното решение на базата на собствените си знания, а не на текста на плана. AI обобщава плана и маркира рискови линии; но отговорът на въпроса „приемливо ли е това изтриване“ зависи от вашия бизнес контекст.

В обобщение

IaC осигурява повторяемост и документация чрез управление на инфраструктура с код с възможност за версии, а не с ръчно кликване. AI е мощен партньор в писането на този код, описването му и прегледа му за сигурност. Но силата на IAC е неговата опасност: една линия може да унищожи цялата инфраструктура. Мислете декларативно, започнете с най-тясното разрешение, коригирайте свободните настройки по подразбиране, пазете тайните извън кода и състоянието. Най-важната защитна парапет е стъпката на план/проверка: никога не изпълнявайте, без да прочетете редовете за изтриване и възстановяване. Поддържайте състоянието криптирано, заключено и отдалечено. Кодът е на AI, решението е ваше.

Задача за приложение

Изберете малка инфраструктурна цел (например една виртуална машина и правило за сигурност). С шаблона „Генериране на ресурси на IaC“ по-горе помолете AI за код с безопасни настройки по подразбиране. Проверете отново кода с шаблона „Преглед на сигурността на IaC кода“ и се опитайте да намерите поне една свободна настройка. Ако е възможно, стартирайте план/--проверка на тестов акаунт и прегледайте изхода с шаблона „Планирайте проверка на изхода“; Вижте дали има ред за изтриване или повторно създаване. Запишете констатациите си и как ще осигурите държавата в 6 точки.

контролен списък

  • [] Посочих ли облак, инструмент и версия на AI и поисках ли код с най-тесните разрешения?
  • [ ] Проверих ли кода за разхлабени настройки по подразбиране (0.0.0.0/0, затворено криптиране)?
  • [ ] Извлякъл ли съм тайните на променливата, вместо да ги вградя в кода?
  • [ ] Прочетох ли резултата от плана/проверката и маркирах ли редовете за изтриване, преди да приложа?
  • [ ] Оценил ли съм въздействието на загубата на данни от „принудителната подмяна“/възстановяване на редове?
  • Не държах ли файла [ ​​] State криптиран, заключен в отдалечения бекенд и не го изтекох?