Terraform · Providers

Providers

Déclarez, versionnez, configurez et authentifiez les providers sans placer de secrets dans le HCL.

Leçon disponible
20 min

Objectifs

  • Expliquer le rôle d’un provider et du Terraform Registry.
  • Déclarer source et contrainte de version.
  • Distinguer exigence du provider et configuration du provider.
  • Utiliser une chaîne de credentials externe au code.

Relier Terraform aux plateformes

Un provider est un plugin qui traduit les resources Terraform en appels vers une API. Le Terraform Registry référence les providers, leur documentation et leurs versions.

AWS, Azure, GCP et Docker sont des exemples pris en charge par l’outil Terraform HCL Generator du projet. Chaque provider expose ses propres types de resources et options d’authentification.

Source et contrainte de version

required_providers déclare le nom local, la source globale et une plage de versions compatible. L’exemple ~> 6.0 accepte les versions 6.x du provider AWS, mais pas une future version majeure 7.x.

La contrainte doit être choisie et mise à jour après lecture des notes de version. Le fichier .terraform.lock.hcl enregistre la sélection concrète et doit généralement être versionné.

Exigence actuelle illustrant le provider AWS 6.x
terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 6.0"
    }
  }
}

provider "aws" {
  region = var.aws_region
}
Installer et inspecter les providers
terraform init
terraform providers

Une contrainte de version est une politique de compatibilité, pas une invitation à mettre à jour sans tests. Relisez toujours la documentation actuelle du Registry.

Configuration et authentification hors du code

Le bloc provider contient des paramètres non secrets comme une région. L’authentification doit utiliser les mécanismes recommandés par la plateforme : variables d’environnement, profil local, identité de workload, rôle ou credential chain.

  • Ne placez jamais access key, mot de passe, token ou clé privée dans un fichier .tf.
  • Accordez au compte Terraform uniquement les permissions nécessaires.
  • Séparez les identités et droits entre développement, staging et production.
  • Ne journalisez pas les variables d’environnement sensibles.

Providers courants

hashicorp/aws pilote AWS, hashicorp/azurerm Azure, hashicorp/google GCP et kreuzwerker/docker un moteur Docker. Leur syntaxe, leur version et leur authentification diffèrent : la documentation du provider reste la référence.

Mini résumé

  • Un provider relie Terraform à une API et expose des resources.
  • source et version se déclarent dans required_providers.
  • terraform init installe les providers compatibles et exploite le lock file.
  • Les credentials restent hors du HCL et suivent le moindre privilège.

Outils associés

Générer une configuration HCL

Utilisez Terraform HCL Generator pour préparer localement une base AWS, Azure, GCP ou Docker, puis relisez-la avant utilisation.

Ouvrir l’outil

Mini quiz

Trois questions pour vérifier les notions essentielles de la leçon.

1. Quel est le rôle principal d’un provider Terraform ?
2. Où déclare-t-on source et contrainte de version d’un provider ?
3. Quelle pratique convient aux credentials d’un provider cloud ?