Kebijakan Sentinel untuk Tata Kelola
Pelajari cara menulis dan menegakkan kebijakan sebagai kode menggunakan HashiCorp Sentinel untuk memastikan kepatuhan dan tata kelola di seluruh deployment Terraform.
Kebijakan Sentinel untuk Tata Kelola adalah pelajaran DevOps Bootcamp gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar DevOps Bootcamp, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus DevOps Bootcamp mencakup 4 pelajaran total.
Pengantar Kebijakan sebagai Kode & Sentinel
Bagaimana jika Anda dapat secara otomatis memastikan bahwa penerapan infrastruktur memenuhi aturan tertentu? Itulah kekuatan Kebijakan sebagai Kode (PaC). PaC mendefinisikan aturan untuk pembuatan dan modifikasi infrastruktur dengan cara yang dapat diprogram, sehingga menghadirkan tata kelola ke dalam alur kerja pengembangan Anda. HashiCorp Sentinel adalah kerangka kerja PaC yang kuat dan dirancang untuk tujuan ini.
Peran Sentinel dengan Terraform
Sentinel terintegrasi langsung dengan Terraform Cloud dan Terraform Enterprise. Sentinel bertindak sebagai penjaga gerbang yang mengevaluasi rencana eksekusi Terraform sebelum perubahan apa pun diterapkan ke lingkungan awan Anda. Langkah penting ini mencegah infrastruktur yang tidak sesuai atau tidak aman disediakan, sekaligus menegakkan aturan secara proaktif.
Kebijakan & Tingkat Penegakan
Kebijakan Sentinel adalah sekumpulan aturan yang ditulis dalam bahasa Sentinel. Saat suatu kebijakan dipicu, kebijakan tersebut mengembalikan true (lulus) atau false (gagal). Kebijakan dapat dikonfigurasi dengan tingkat penegakan yang berbeda:
- Penasihat: Memberikan peringatan tentang pelanggaran, tetapi mengizinkan operasi berlanjut.
- Wajib Lunak: Memerlukan pengesampingan eksplisit agar perubahan yang tidak sesuai dapat dilanjutkan.
- Wajib Keras: Memblokir operasi yang tidak sesuai sepenuhnya dan mewajibkan kepatuhan terhadap kebijakan.
Struktur Kebijakan Sentinel
Kebijakan Sentinel didefinisikan dalam berkas .sentinel. Kebijakan tersebut biasanya mencakup impor, aturan, dan kondisi utama. Aturan main menentukan hasil lulus atau gagal dari kebijakan.
Kebijakan dasar dapat terlihat seperti berikut:
import "tfplan"
main = rule {
tfplan.resource_changes is empty
}Mengakses Data Rencana Terraform
Impor tfplan menyediakan tampilan terstruktur dari rencana eksekusi Terraform. Kebijakan menggunakan data ini untuk memeriksa:
tfplan.resource_changes: Detail tentang sumber daya yang dibuat, diperbarui, atau dihapus.tfplan.variables: Variabel masukan yang diberikan ke konfigurasi.tfplan.outputs: Nilai keluaran dari konfigurasi.
Data ini sangat penting untuk membuat keputusan kebijakan yang tepat berdasarkan hal yang dimaksudkan Terraform untuk dilakukan.
Contoh: Menolak Wilayah yang Tidak Disetujui
Mari kita menulis kebijakan Sentinel untuk memastikan semua sumber daya AWS hanya diterapkan di us-east-1. Kebijakan ini memeriksa wilayah yang dikonfigurasi untuk setiap sumber daya AWS dalam rencana.
import "tfplan/v2" as tfplan
allowed_regions = ["us-east-1"]
is_region_allowed = func(resource_change) {
if resource_change.provider.name is "aws" {
region = resource_change.provider.config.region else "us-east-1"
return region in allowed_regions
}
return true # Not an AWS resource, allow
}
all_regions_compliant = all tfplan.resource_changes as _, rc {
is_region_allowed(rc)
}
main = rule {
all_regions_compliant
}Fungsi dan Operator Kebijakan
Sentinel menyediakan fungsi dan operator bawaan yang kuat untuk logika yang kompleks:
- Fungsi Koleksi:
all,any,filter,mapuntuk melakukan iterasi pada daftar atau peta. - Fungsi Tipe:
is,type_ofuntuk memeriksa tipe data. - Operator: Logika (
and,or,not) dan perbandingan (==,!=,>,<).
Fungsi dan operator ini membantu Anda membangun kebijakan yang tangguh dan ekspresif untuk mencakup berbagai skenario.
Contoh: Menegakkan Tag yang Diperlukan
Salah satu persyaratan tata kelola yang umum adalah menegakkan tag tertentu pada sumber daya untuk alokasi biaya atau identifikasi. Kebijakan ini memastikan bahwa semua sumber daya aws_instance yang baru atau diperbarui memiliki tag Project.
import "tfplan/v2" as tfplan
required_tags = ["Project"]
resource_has_required_tags = func(resource_change) {
if resource_change.type is "aws_instance" {
# Check if 'tags' attribute exists in the planned state
if not ("tags" in resource_change.change.after) {
return false
}
missing_tags = filter required_tags as tag {
not (tag in resource_change.change.after.tags)
}
return missing_tags is empty
}
return true # Not an aws_instance, allow
}
all_instances_tagged = all tfplan.resource_changes as _, rc {
(rc.change.actions contains "create" or rc.change.actions contains "update") ?
resource_has_required_tags(rc) :
true # Only check on create/update actions
}
main = rule {
all_instances_tagged
}Pengujian Kebijakan Lokal
Sebelum menerapkan kebijakan ke Terraform Cloud/Enterprise, Anda dapat mengujinya secara lokal menggunakan CLI Sentinel. Perintah sentinel test memungkinkan Anda menentukan kasus pengujian dengan data tfplan tiruan. Hal ini membantu Anda memverifikasi perilaku kebijakan dan menemukan kesalahan sejak awal, sehingga kebijakan bekerja sesuai tujuan tanpa memengaruhi lingkungan aktif.
Pemeriksaan Logika Kebijakan
Anda perlu membuat kebijakan Sentinel yang mencegah bucket AWS S3 dibuat dengan akses baca publik. Bagian tertentu dari data tfplan mana yang terutama akan Anda periksa untuk menegakkan aturan ini?
Ringkasan: Tata Kelola dengan Sentinel
Kita telah mempelajari HashiCorp Sentinel, kerangka kerja kebijakan sebagai kode yang kuat untuk tata kelola:
- Sentinel terintegrasi dengan Terraform Cloud/Enterprise untuk menegakkan aturan.
- Kebijakan mengevaluasi
tfplansebelum infrastruktur diterapkan. - Tingkat penegakan yang berbeda (penasihat, lunak, keras) mengendalikan dampak kebijakan.
- Anda dapat menulis kebijakan untuk menolak wilayah, menegakkan tag, dan banyak lagi.
- Pengujian lokal memastikan kebijakan bekerja sesuai tujuan sebelum diterapkan.
Sentinel sangat penting untuk mempertahankan kepatuhan, keamanan, dan standar operasional di seluruh penerapan infrastruktur Anda.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Kebijakan Sentinel untuk Tata Kelola” gratis?
Ya — teks lengkap “Kebijakan Sentinel untuk Tata Kelola” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus DevOps Bootcamp, upgrade ke CoddyKit PRO. Kursus DevOps Bootcamp mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Kebijakan Sentinel untuk Tata Kelola”?
Pelajari cara menulis dan menegakkan kebijakan sebagai kode menggunakan HashiCorp Sentinel untuk memastikan kepatuhan dan tata kelola di seluruh deployment Terraform. Kamu berlatih DevOps Bootcamp dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai DevOps Bootcamp?
Tidak diperlukan pengalaman sebelumnya. DevOps Bootcamp di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Kebijakan Sentinel untuk Tata Kelola” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran DevOps Bootcamp ini?
Ya. Setiap pelajaran DevOps Bootcamp menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Pola Multi-Cloud dan Hybrid Cloud
- Kebijakan Sentinel untuk Tata Kelola
- Terraform Cloud dan Enterprise
- Membangun Provider Khusus