Qazanclar:
- Ən dar icazələr və təhlükəsiz defoltlarla süni intellektlə IaC (Terraform, Ansible) kodu yaratmaq və deklarativ yanaşmanı başa düşmək bacarığı
- Plan/check çıxışını tətbiq etməzdən əvvəl silmək və məcburi dəyişdirmə xətlərini oxumaq və çəkməklə məlumat itkisinin qarşısını almaq bacarığı
- Dövlət faylını şifrələnmiş, kilidli, uzaq arxa hissədə saxlamaq və dəyişiklikləri kiçik, geri qaytarıla bilən addımlara bölmək yolu ilə gizli sızmanın qarşısını almaq imkanı
İnfrastrukturun Kod kimi İdarə edilməsi (IaC): AI ilə Terraform, Ansible və Plan Nəzarəti
Keçmişdə serverin qurulması əl ilə kliklər, əmrlər və şəxsi qeydlərlə həyata keçirilirdi; Nəticə, heç kimin necə qurulacağını dəqiq bilməyən təkrarolunmaz "qar dənəciyi" serverləri oldu. Kod kimi infrastruktur (IaC) bu xaosa son qoyan yanaşmadır: serverlər, şəbəkələr, təhlükəsizlik qaydaları əl ilə deyil, versiya edilə bilən mətn faylları (kod) ilə müəyyən edilir. Bu kodu işə saldığınız zaman infrastruktur tam olaraq yazdığınız kimi qurulur – eyni, sənədləşdirilmiş və hər dəfə təkrarlana biləndir. Ən çox yayılmış alətlər bulud infrastrukturu üçün Terraform və CloudFormation və server konfiqurasiyası üçün Ansible-dir. Burada AI bu IaC kodunu yazmaq, izah etmək və nəzərdən keçirməkdə çox bacarıqlıdır. Lakin IaC-nin gücü onun təhlükəsidir: bir səhv xətt bütün infrastrukturu məhv edə bilər; Beləliklə, AI kod yazır, siz "planı" oxuyursunuz, onu təsdiqləyirsiniz və icra edirsiniz.
Bu bölmədə biz deklarativ yanaşma, plan/tətbiq fərqi, dövlət təhlükəsizliyi və səlahiyyətsizliyi müzakirə edəcəyik; Siz AI və ən kritik bacarıq olan "plan nəzarəti" ilə IaC nəslini öyrənəcəksiniz.
Deklarativ şəkildə düşünmək: "necə etməli" deyil, "nə olarsa"
Əksər IaC alətləri deklarativdir: sistemin son vəziyyətini təsvir edirsiniz ("tutaq ki, 3 veb server, 1 yük balanslaşdırıcı"), alət özü bu vəziyyətə necə çatmağı hesablayır. Bu, skript yazmaqdan fərqlidir (“bunu et, sonra bunu et”). Deklarativ yanaşmanın böyük üstünlüyü idempotentlikdir: kodu on dəfə işlətsəniz belə, nəticə eynidir, çünki alət istədiyiniz vəziyyətin artıq olub-olmadığını yoxlayır, əgər varsa, ona toxunmur. Süni intellektə IaC yazarkən bu fərqi xatırlayın: siz ona "bu əmrləri yerinə yetirin" deyil, "bu infrastrukturun vəziyyətini bildirin" deyəcəksiniz.
Planlaşdırın/tətbiq edin: ən həyati təhlükəsizlik barmaqlığı
IaC-nin həyat qurtaran xüsusiyyəti plan addımıdır. Terraform-da terraform planı, Ansible-də --check rejimi kodu işə salmazdan əvvəl "tətbiq etsəm nə dəyişəcək"-in önizləməsini yaradır: "2 resurs əlavə olunacaq, 1 dəyişəcək, 0 silinəcək". Bu, həyata keçirməzdən əvvəl niyyətinizi reallıqla müqayisə etməyin yeganə yoludur. Kritik qayda: planı oxumadan heç vaxt müraciət etməyin. Xüsusilə "məhv" xətlərinə baxın; Hərf səhvinə görə "12 silinəcək" əvəzinə "12 silinəcək" yazısını görsəniz, plan sizi fəlakətdən xilas etdi. Kodu AI-yə çap etdikdən sonra, "planın çıxış sətirini mənimlə sətir-sətir yoxlayın, silmə/istirahət ehtiva edən hər sətri qeyd edin."
Diqqət: Terraform-da bəzi dəyişikliklər "yerində yeniləmək" əvəzinə resursu "məhv edir və yenidən yaradır". Bu, verilənlər bazası üçün məlumat itkisi deməkdir. Plan çıxışında -/+ və ya "məcburi dəyişdirmə" ifadələrinə məhəl qoymamaq ən bahalı səhvlərdən biridir.
Dövlət faylı: sirlərin və həqiqətlərin qeydi
Terraform kimi alətlər idarə etdikləri infrastrukturun cari vəziyyətini dövlət faylında saxlayır. Bu fayl iki səbəbə görə vacibdir. Birincisi, o, sirləri ehtiva edə bilər (verilənlər bazasının parolları, açarlar açıq mətndə vəziyyətə düşə bilər); Buna görə də, heç vaxt dövləti ictimai depoya və ya süni intellektə yapışdırmayın, onu şifrələnmiş və girişi məhdudlaşdırılmış uzaqdan idarəetmə bazasında saxlayın. İkincisi, dövlət xarab olarsa və ya itərsə, nəqliyyat vasitəsi real infrastrukturla xəyali infrastruktur arasındakı əlaqəni itirir; Buna görə də, dövlətin ehtiyat nüsxəsi və kilid mexanizmi (iki nəfərin eyni anda onu pozmasına mane olan kilid) vacibdir.
Addım-addım: AI ilə IaC-ni qoruyun
- Dövlət niyyəti və təminatçısı. "AWS-də 2 server, Terraform ilə, bu bölgədə, bu ölçüdə və bir təhlükəsizlik qrupu." Bulud, alət və versiya aydındırsa, AI düzgün sintaksisi istehsal edir.
- Təhlükəsizlik defoltlarını tələb edin. "Təhlükəsizlik qrupunu açın, şifrələməni aktivləşdirin, dəyişənə sirləri çıxarın, ictimai giriş verin." AI standart olaraq boş nümunələr yarada bilər.
- Kodu oxuyun və anlayın. Hər resursu, hər icazəni, sətir-sətir anlayın. Anlamadığınız icazəni tətbiq etməyin.
- Bir plan alın və onu yoxlayın. Planı işə salın/--yoxlayın, AI ilə çıxışı yoxlayın, silmək və yenidən qurmaq xətlərini qeyd edin.
- Kiçik və geri dönə bilən tətbiq edin. Bir anda deyil, kiçik parçalarda böyük bir dəyişiklik həyata keçirin. Hər addımda geri dönüş yolunu bilin.
- Dövləti qoruyun. Uzaqdan, şifrələnmiş arxa hissədən və kiliddən istifadə edin; Heç vaxt vəziyyəti sızdırmayın.
üç mini qutu
Case 1 - Plan verilənlər bazasını bərpa etdi. Mühəndis AI ilə istehsal etdiyi Terraform kodu ilə verilənlər bazasının ölçüsünü artırmaq istəyirdi. Terraform planının çıxışında "1 dəyişəcək" gözləyərkən, o, "məhv etmək üçün 1, əlavə etmək üçün 1" gördü - seçdiyi parametr yerində yeniləməni deyil, yenidən qurmağı işə salırdı, yəni bütün məlumatlar silinəcəkdir. Plan nəzarəti həyata keçirilməzdən əvvəl geri dönməz məlumat itkisini dayandırdı.
2-ci hal - boş defoltdan qayıt. Bir komanda AI-dən firewall kodu istədi. Nümunəni işə salmaq üçün AI "internetdə ictimai" mənasını verən 0.0.0.0/0 sadə qayda yaratdı. Mühəndis kodu oxuyarkən bunu fərq etdi və yalnız müəssisənin IP diapazonuna girişi daraltdı. Əgər o, yoxlanılmadan həyata keçirilsəydi, verilənlər bazası bütün internetə açıq olardı.
3-cü hal - Dövlət sızmasının qarşısı alındı. Kiçik üzv Terraform problemini həll etmək üçün terraform.tfstate faylını bütöv şəkildə ictimai alətə yapışdırmaq üzrə idi. Baş mühəndis dayandı: dövlətdə açıq mətn verilənlər bazası parolu var. Əvəzində problemi təsvir edən şifrəsi açılmış xülasə paylaşıldı və dövlət uzaqdan şifrələnmiş arxa hissəyə köçürüldü.
Dörd kopyalana bilən şablon
1) IaC resurs yaratmaq (təhlükəsiz defolt):
Rolunuz: baş bulud infrastrukturu mühəndisi. [Bulud, məs. AWS] üçün [alət, məs. Terraform] kodu yaradın. Məqsəd: [məqsəd].Təhlükəsizlik qaydaları: açıq (0.0.0.0/0) giriş AÇIQ;ən dar icazə ilə başlayın; şifrələməni yandırın; sirləri dəyişənlərə çıxarın, onları koda yerləşdirməyin; Silinməyə/istirahətə səbəb ola biləcək parametrləri yoxlayın. Hər bir mənbəni qısa şərhlə izah edin.
2) Nəticə auditini planlaşdırın:
Aşağıda [Terraform planı / Ansible check] çıxışı var. Mənə deyin: (1) nə qədər resurs əlavə ediləcək/dəyişdiriləcək/silinəcək, (2) həmçinin məlumat itkisi riski yaradan “məhv et” və ya “əvəz etməyə məcbur edir” sətirlərini qeyd edin, (3) gözlənilməz və ya təhlükəli görünən dəyişiklikləri sadalayın. Nəticə: [plan]
3) IaC kodu təhlükəsizlik baxışı:
Təhlükəsizlik üçün aşağıdakı IaC kodunu yoxlayın: (1) həddən artıq geniş giriş/icazələr varmı, (2) şifrələmə söndürülüb, (3) koda daxil edilmiş sirlər varmı, (4) ictimaiyyətə açıq resurslar varmı? Hər tapıntı üçün düzəliş təklif edin. Kod: [maskalı kod]
4) Dəyişikliyi təhlükəsiz hissələrə bölün:
Mən bu böyük infrastruktur dəyişikliyini [izahı] birdən həyata keçirmək istəmirəm. Onu geri qayıtmaq asan olan kiçik, müstəqil addımlara bölün. Hər bir addım üçün: hansı dəyişikliklər, planda nələrə diqqət etməliyəm, problemlər olarsa, onu necə geri qaytarmalıyam?
Zəif məlumat / Güclü göstəriş
Zəif çağırış:
AWS-də server yaradan Terraform kodunu yazın.
Region, ölçü, təhlükəsizlik, şəbəkə, şifrələmə aydın deyil. Süni intellekt işləmək üçün ən boş, ən açıq defoltları istehsal edir - istehsala qoyulsa, bu, zəiflik olardı.
Güclü göstəriş:
Rolunuz: baş bulud infrastrukturu mühəndisi. AWS eu-central-1-də Terraform ilə veb serveri təyin edin: t3.small, yalnız korporativ IP diapazonundan (onu dəyişənlə verəcəyəm), port 443 açıqdır, disk şifrələnir, ictimai giriş yoxdur, etiketlər məcburidir. Dəyişənlərə sirlər açılır. Koddan sonra: Onu həyata keçirməzdən əvvəl mənə planda diqqət etməli olduğum 3 sətir növünü deyin və geri dönüş yolunu izah edin.
Mərhələ
Risk
təhlükəsizlik barmaqlığı
kod yazmaq
Boş defolt (ictimai)
Ən dar icazə + oxumaq
planlaşdırmaq/yoxlamaq
Farkında olmadan silmək
Təftişi planlaşdırın, işarələməni məhv edin
Müraciət edin
Birdəfəlik əsas dəyişiklik
Kiçik, geri dönə bilən addımlar
dövlət idarəsi
Parıltı sızması, təhrif
Uzaqdan şifrələnmiş arxa uç + kilid
Ümumi səhvlər
- Planı oxumadan müraciət etmək. Plan silinmə və yenidən qurulmasını nəzərdə tutur; Əgər atlanırsa, məlumat itkisi qaçılmazdır.
- Boş default fərq etməmək. AI nümunələri tez-tez 0.0.0.0/0 verir; İstehsalata köçürülürsə, bu, bütün internet üçün açıq mənbə deməkdir.
- Sızdıran dövlət. Dövlət faylının AI və ya açıq depoya ixracı açıq mətn sirlərini ifşa edir.
- Koda sirlərin daxil edilməsi. Parolun IaC koduna yazılması kod versiyasının tarixçəsində davamlı sızmadır.
- Yenidən qurmağı yeniləmə üçün səhv salmaq. Qüvvələrin dəyişdirilməsi xəttinə məhəl qoymamaq verilənlər bazalarında məlumat itkisi ilə nəticələnəcək.
İpucu: Hətta planın nəticəsini nəzərdən keçirmək üçün AI-yə verərkən belə, son qərarı plan mətninə deyil, öz biliyinizə əsaslandırın. AI planı ümumiləşdirir və riskli xətləri qeyd edir; lakin "bu silinmə məqbuldurmu" sualının cavabı biznes kontekstindən asılıdır.
Xülasə
IaC əl ilə kliklərdən daha çox versiya kodu ilə infrastrukturu idarə etməklə təkrarlanabilirlik və sənədləşdirmə gətirir. Süni intellekt bu kodu yazmaqda, onu təsvir etməkdə və təhlükəsizlik baxımından nəzərdən keçirməkdə güclü tərəfdaşdır. Lakin IaC-nin gücü onun təhlükəsidir: bir xətt bütün infrastrukturu silə bilər. Deklarativ düşünün, ən dar icazə ilə başlayın, boş defoltları düzəldin, sirləri koddan və vəziyyətdən kənarda saxlayın. Ən vacib qoruyucu plan/yoxlama addımıdır: silmə və yenidən qurma xətlərini oxumadan heç vaxt icra etməyin. Dövləti şifrələnmiş, kilidli və uzaqdan saxlayın. Kod süni intellektə aiddir, qərar sizindir.
Tətbiq tapşırığı
Kiçik bir infrastruktur hədəfi seçin (məsələn, tək virtual maşın və təhlükəsizlik qaydası). Yuxarıdakı "IaC resurs yaratmaq" şablonu ilə AI-dən təhlükəsiz defoltları olan kod tələb edin. "IaC kodu təhlükəsizliyinə baxış" şablonu ilə kodu iki dəfə yoxlayın və ən azı bir boş parametr tapmağa çalışın. Mümkünsə, plan/--test hesabını yoxlayın və "Plan çıxışının yoxlanılması" şablonu ilə çıxışı nəzərdən keçirin; Silmək və ya yenidən yaratmaq xəttinin olub olmadığına baxın. Tapıntılarınızı və dövləti necə təmin edəcəyinizi 6 nöqtədə yazın.
yoxlama siyahısı
- [ ] Mən AI üçün bulud, alət və versiya təyin etdim və ən dar icazələrlə kod tələb etdim?
- [ ] Mən kodu boş defoltlara görə yoxladımmı (0.0.0.0/0, qapalı şifrələmə)?
- [ ] Mən dəyişənə sirləri koda daxil etmək əvəzinə çıxarmışammı?
- [ ] Tətbiq etməzdən əvvəl plan/yoxlama çıxışını oxudum və silmə sətirlərini qeyd etdimmi?
- [ ] Mən "qüvvələrin dəyişdirilməsi" / xətlərin yenidən qurulmasının məlumat itkisinə təsirini qiymətləndirmişəm?
- Mən [ ] Dövlət faylını şifrlənmiş, kilidlənmiş, uzaq arxa hissədə saxlamamış və onu sızdırmamışdımmı?