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é.
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 6.0"
}
}
}
provider "aws" {
region = var.aws_region
}terraform init
terraform providersUne 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.
Erreur fréquente : hardcoder des credentials
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’outilMini quiz
Trois questions pour vérifier les notions essentielles de la leçon.