Yönetişim için Sentinel Politikaları
Terraform dağıtımlarınız genelinde uyumluluk ve yönetişim sağlamak için HashiCorp Sentinel kullanarak politika olarak kod yazmayı ve uygulamayı öğrenin.
Yönetişim için Sentinel Politikaları, CoddyKit'te ücretsiz bir DevOps Bootcamp dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, DevOps Bootcamp öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. DevOps Bootcamp kursu toplamda 4 dersten oluşur.
Kod Olarak İlkeye ve Sentinel'e Giriş
Altyapı dağıtımlarınızın belirli kuralları otomatik olarak karşılamasını sağlayabilseydiniz ne olurdu? Kod Olarak İlkenin (PaC) gücü budur. PaC, altyapı oluşturma ve değiştirme kurallarını programlanabilir bir şekilde tanımlar ve yönetişimi geliştirme iş akışınıza taşır. HashiCorp Sentinel, bu amaç için tasarlanmış güçlü bir PaC çerçevesidir.
Sentinel'in Terraform'daki Rolü
Sentinel, Terraform Cloud ve Terraform Enterprise ile doğrudan bütünleşir. Bir bekçi gibi davranarak Terraform yürütme planınızı, bulut ortamınıza herhangi bir değişiklik uygulanmadan önce değerlendirir. Bu kritik adım, kurallara uymayan veya güvenli olmayan altyapının herhangi bir zaman sağlanmasını önler ve kuralları proaktif olarak uygular.
İlkeler ve Uygulama Düzeyleri
Sentinel ilkesi, Sentinel dilinde yazılmış bir kurallar kümesidir. Bir ilke tetiklendiğinde true (başarılı) veya false (başarısız) sonucunu döndürür. İlkeler farklı uygulama düzeyleriyle yapılandırılabilir:
- Danışma: İhlaller hakkında uyarır ancak işlemin sürdürülmesine izin verir.
- Yumuşak Zorunlu: Kurallara uymayan değişikliklerle devam etmek için açık bir geçersiz kılma işlemi gerektirir.
- Kesin Zorunlu: Kurallara uymayan işlemleri tamamen engeller ve ilkeye uyulmasını zorunlu kılar.
Sentinel İlkesi Yapısı
Sentinel ilkeleri .sentinel dosyalarında tanımlanır. Genellikle içe aktarmalar, kurallar ve bir ana koşul içerir. main kuralı, ilkenin başarılı ya da başarısız sonucunu belirler.
Basit bir ilke şu şekilde görünebilir:
import "tfplan"
main = rule {
tfplan.resource_changes is empty
}Terraform Plan Verilerine Erişme
tfplan içe aktarması, Terraform yürütme planının yapılandırılmış bir görünümünü sağlar. İlkeler bu verileri şunları incelemek için kullanır:
tfplan.resource_changes: Oluşturulan, güncellenen veya silinen kaynakların ayrıntıları.tfplan.variables: Yapılandırmaya sağlanan giriş değişkenleri.tfplan.outputs: Yapılandırmadan alınan çıkış değerleri.
Bu veriler, Terraform'un ne yapmayı amaçladığına dayanarak bilinçli ilke kararları almak için kritik öneme sahiptir.
Örnek: Onaylanmayan Bölgeleri Reddetme
Tüm AWS kaynaklarının yalnızca us-east-1 bölgesinde dağıtılmasını sağlamak için bir Sentinel ilkesi yazalım. Bu ilke, plandaki her AWS kaynağı için yapılandırılan bölgeyi denetler.
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
}İlke İşlevleri ve İşleçleri
Sentinel, karmaşık mantık için güçlü yerleşik işlevler ve işleçler sağlar:
- Koleksiyon İşlevleri: Listeler ve eşlemeler üzerinde yineleme yapmak için
all,any,filter,map. - Tür İşlevleri: Veri türlerini denetlemek için
is,type_of. - İşleçler: Mantıksal (
and,or,not) ve karşılaştırma (==,!=,>,<) işleçleri.
Bunlar, çeşitli senaryoları kapsayan sağlam ve ifade gücü yüksek ilkeler oluşturmanıza yardımcı olur.
Örnek: Gerekli Etiketleri Zorunlu Kılma
Yaygın bir yönetişim gereksinimi, maliyet dağıtımı veya tanımlama amacıyla kaynaklarda belirli etiketleri zorunlu kılmaktır. Bu ilke, tüm yeni veya güncellenmiş aws_instance kaynaklarının bir Project etiketine sahip olmasını sağlar.
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
}Yerel İlke Sınaması
İlkeleri Terraform Cloud/Enterprise'a dağıtmadan önce Sentinel CLI'yi kullanarak bunları yerel olarak sınayabilirsiniz. sentinel test komutu, sahte tfplan verileriyle sınama durumları tanımlamanıza olanak tanır. Bu, canlı ortamları etkilemeden ilkelerin beklediğiniz gibi çalıştığını doğrulamanıza ve hataları erkenden yakalamanıza yardımcı olur.
İlke Mantığı Denetimi
Herhangi bir AWS S3 paketinin genel okuma erişimiyle oluşturulmasını önleyen bir Sentinel ilkesi oluşturmanız gerekiyor. Bunu uygulamak için tfplan verilerinin hangi belirli bölümünü öncelikle incelersiniz?
Özet: Sentinel ile Yönetişim
Yönetişim için güçlü bir kod olarak ilke çerçevesi olan HashiCorp Sentinel'i inceledik:
- Kuralları uygulamak için Terraform Cloud/Enterprise ile bütünleşir.
- İlkeler, altyapı uygulanmadan önce
tfplan'ı değerlendirir. - Farklı uygulama düzeyleri (danışma, yumuşak, kesin), ilkenin etkisini denetler.
- Bölgeleri reddetmek, etiketleri zorunlu kılmak ve çok daha fazlası için ilkeler yazabilirsiniz.
- Yerel sınama, dağıtımdan önce ilkelerin beklenen şekilde çalışmasını sağlar.
Sentinel, altyapı dağıtımlarınız genelinde uyumluluk, güvenlik ve işletim standartlarını korumak için kilit öneme sahiptir.
Yapay zeka eğitmeniyle DevOps Bootcamp öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 142
- Dersler
- 568
Sıkça Sorulan Sorular
“Yönetişim için Sentinel Politikaları” dersi ücretsiz mi?
Evet — “Yönetişim için Sentinel Politikaları” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve DevOps Bootcamp kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. DevOps Bootcamp kursu toplamda 4 dersten oluşur.
“Yönetişim için Sentinel Politikaları” dersinde ne öğreneceğim?
Terraform dağıtımlarınız genelinde uyumluluk ve yönetişim sağlamak için HashiCorp Sentinel kullanarak politika olarak kod yazmayı ve uygulamayı öğrenin. DevOps Bootcamp ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
DevOps Bootcamp öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te DevOps Bootcamp, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Yönetişim için Sentinel Politikaları” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu DevOps Bootcamp dersinde kod yazıp çalıştırabilir miyim?
Evet. Her DevOps Bootcamp dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Çoklu Bulut ve Hibrit Bulut Örüntüleri
- Yönetişim için Sentinel Politikaları
- Terraform Cloud ve Enterprise
- Özel Sağlayıcılar Oluşturma