Portfolio as Code : AWS & Terraform
Déploiement serverless et hautement sécurisé de ce portfolio statique sur AWS avec Route 53, ACM, CloudFront, et un bucket S3 privé verrouillé par Origin Access Control (OAC). Politique d'en-têtes stricts (HSTS, CSP) garantissant une note de sécurité maximale.
Terraform
(IaC)
AWS
CloudFront (OAC)
Amazon
S3 Sécurisé
AWS
Route 53
AWS
ACM
account_tree Schéma d'Architecture & Sécurité
open_in_new Plein écran
Architecture serverless isolée : Route 53 ➔ CloudFront (OAC) ➔ Bucket S3
privé
zoom_in
Cliquez sur l'image pour agrandir
terminal Voir la version texte (ASCII)
[Utilisateur HTTPS] ──► [Amazon Route 53 (DNS)]
│
▼
[AWS CloudFront CDN]
┌─────────────────────┐
│ - Certificat ACM TLS│
│ - CloudFront JS Func│ (Redirection 301 www vers apex)
│ - SecurityHeaders │ (HSTS 1 an, CSP, X-Frame DENY)
└──────────┬──────────┘
│ (Origin Access Control - OAC)
▼
[Amazon S3 Bucket]
(Bucket 100% privé, aucun accès public direct)
verified_user Décisions d'Ingénierie & Sécurité
- check Origin Access Control (OAC) : Le bucket S3 bloque 100 % des accès publics. Seule la distribution CloudFront est autorisée par politique IAM à lire les objets, éliminant tout contournement.
-
check
Politique de sécurité CloudFront : Configuration d'en-têtes HTTP
stricts via
aws_cloudfront_response_headers_policy: HSTS avec durée de 31536000 s, X-Frame-Options DENY, X-Content-Type-Options nosniff et Content-Security-Policy. -
check
Redirection Apex CloudFront Function : Réécriture transparente des
requêtes
wwwvers le domaine racine pour un référencement propre sans duplication de contenu.
code Configuration Terraform (En-têtes de Sécurité)
# Extrait de la politique d'en-têtes de sécurité CloudFront
resource "aws_cloudfront_response_headers_policy" "security" {
name = "hls-security-headers"
security_headers_config {
strict_transport_security {
access_control_max_age_sec = 31536000
include_subdomains = true
preload = true
override = true
}
content_type_options { override = true }
frame_options { frame_option = "DENY"; override = true }
referrer_policy { referrer_policy = "strict-origin-when-cross-origin"; override = true }
}
remove_headers_config {
items { header = "Server" }
items { header = "x-amz-server-side-encryption" }
}
}
Indicateurs Mesurés
Note A
Note de sécurité TLS attribuée
par SSL Labs avec chiffrement hybride post-quantique.
< 40 ms
Temps de réponse CDN mondial
pour les ressources en cache bordure de réseau.
0 traceur
Aucun cookie ni script
intrusif. Respect absolu de la vie privée.
Infrastructure as Code
L'intégralité de l'infrastructure est provisionnée et maintenue de manière déclarative avec Terraform.