last update to day 24-11-25
All checks were successful
Terraform Apply / Terraform Apply (push) Successful in 4m36s
Update Domain List / auto-update (push) Successful in 10s

This commit is contained in:
2025-11-24 20:47:56 +01:00
parent c6b46d00e1
commit 40739b1cc3
5 changed files with 45 additions and 15 deletions

View File

@@ -91,8 +91,12 @@ resource "cloudflare_zero_trust_access_application" "cloudflare_aws_app_rdp_doma
# APPLICATION SELF-HOSTED : Contrôleur de Domaine (GCP)
#======================================================
# ------------------------------------------------------
# Création de la cible RDP côté GCP
# Identique au bloc AWS mais appliqué à une VM Windows hébergée dans GCP.
# Cette ressource déclare un "infrastructure target" Cloudflare Zero Trust,
# permettant de définir une machine interne comme destination d'un accès RDP.
# Le nom dhôte et ladresse IP interne de la VM Windows sont fournis via les variables Terraform.
# ------------------------------------------------------
resource "cloudflare_zero_trust_access_infrastructure_target" "gcp_rdp_target" {
account_id = local.cloudflare_account_id
@@ -104,8 +108,11 @@ resource "cloudflare_zero_trust_access_infrastructure_target" "gcp_rdp_target" {
}
}
# ------------------------------------------------------
# Application RDP rendue dans le navigateur pour le Contrôleur de Domaine GCP
# Permet l'accès RDP navigateur via Cloudflare Zero Trust pour la VM Windows dans GCP.
# Cette ressource crée l'application Zero Trust permettant laccès RDP via Cloudflare,
# directement dans le navigateur, sans client local. Elle sappuie sur la cible déclarée ci-dessus.
# ------------------------------------------------------
resource "cloudflare_zero_trust_access_application" "cloudflare_gcp_app_rdp_domain" {
account_id = local.cloudflare_account_id

View File

@@ -3,10 +3,15 @@
# =============================================================================
#======================================================
# INFRASTRUCTURE Application: Test Home Network Access
# APPLICATION SELF-HOSTED : Accès réseau privé (Home Network Access)
#======================================================
#
# ------------------------------------------------------
# Déclaration dune application Self-Hosted utilisée pour accéder à une
# ressource interne du réseau domestique. Cette application est publiée via Cloudflare
# et protégée par Zero Trust. Le domaine défini permet daccéder à lapplication
# via une URL publique, mais lauthentification Cloudflare reste obligatoire
# ------------------------------------------------------
resource "cloudflare_zero_trust_access_application" "zero_trust_access_application" {
account_id = local.cloudflare_account_id
@@ -17,12 +22,17 @@ resource "cloudflare_zero_trust_access_application" "zero_trust_access_applicati
skip_interstitial = true
tags = [cloudflare_zero_trust_access_tag.tags["engineers"].name]
# Dépend de la création des tags pour assurer qu'ils existent avant l'association
depends_on = [
cloudflare_zero_trust_access_tag.tags
]
}
#
# ------------------------------------------------------
# Extraction des informations de lapplication Self-hosted créée ci-dessus.
# Cela permet de récupérer dynamiquement certaines valeurs internes (ID, etc.)
# utiles dans dautres ressources Terraform.
# ------------------------------------------------------
data "cloudflare_zero_trust_access_application" "zero_trust_access_application" {
account_id = local.cloudflare_account_id
@@ -30,10 +40,14 @@ data "cloudflare_zero_trust_access_application" "zero_trust_access_application"
}
#======================================================
# SELF-HOSTED APP: Competition App
# APPLICATION SELF-HOSTED : Application de Compétition
#======================================================
# Creating the Self-hosted Application for Competition web application
# ------------------------------------------------------
# Création de lapplication web de compétition protégée par Cloudflare Zero Trust.
# Cette application est hébergée sur un domaine public mais son accès est
# strictement contrôlé via authentification (OIDC) et politiques daccès.
# ------------------------------------------------------
resource "cloudflare_zero_trust_access_application" "cloudflare_app_web_competition" {
account_id = local.cloudflare_account_id
@@ -46,27 +60,33 @@ resource "cloudflare_zero_trust_access_application" "cloudflare_app_web_competit
custom_deny_url = "https://denied.tips-of-mine.org/"
custom_non_identity_deny_url = "https://denied.tips-of-mine.org/"
# Destination publique vers laquelle Cloudflare redirige les requêtes
destinations = [{
type = "public"
uri = var.cloudflare_aws_subdomain_web_sensitive
}]
# Autorisation uniquement via Authentik (OIDC)
allowed_idps = [
cloudflare_zero_trust_access_identity_provider.authentik_oidc.id,
]
auto_redirect_to_identity = true
allow_authenticate_via_warp = false
auto_redirect_to_identity = true # Redirection immédiate vers Authentik
allow_authenticate_via_warp = false # Interdit laccès via WARP (client Zero Trust)
# Politique de sécurité spécifique à cette application (définie dans un autre fichier)
policies = [{
id = cloudflare_zero_trust_access_policy.policies["competition_web_app"].id
}]
}
#======================================================
# SELF-HOSTED APP: Macharpe Intranet
# APPLICATION SELF-HOSTED : Intranet Macharpe
#======================================================
# Creating the Self-hosted Application for Administration web application
# ------------------------------------------------------
# Création de lapplication web Intranet, utilisée pour ladministration interne.
# Accessible via un domaine public mais pleinement sécurisée via Zero Trust.
# ------------------------------------------------------
resource "cloudflare_zero_trust_access_application" "cloudflare_app_web_intranet" {
account_id = local.cloudflare_account_id
@@ -79,17 +99,20 @@ resource "cloudflare_zero_trust_access_application" "cloudflare_app_web_intranet
custom_deny_url = "https://denied.tips-of-mine.org/"
custom_non_identity_deny_url = "https://denied.tips-of-mine.org/"
# Redirection vers le domaine public hébergeant lintranet
destinations = [{
type = "public"
uri = var.cloudflare_aws_subdomain_web
}]
# Authentification obligatoire via Authentik (OIDC)
allowed_idps = [
cloudflare_zero_trust_access_identity_provider.authentik_oidc.id,
]
auto_redirect_to_identity = true
allow_authenticate_via_warp = false
auto_redirect_to_identity = true # Redirection immédiate vers Authentik
allow_authenticate_via_warp = false # Interdit laccès via WARP (client Zero Trust)
# Politique spécifique définissant qui peut accéder à lintranet
policies = [{
id = cloudflare_zero_trust_access_policy.policies["intranet_web_app"].id
}]

View File

@@ -8,7 +8,7 @@ resource "cloudflare_zero_trust_tunnel_cloudflared_virtual_network" "zero_trust_
name = "vpc-aws"
comment = "AWS VPC for data science"
is_default = false
# is_default = false
is_default_network = false
}