Keuntungan:
- Kemampuan untuk menghasilkan kode IaC (Terraform, Ansible) dengan kecerdasan buatan dengan izin tersempit dan default yang aman serta memahami pendekatan deklaratif
- Kemampuan untuk mencegah kehilangan data dengan membaca dan menangkap garis penghapusan dan memaksa penggantian sebelum menerapkan keluaran rencana/pemeriksaan
- Kemampuan untuk mencegah kebocoran rahasia dengan menjaga file negara tetap terenkripsi, terkunci, di backend jarak jauh dan memecah perubahan menjadi langkah-langkah kecil yang dapat dibalik
Manajemen Infrastruktur sebagai Kode (IaC): Terraform, Ansible, dan Plan Control dengan AI
Di masa lalu, pengaturan server dilakukan dengan klik manual, perintah, dan catatan pribadi; Hasilnya adalah server "kepingan salju" yang tidak dapat direproduksi sehingga tidak ada yang tahu persis cara menyiapkannya. Infrastruktur sebagai Kode (IaC) adalah pendekatan yang mengakhiri kekacauan ini: server, jaringan, aturan keamanan ditentukan bukan dengan tangan, tetapi dengan file teks (kode) yang dapat diversi. Saat Anda menjalankan kode ini, infrastruktur diatur persis seperti yang Anda tulis — sama, terdokumentasi, dan dapat diulang setiap saat. Alat yang paling umum adalah Terraform dan CloudFormation untuk infrastruktur cloud dan Ansible untuk konfigurasi server. Disini AI sangat ahli dalam menulis, menjelaskan dan mereview kode IaC ini. Namun kekuatan IaC juga merupakan bahayanya: satu jalur yang salah dapat menghapus seluruh infrastruktur; jadi AI menulis kode, Anda membaca "rencana", menyetujuinya, dan menjalankannya.
Pada unit ini akan dibahas pendekatan deklaratif, pembedaan rencana/penerapan, keamanan negara dan idempotensi; Anda akan mempelajari generasi IaC dengan AI dan keterampilan paling penting, "kontrol rencana".
Berpikir secara deklaratif: “bagaimana jika”, bukan “bagaimana melakukan”
Sebagian besar alat IaC bersifat deklaratif: Anda mendeskripsikan keadaan akhir sistem ("misalkan 3 server web, 1 penyeimbang beban"), alat itu sendiri menghitung cara mencapai keadaan tersebut. Ini berbeda dengan menulis naskah (“lakukan ini, lalu lakukan itu” selangkah demi selangkah). Keuntungan besar dari pendekatan deklaratif adalah idempotensi: meskipun Anda menjalankan kode sepuluh kali, hasilnya tetap sama, karena alat memeriksa apakah keadaan yang diinginkan sudah ada, dan jika ada, alat tidak menyentuhnya. Ingat perbedaan ini ketika Anda menulis IaC ke AI: Anda membuatnya mengatakan "biarkan kondisi infrastruktur ini", bukan "jalankan perintah ini".
Rencanakan/terapkan: pagar keselamatan yang paling penting
Fitur IaC yang menyelamatkan jiwa adalah langkah rencana. Di Terraform, rencana terraform, dalam mode Ansible, --check menghasilkan pratinjau "apa yang akan berubah jika saya menerapkannya" sebelum menjalankan kode: "2 sumber daya akan ditambahkan, 1 akan berubah, 0 akan dihapus". Ini adalah satu-satunya cara untuk membandingkan niat Anda dengan kenyataan sebelum implementasi. Aturan penting: jangan pernah melamar tanpa membaca rencana. Carilah garis "hancurkan" secara khusus; Jika Anda melihat "12 akan dihapus" dan bukannya "1 akan diubah" karena kesalahan ketik, rencana tersebut telah menyelamatkan Anda dari bencana. Setelah mencetak kode ke AI, mintalah dikatakan "periksa keluaran rencana baris demi baris dengan saya, tandai setiap baris yang berisi penghapusan/rekreasi."
Perhatian: Beberapa perubahan pada Terraform "menghancurkan dan membuat ulang" sumber daya, bukan "memperbarui di tempatnya". Ini berarti kehilangan data untuk database. Mengabaikan -/+ atau "penggantian paksa" dalam keluaran rencana adalah salah satu kesalahan paling mahal.
File negara: catatan rahasia dan kebenaran
Alat seperti Terraform menyimpan status infrastruktur yang mereka kelola saat ini dalam file status. File ini penting karena dua alasan. Pertama, mungkin berisi rahasia (kata sandi basis data, kunci mungkin dimasukkan ke dalam teks biasa); Oleh karena itu, jangan pernah menempelkan status ke dalam repositori publik atau AI, simpan di backend jarak jauh yang terenkripsi dan aksesnya dibatasi. Kedua, jika negara rusak atau hilang, maka kendaraan tersebut kehilangan hubungan antara infrastruktur nyata dan infrastruktur yang dibayangkan; Oleh karena itu, cadangan keadaan dan mekanisme kunci (kunci yang mencegah dua orang memecahkannya secara bersamaan) sangatlah penting.
Langkah demi langkah: Amankan IaC dengan AI
- Nyatakan maksud dan penyedia. “2 server di AWS, dengan Terraform, di wilayah ini, dengan ukuran ini, dan grup keamanan.” Jika cloud, alat, dan versinya jelas, AI menghasilkan sintaksis yang benar.
- Minta default keamanan. "Buka grup keamanan, aktifkan enkripsi, ekstrak rahasia ke variabel, berikan akses publik." AI dapat menghasilkan sampel lepas secara default.
- Baca dan pahami kodenya. Pahami setiap sumber daya, setiap izin, baris demi baris. Jangan terapkan izin yang Anda tidak mengerti.
- Dapatkan rencana dan audit. Jalankan plan/--check, periksa output dengan AI, tandai baris hapus dan bangun kembali.
- Terapkan kecil dan reversibel. Terapkan perubahan besar secara kecil-kecilan, tidak sekaligus. Ketahui jalan kembali di setiap langkah.
- Lindungi Negara. Gunakan backend dan kunci terenkripsi jarak jauh; Jangan pernah membocorkan keadaan.
tiga kasus mini
Kasus 1 — Rencananya memulihkan database. Seorang insinyur ingin meningkatkan ukuran database dengan kode Terraform yang dia hasilkan dengan AI. Meskipun dia memperkirakan "1 akan diubah" dalam keluaran rencana terraform, dia melihat "1 akan dimusnahkan, 1 akan ditambahkan" — parameter yang dia pilih memicu pembangunan kembali, bukan pembaruan di tempat, yang berarti semua data akan dihapus. Pengendalian rencana menghentikan kehilangan data yang tidak dapat diubah sebelum diterapkan.
Kasus 2 — Kembali dari default longgar. Sebuah tim meminta kode firewall kepada AI. Untuk menjalankan contoh tersebut, AI menghasilkan aturan sederhana 0.0.0.0/0, yang berarti "publik di internet". Insinyur memperhatikan hal ini saat membaca kode dan mempersempit akses hanya ke rentang IP perusahaan. Jika diterapkan tanpa diaudit, database akan terbuka untuk seluruh internet.
Kasus 3 — Kebocoran negara dapat dicegah. Seorang anggota junior hendak menempelkan file terraform.tfstate secara utuh ke alat publik untuk menyelesaikan masalah Terraform. Insinyur senior berhenti: status berisi kata sandi basis data teks biasa. Sebaliknya, ringkasan dekripsi yang menjelaskan masalah dibagikan dan status dipindahkan ke backend terenkripsi jarak jauh.
Empat templat yang dapat disalin
1) Pembuatan sumber daya IaC (default aman):
Peran Anda: insinyur infrastruktur cloud senior. [Awan, mis. AWS] untuk[alat, mis. Terraform] menghasilkan kode. Tujuan: [tujuan].Aturan keamanan: akses publik (0.0.0.0/0) TERBUKA;mulai dengan izin yang paling sempit; aktifkan enkripsi; ekstrak rahasia ke dalam variabel, jangan masukkan ke dalam kode; Periksa pengaturan yang dapat menyebabkan penghapusan/pembuatan ulang. Jelaskan setiap sumber dengan komentar singkat.
2) Rencanakan audit keluaran:
Di bawah ini adalah keluaran [Rencana Terraform / Pemeriksaan yang memungkinkan]. Beri tahu saya: (1) berapa banyak sumber daya yang akan ditambahkan/diubah/dihapus, (2) tandai juga baris "hancurkan" atau "paksa penggantian" yang menimbulkan risiko kehilangan data, (3) buat daftar perubahan apa pun yang tampaknya tidak terduga atau berbahaya. Keluaran: [rencana]
3) Tinjauan keamanan kode IaC:
Periksa kode IaC berikut untuk keamanan: (1) apakah ada akses/izin yang terlalu luas, (2) apakah enkripsi dimatikan, (3) apakah ada rahasia yang tertanam dalam kode, (4) apakah ada sumber daya yang tersedia untuk umum? Sarankan koreksi untuk setiap temuan. Kode: [kode bertopeng]
4) Bagi kembalian menjadi beberapa bagian yang aman:
Saya tidak ingin menerapkan [penjelasan] perubahan infrastruktur besar ini sekaligus. Bagi menjadi langkah-langkah kecil dan mandiri yang mudah dilakukan kembali. Untuk setiap langkah: perubahan apa, apa yang harus saya perhatikan dalam rencana, bagaimana cara membatalkannya jika ada masalah?
Perintah lemah / Perintah kuat
Perintah yang lemah:
Tulis kode Terraform yang membuat server di AWS.
Wilayah, ukuran, keamanan, jaringan, enkripsi tidak jelas. AI menghasilkan default yang paling longgar dan paling eksplisit untuk berfungsi — jika dimasukkan ke dalam produksi, itu akan menjadi kerentanan.
Perintah yang kuat:
Peran Anda: insinyur infrastruktur cloud senior. Tentukan server web dengan Terraform di AWS eu-central-1: t3.small, hanya dari rentang IP perusahaan (saya akan memberikannya dengan variabel), port 443 terbuka, disk dienkripsi, tidak ada akses publik, label wajib. Rahasia terungkap ke variabel. Setelah kode: Sebelum menerapkannya, beri tahu saya 3 jenis garis yang harus saya perhatikan dalam rencana dan jelaskan jalur kembalinya.
Panggung
Resiko
pagar pengaman
menulis kode
Default longgar (publik)
Izin tersempit + baca
rencana/periksa
Menghapus tanpa menyadarinya
Rencanakan inspeksi, hancurkan penandaan
Terapkan
Perubahan besar satu kali saja
Langkah-langkah kecil yang dapat dibalik
administrasi negara
Kebocoran glasir, distorsi
Backend + kunci terenkripsi jarak jauh
Kesalahan umum
- Melamar tanpa membaca rencana. Rencana tersebut menandakan penghapusan dan rekonstruksi; Jika dilewati, kehilangan data tidak bisa dihindari.
- Tidak memperhatikan default yang longgar. Instance AI sering kali menghasilkan 0.0.0.0/0; Kalau dipindahkan ke produksi berarti open source ke seluruh internet.
- Keadaan Bocor. Mengekspor file negara ke AI atau repositori terbuka mengungkap rahasia teks biasa.
- Menanamkan rahasia dalam kode. Menulis kata sandi ke dalam kode IaC merupakan kebocoran yang terus-menerus dalam riwayat versi kode.
- Salah mengira pembangunan kembali sebagai pembaruan. Mengabaikan garis penggantian pasukan akan mengakibatkan hilangnya data dalam database.
Tip: Bahkan ketika memberikan keluaran rencana kepada AI untuk ditinjau, dasarkan keputusan akhir pada pengetahuan Anda sendiri, bukan teks rencana. AI merangkum rencana tersebut dan menandai garis-garis berisiko; namun jawaban atas pertanyaan "apakah penghapusan ini dapat diterima" bergantung pada konteks bisnis Anda.
Singkatnya
IaC menghadirkan pengulangan dan dokumentasi dengan mengelola infrastruktur dengan kode yang dapat diversikan, bukan klik manual. AI adalah mitra yang kuat dalam menulis kode ini, mendeskripsikannya, dan meninjaunya demi keamanan. Namun kekuatan IaC adalah bahayanya: satu saluran listrik dapat memusnahkan seluruh infrastruktur. Berpikirlah deklaratif, mulailah dengan izin yang paling sempit, perbaiki default yang longgar, jauhkan rahasia dari kode dan status. Pagar pembatas yang paling penting adalah langkah rencana/pemeriksaan: jangan pernah mengeksekusi tanpa membaca baris penghapusan dan pembangunan kembali. Jaga agar Status tetap terenkripsi, terkunci, dan jarak jauh. Kodenya ada di tangan AI, keputusan ada di tangan Anda.
Tugas aplikasi
Pilih target infrastruktur kecil (misalnya, satu mesin virtual dan aturan keamanan). Dengan templat "Pembuatan sumber daya IaC" di atas, mintalah kode dengan default aman kepada AI. Periksa kembali kode tersebut dengan templat "Tinjauan keamanan kode IaC" dan coba temukan setidaknya satu pengaturan yang longgar. Jika memungkinkan, jalankan plan/--check pada akun pengujian dan tinjau hasilnya dengan templat "Rencanakan pemeriksaan keluaran"; Lihat apakah ada baris hapus atau buat ulang. Tuliskan temuan Anda dan bagaimana Anda akan mengamankan negara dalam 6 poin.
daftar periksa
- [ ] Apakah saya menentukan cloud, alat, dan versi untuk AI serta meminta kode dengan izin paling sempit?
- [ ] Sudahkah saya memeriksa kode untuk mengetahui default yang longgar (0.0.0.0/0, enkripsi tertutup)?
- [] Sudahkah saya mengekstrak rahasia ke variabel alih-alih menyematkannya ke dalam kode?
- [ ] Apakah saya membaca rencana/memeriksa keluaran dan menandai baris hapus sebelum mendaftar?
- [ ] Sudahkah saya mengevaluasi dampak kehilangan data dari "penggantian pasukan"/jalur pembangunan kembali?
- Bukankah saya menyimpan file [ ] Negara yang dienkripsi, dikunci, di backend jarak jauh dan membocorkannya?