Sentinel-Richtlinien für Governance
Lernen Sie, mit HashiCorp Sentinel Richtlinien als Code zu schreiben und durchzusetzen, um Compliance und Governance in Ihren Terraform-Deployments sicherzustellen.
Sentinel-Richtlinien für Governance ist eine kostenlose DevOps Bootcamp-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des DevOps Bootcamp-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Einführung in Policy as Code und Sentinel
Was wäre, wenn Sie automatisch sicherstellen könnten, dass Ihre Infrastruktur-Bereitstellungen bestimmte Regeln erfüllen? Genau das ermöglicht Policy as Code (PaC). PaC definiert Regeln für die Erstellung und Änderung von Infrastruktur auf programmierbare Weise und integriert Governance in Ihren Entwicklungsprozess. HashiCorp Sentinel ist ein leistungsfähiges PaC-Framework, das für diesen Zweck entwickelt wurde.
Die Rolle von Sentinel in Terraform
Sentinel lässt sich direkt in Terraform Cloud und Terraform Enterprise integrieren. Es fungiert als Kontrollinstanz und bewertet Ihren Terraform-Ausführungsplan bevor Änderungen auf Ihre Cloud-Umgebung angewendet werden. Dieser entscheidende Schritt verhindert, dass nicht konforme oder unsichere Infrastruktur überhaupt bereitgestellt wird, und setzt Regeln proaktiv durch.
Richtlinien und Durchsetzungsstufen
Eine Sentinel-Richtlinie ist eine Reihe von Regeln, die in der Sprache Sentinel geschrieben werden. Wird eine Richtlinie ausgelöst, gibt sie true (bestanden) oder false (fehlgeschlagen) zurück. Richtlinien können mit verschiedenen Durchsetzungsstufen konfiguriert werden:
- Advisory: Warnt vor Verstößen, lässt den Vorgang aber fortsetzen.
- Soft-Mandatory: Erfordert eine ausdrückliche Überschreibung, damit nicht konforme Änderungen fortgesetzt werden können.
- Hard-Mandatory: Blockiert nicht konforme Vorgänge vollständig und erfordert die Einhaltung der Richtlinie.
Struktur einer Sentinel-Richtlinie
Sentinel-Richtlinien werden in .sentinel-Dateien definiert. Sie enthalten typischerweise Imports, Regeln und eine Hauptbedingung. Die main-Regel bestimmt, ob die Richtlinie bestanden wird oder fehlschlägt.
Eine einfache Richtlinie könnte so aussehen:
import "tfplan"
main = rule {
tfplan.resource_changes is empty
}Auf Daten des Terraform-Plans zugreifen
Der Import tfplan stellt eine strukturierte Ansicht des Terraform-Ausführungsplans bereit. Richtlinien verwenden diese Daten, um Folgendes zu untersuchen:
tfplan.resource_changes: Details zu Ressourcen, die erstellt, aktualisiert oder gelöscht werden.tfplan.variables: Eingabevariablen, die für die Konfiguration bereitgestellt werden.tfplan.outputs: Ausgabewerte der Konfiguration.
Diese Daten sind entscheidend, um fundierte Richtlinienentscheidungen auf Grundlage dessen zu treffen, was Terraform vorhat.
Beispiel: Nicht genehmigte Regionen ablehnen
Schreiben wir eine Sentinel-Richtlinie, um sicherzustellen, dass alle AWS-Ressourcen ausschließlich in us-east-1 bereitgestellt werden. Diese Richtlinie prüft die für jede AWS-Ressource im Plan konfigurierte Region.
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
}Richtlinienfunktionen und Operatoren
Sentinel stellt leistungsfähige integrierte Funktionen und Operatoren für komplexe Logik bereit:
- Sammlungsfunktionen:
all,any,filter,mapzum Durchlaufen von Listen und Maps. - Typfunktionen:
is,type_ofzum Überprüfen von Datentypen. - Operatoren: Logische Operatoren (
and,or,not) und Vergleichsoperatoren (==,!=,>,<).
Damit können Sie robuste und ausdrucksstarke Richtlinien für unterschiedlichste Szenarien erstellen.
Beispiel: Erforderliche Tags durchsetzen
Eine häufige Anforderung an die Governance besteht darin, bestimmte Tags für die Kostenzuordnung oder Identifizierung von Ressourcen durchzusetzen. Diese Richtlinie stellt sicher, dass alle neu erstellten oder aktualisierten aws_instance-Ressourcen über ein Project-Tag verfügen.
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
}Lokales Testen von Richtlinien
Bevor Sie Richtlinien in Terraform Cloud/Enterprise bereitstellen, können Sie sie lokal mit der Sentinel-CLI testen. Mit dem Befehl sentinel test können Sie Testfälle mit simulierten tfplan-Daten definieren. So können Sie das Verhalten der Richtlinie überprüfen und Fehler frühzeitig erkennen. Dadurch stellen Sie sicher, dass Ihre Richtlinien wie vorgesehen funktionieren, ohne Live-Umgebungen zu beeinflussen.
Überprüfung der Richtlinienlogik
Sie müssen eine Sentinel-Richtlinie erstellen, die verhindert, dass ein AWS-S3-Bucket mit öffentlichem Lesezugriff erstellt wird. Welchen konkreten Teil der tfplan-Daten würden Sie hauptsächlich untersuchen, um dies durchzusetzen?
Zusammenfassung: Governance mit Sentinel
Wir haben HashiCorp Sentinel kennengelernt, ein leistungsfähiges Policy-as-Code-Framework für Governance:
- Es lässt sich in Terraform Cloud/Enterprise integrieren, um Regeln durchzusetzen.
- Richtlinien bewerten den
tfplan, bevor die Infrastruktur angewendet wird. - Verschiedene Durchsetzungsstufen (Advisory, Soft-Mandatory, Hard-Mandatory) steuern die Auswirkungen der Richtlinie.
- Sie können Richtlinien schreiben, um Regionen abzulehnen, Tags durchzusetzen und vieles mehr.
- Durch lokale Tests wird sichergestellt, dass die Richtlinien vor der Bereitstellung wie vorgesehen funktionieren.
Sentinel ist entscheidend, um Compliance, Sicherheit und betriebliche Standards bei Ihren Infrastruktur-Bereitstellungen einzuhalten.
Häufig gestellte Fragen
Ist die Lektion „Sentinel-Richtlinien für Governance“ kostenlos?
Ja — der vollständige Text von „Sentinel-Richtlinien für Governance“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des DevOps Bootcamp-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Sentinel-Richtlinien für Governance“?
Lernen Sie, mit HashiCorp Sentinel Richtlinien als Code zu schreiben und durchzusetzen, um Compliance und Governance in Ihren Terraform-Deployments sicherzustellen. Du übst DevOps Bootcamp mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um DevOps Bootcamp zu starten?
Keine Vorkenntnisse erforderlich. DevOps Bootcamp auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Sentinel-Richtlinien für Governance“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser DevOps Bootcamp-Lektion Code schreiben und ausführen?
Ja. Jede DevOps Bootcamp-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Multi-Cloud- und Hybrid-Cloud-Muster
- Sentinel-Richtlinien für Governance
- Terraform Cloud und Enterprise
- Benutzerdefinierte Provider entwickeln