# ============================================================================= # 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. (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. — 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 }