0Pricing
Terraform Infrastructure as Code · Leçon

Politiques Sentinel pour la gouvernance

Apprenez à rédiger et à appliquer des politiques sous forme de code avec HashiCorp Sentinel pour garantir la conformité et la gouvernance de vos déploiements Terraform.

Politiques Sentinel pour la gouvernance est une leçon Terraform Infrastructure as Code gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Terraform Infrastructure as Code, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Terraform Infrastructure as Code comprend 4 leçons au total.

Introduction aux stratégies sous forme de code et à Sentinel

Et si vous pouviez vérifier automatiquement que vos déploiements d’infrastructure respectent certaines règles ? C’est tout l’intérêt des stratégies sous forme de code (PaC). Les PaC définissent de manière programmable des règles pour créer et modifier l’infrastructure, intégrant ainsi la gouvernance à votre flux de développement. HashiCorp Sentinel est un puissant cadre PaC conçu à cet effet.

Rôle de Sentinel avec Terraform

Sentinel s’intègre directement à Terraform Cloud et Terraform Enterprise. Il joue le rôle de gardien en évaluant votre plan d’exécution Terraform avant l’application de toute modification à votre environnement cloud. Cette étape essentielle empêche toute mise à disposition d’une infrastructure non conforme ou non sécurisée et permet de faire respecter les règles de manière proactive.

Stratégies et niveaux d’application

Une stratégie Sentinel est un ensemble de règles écrites dans le langage Sentinel. Lorsqu’une stratégie est déclenchée, elle renvoie true (réussite) ou false (échec). Les stratégies peuvent être configurées avec différents niveaux d’application :

  • Consultatif : signale les violations, mais autorise la poursuite de l’opération.
  • Obligatoire avec assouplissement : nécessite une dérogation explicite pour poursuivre avec des modifications non conformes.
  • Strictement obligatoire : bloque entièrement les opérations non conformes et exige le respect de la stratégie.

Structure d’une stratégie Sentinel

Les stratégies Sentinel sont définies dans des fichiers .sentinel. Elles comprennent généralement des importations, des règles et une condition principale. La règle main détermine si la stratégie réussit ou échoue.

Une stratégie de base peut se présenter comme suit :

import "tfplan"

main = rule {
  tfplan.resource_changes is empty
}

Accéder aux données du plan Terraform

L’importation tfplan fournit une vue structurée du plan d’exécution Terraform. Les stratégies utilisent ces données pour examiner :

  • tfplan.resource_changes : les détails des ressources créées, mises à jour ou supprimées.
  • tfplan.variables : les variables d’entrée fournies à la configuration.
  • tfplan.outputs : les valeurs de sortie de la configuration.

Ces données sont essentielles pour prendre des décisions éclairées concernant les stratégies, en fonction de ce que Terraform prévoit de faire.

Exemple : interdire les régions non approuvées

Écrivons une stratégie Sentinel pour garantir que toutes les ressources AWS sont déployées uniquement dans us-east-1. Cette stratégie vérifie la région configurée pour chaque ressource AWS du plan.

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
}

Fonctions et opérateurs des stratégies

Sentinel fournit de puissantes fonctions et de puissants opérateurs intégrés pour gérer une logique complexe :

  • Fonctions de collection : all, any, filter, map pour parcourir des listes ou des cartes.
  • Fonctions de type : is, type_of pour vérifier les types de données.
  • Opérateurs : logiques (and, or, not) et de comparaison (==, !=, >, <).

Ils vous aident à créer des stratégies robustes et expressives couvrant différents scénarios.

Exemple : imposer les balises requises

Une exigence courante en matière de gouvernance consiste à imposer des balises précises aux ressources pour répartir les coûts ou les identifier. Cette stratégie garantit que toutes les ressources aws_instance nouvelles ou mises à jour possèdent une balise 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
}

Tester les stratégies localement

Avant de déployer des stratégies dans Terraform Cloud/Enterprise, vous pouvez les tester localement à l’aide de la CLI Sentinel. La commande sentinel test vous permet de définir des cas de test avec des données tfplan simulées. Vous pouvez ainsi vérifier le comportement des stratégies et détecter rapidement les erreurs, afin de vous assurer qu’elles fonctionnent comme prévu sans affecter les environnements en production.

Vérification de la logique d’une stratégie

Vous devez créer une stratégie Sentinel qui empêche la création de tout compartiment AWS S3 avec un accès public en lecture. Quelle partie précise des données tfplan examineriez-vous principalement pour appliquer cette règle ?

Récapitulatif : gouvernance avec Sentinel

Nous avons découvert HashiCorp Sentinel, un puissant cadre de stratégies sous forme de code pour la gouvernance :

  • Il s’intègre à Terraform Cloud/Enterprise pour faire respecter les règles.
  • Les stratégies évaluent le tfplan avant l’application de l’infrastructure.
  • Différents niveaux d’application (consultatif, assoupli, strict) contrôlent l’impact des stratégies.
  • Vous pouvez écrire des stratégies pour interdire certaines régions, imposer des balises et bien plus encore.
  • Les tests locaux vérifient que les stratégies fonctionnent comme prévu avant leur déploiement.

Sentinel est essentiel pour préserver la conformité, la sécurité et les normes opérationnelles dans vos déploiements d’infrastructure.

Questions Fréquemment Posées

La leçon « Politiques Sentinel pour la gouvernance » est-elle gratuite ?

Oui — le texte complet de « Politiques Sentinel pour la gouvernance » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Terraform Infrastructure as Code, passe à CoddyKit PRO. Le cours Terraform Infrastructure as Code comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Politiques Sentinel pour la gouvernance » ?

Apprenez à rédiger et à appliquer des politiques sous forme de code avec HashiCorp Sentinel pour garantir la conformité et la gouvernance de vos déploiements Terraform. Tu pratiques Terraform Infrastructure as Code avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Terraform Infrastructure as Code ?

Aucune expérience préalable n'est requise. Terraform Infrastructure as Code sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Politiques Sentinel pour la gouvernance » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Terraform Infrastructure as Code ?

Oui. Chaque leçon Terraform Infrastructure as Code inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Architectures multicloud et cloud hybride
  2. Politiques Sentinel pour la gouvernance
  3. Terraform Cloud et Enterprise
  4. Créer des fournisseurs personnalisés
← Retour à Terraform Infrastructure as Code