Files
hcornet f8201d9d06
Terraform Apply / Terraform Apply (push) Successful in 2m26s
New update
2026-07-31 12:57:49 +02:00

45 lines
2.0 KiB
Terraform

# =============================================================================
# CLOUDFLARE : Workers : Deny Page (page de refus d'accès personnalisée)
# =============================================================================
# BRIQUE DENY PAGE : toutes les applications Access du repo pointent leur
# custom_deny_url vers https://denied.tips-of-mine.org/ — mais ce hostname
# n'existait pas jusqu'ici (idée reprise du projet macharpe). Cette brique
# comble le trou avec un Worker Cloudflare qui sert une vraie page de refus
# (HTML dans workers/deny-page.js), sans aucun serveur à héberger.
#
# Chaîne : DNS denied.<zone> (proxifié, IP factice) -> route Workers -> Worker
# =============================================================================
#======================================================
# Le script Worker
#======================================================
resource "cloudflare_workers_script" "deny_page" {
account_id = local.cloudflare_account_id
script_name = "deny-page"
content = file("${path.module}/workers/deny-page.js")
}
#======================================================
# DNS : denied.<zone> — enregistrement proxifié vers une adresse réservée
# (100:: = IPv6 discard) : le trafic n'atteint jamais cette IP, le Worker
# intercepte la requête sur l'edge Cloudflare.
#======================================================
resource "cloudflare_dns_record" "deny_page" {
zone_id = local.cloudflare_zone_id
name = "denied"
type = "AAAA"
content = "100::"
ttl = 1
proxied = true
comment = "Managed by Terraform - page de refus Access (Worker deny-page)"
}
#======================================================
# La route qui lie le hostname au Worker
#======================================================
resource "cloudflare_workers_route" "deny_page" {
zone_id = local.cloudflare_zone_id
pattern = "denied.${var.cloudflare_zone}/*"
script = cloudflare_workers_script.deny_page.script_name
}