0Pricing
Terraform Infrastructure as Code · Pelajaran

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 Terraform Infrastructure as Code 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 Terraform Infrastructure as Code, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Terraform Infrastructure as Code 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, map untuk melakukan iterasi pada daftar atau peta.
  • Fungsi Tipe: is, type_of untuk 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 tfplan sebelum 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 Terraform Infrastructure as Code, upgrade ke CoddyKit PRO. Kursus Terraform Infrastructure as Code 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 Terraform Infrastructure as Code 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 Terraform Infrastructure as Code?

Tidak diperlukan pengalaman sebelumnya. Terraform Infrastructure as Code 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 Terraform Infrastructure as Code ini?

Ya. Setiap pelajaran Terraform Infrastructure as Code 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

  1. Pola Multi-Cloud dan Hybrid Cloud
  2. Kebijakan Sentinel untuk Tata Kelola
  3. Terraform Cloud dan Enterprise
  4. Membangun Provider Khusus
← Kembali ke Terraform Infrastructure as Code