À propos du projet

Ce dépôt fournit une configuration Terraform minimale mais orientée production pour déployer une seule instance Amazon EC2 sur AWS. Elle crée un VPC dédié, un sous-réseau, une passerelle internet, une table de routage, un journal de flux, un groupe de sécurité, une Elastic IP, une instance EC2 et une paire de clés SSH générée. Elle initialise également un backend d'état Terraform distant à l'aide de buckets S3 avec versionnage, chiffrement et blocage de l'accès public, une table de verrouillage DynamoDB et des clés KMS. La configuration utilise des fichiers .tf plats et numérotés avec 18 variables documentées et 5 sorties. Les versions des fournisseurs sont épinglées à des builds exacts dans le fichier de verrouillage, et la CI exécute des vérifications de formatage, d'initialisation, de validation et tflint. Le projet inclut des tests qui exécutent un plan contre des fournisseurs simulés et vérifient des propriétés de sécurité telles que la rotation des clés KMS, le chiffrement des buckets et la récupérabilité du verrouillage d'état. Les pratiques de chaîne d'approvisionnement incluent des archives de release signées par Sigstore, une provenance SLSA, des images CI épinglées par digest et des GitHub Actions épinglées par SHA. Le README fournit également une liste de contrôle de production couvrant la migration de l'état distant, le resserrement du groupe de sécurité, la planification basée sur la CI et la détection de dérive. Notez que les règles par défaut du groupe de sécurité ouvrent SSH et HTTP(S) à Internet, les utilisateurs doivent donc restreindre l'accès avant toute utilisation réelle.