From 471024e022aaca437200385b29ee0f9f3f4586c4 Mon Sep 17 00:00:00 2001 From: hcornet Date: Mon, 24 Nov 2025 19:55:28 +0100 Subject: [PATCH] update file --- ...ss_Controls-Applications-Infrastructure.tf | 2 +- Access_Controls-Applications-rdp.tf | 75 ++++++++++++++----- Access_Controls-Applications-self_hosted.tf | 7 +- 3 files changed, 63 insertions(+), 21 deletions(-) diff --git a/Access_Controls-Applications-Infrastructure.tf b/Access_Controls-Applications-Infrastructure.tf index d5977af..7ad3925 100644 --- a/Access_Controls-Applications-Infrastructure.tf +++ b/Access_Controls-Applications-Infrastructure.tf @@ -1,5 +1,5 @@ # ============================================================================= -# CLOUDFLARE : Access Controls : Applications +# CLOUDFLARE : Access Controls : Applications > Infrastructure # ============================================================================= # ====================================================== diff --git a/Access_Controls-Applications-rdp.tf b/Access_Controls-Applications-rdp.tf index 25fe95c..1ce3383 100644 --- a/Access_Controls-Applications-rdp.tf +++ b/Access_Controls-Applications-rdp.tf @@ -1,12 +1,17 @@ # ============================================================================= -# CLOUDFLARE : Access Controls : Applications +# CLOUDFLARE : Access Controls : Applications > RDP # ============================================================================= #====================================================== -# SELF-HOSTED APP: Domain Controller +# APPLICATION SELF-HOSTED : Contrôleur de Domaine (AWS) #====================================================== -# Creating the Target +# ------------------------------------------------------ +# Création de la cible RDP côté AWS +# 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 d’hôte et l’adresse IP interne de la VM Windows sont fournis via les variables Terraform. +# ------------------------------------------------------ resource "cloudflare_zero_trust_access_infrastructure_target" "aws_rdp_target" { account_id = local.cloudflare_account_id @@ -18,23 +23,41 @@ resource "cloudflare_zero_trust_access_infrastructure_target" "aws_rdp_target" { } } -# Domain Controller Browser-Rendered RDP Application +# ------------------------------------------------------ +# Application RDP rendue dans le navigateur pour le Contrôleur de Domaine AWS +# Cette ressource crée l'application Zero Trust permettant l’accès RDP via Cloudflare, +# directement dans le navigateur, sans client local. Elle s’appuie sur la cible déclarée ci-dessus. +# ------------------------------------------------------ resource "cloudflare_zero_trust_access_application" "cloudflare_aws_app_rdp_domain" { account_id = local.cloudflare_account_id +# Type d’application (RDP, SSH, VNC, etc.) type = "rdp" + +# Nom d’affichage de l’application dans le launcher Cloudflare name = var.cloudflare_aws_browser_rdp_app_name + +# Afficher l’application dans l’App Launcher Cloudflare app_launcher_visible = true + +# Icône personnalisée visible par les utilisateurs logo_url = "https://www.kevinsubileau.fr/wp-content/uploads/2016/05/RDP_icon.png" + +# Attribution d’un tag pour organiser les applications (ex: équipe d’ingénieurs) tags = [cloudflare_zero_trust_access_tag.tags["engineers"].name] + +# Durée de session (0s = durée illimitée tant que l’authentification reste valide) session_duration = "0s" + +# URL personnalisée affichée en cas de refus d’accès custom_deny_url = "https://denied.tips-of-mine.org/" custom_non_identity_deny_url = "https://denied.tips-of-mine.org/" - # Public hostname for browser rendering +# Nom de domaine public utilisé pour rendre l’interface RDP accessible via navigateur domain = var.cloudflare_aws_subdomain_rdp - # Target criteria - references the existing gcp_rdp_target +# Critères de correspondance pour relier cette application à la cible RDP AWS +# Indique quel protocole et port utiliser, ainsi que la cible. target_criteria = [{ port = 3389 protocol = "RDP" @@ -43,7 +66,8 @@ resource "cloudflare_zero_trust_access_application" "cloudflare_aws_app_rdp_doma } }] - # Identity provider settings +# Paramètres relatifs au fournisseur d'identité (IdP) +# Ici, Authentik via un connecteur OIDC. allowed_idps = [ cloudflare_zero_trust_access_identity_provider.authentik_oidc.id, ] @@ -52,22 +76,23 @@ resource "cloudflare_zero_trust_access_application" "cloudflare_aws_app_rdp_doma http_only_cookie_attribute = false options_preflight_bypass = false - # Reference the policy from cloudflare-app-policies.tf +# Référence à la politique d’accès définie dans Access_Controls-Policies-Reusable_Policies.tf policies = [{ id = cloudflare_zero_trust_access_policy.policies["domain_controller"].id }] - # Depends on the existing target +# Déclare explicitement que la création dépend de la cible RDP depends_on = [ cloudflare_zero_trust_access_infrastructure_target.aws_rdp_target ] } #====================================================== -# SELF-HOSTED APP: Domain Controller +# APPLICATION SELF-HOSTED : Contrôleur de Domaine (GCP) #====================================================== -# Creating the Target +# Création de la cible RDP côté GCP +# Identique au bloc AWS mais appliqué à une VM Windows hébergée dans GCP. resource "cloudflare_zero_trust_access_infrastructure_target" "gcp_rdp_target" { account_id = local.cloudflare_account_id @@ -79,23 +104,38 @@ resource "cloudflare_zero_trust_access_infrastructure_target" "gcp_rdp_target" { } } -# Domain Controller Browser-Rendered RDP Application +# 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. resource "cloudflare_zero_trust_access_application" "cloudflare_gcp_app_rdp_domain" { account_id = local.cloudflare_account_id +# Type d’application (RDP, SSH, VNC, etc.) type = "rdp" + +# Nom d’affichage de l’application dans le launcher Cloudflare name = var.cloudflare_gcp_browser_rdp_app_name + +# Afficher l’application dans l’App Launcher Cloudflare app_launcher_visible = true + +# Icône personnalisée visible par les utilisateurs logo_url = "https://www.kevinsubileau.fr/wp-content/uploads/2016/05/RDP_icon.png" + +# Attribution d’un tag pour organiser les applications (ex: équipe d’ingénieurs) tags = [cloudflare_zero_trust_access_tag.tags["engineers"].name] + +# Durée de session (0s = durée illimitée tant que l’authentification reste valide) session_duration = "0s" + +# URL personnalisée affichée en cas de refus d’accès custom_deny_url = "https://denied.tips-of-mine.org/" custom_non_identity_deny_url = "https://denied.tips-of-mine.org/" - # Public hostname for browser rendering +# Nom de domaine public utilisé pour rendre l’interface RDP accessible via navigateur domain = var.cloudflare_gcp_subdomain_rdp - # Target criteria - references the existing gcp_rdp_target +# Critères de correspondance pour relier cette application à la cible RDP AWS +# Indique quel protocole et port utiliser, ainsi que la cible. target_criteria = [{ port = 3389 protocol = "RDP" @@ -104,7 +144,8 @@ resource "cloudflare_zero_trust_access_application" "cloudflare_gcp_app_rdp_doma } }] - # Identity provider settings +# Paramètres relatifs au fournisseur d'identité (IdP) +# Ici, Authentik via un connecteur OIDC. allowed_idps = [ cloudflare_zero_trust_access_identity_provider.authentik_oidc.id, ] @@ -113,12 +154,12 @@ resource "cloudflare_zero_trust_access_application" "cloudflare_gcp_app_rdp_doma http_only_cookie_attribute = false options_preflight_bypass = false - # Reference the policy from cloudflare-app-policies.tf +# Référence à la politique d’accès définie dans Access_Controls-Policies-Reusable_Policies.tf policies = [{ id = cloudflare_zero_trust_access_policy.policies["domain_controller"].id }] - # Depends on the existing target + # Déclare explicitement que la création dépend de la cible RDP depends_on = [ cloudflare_zero_trust_access_infrastructure_target.gcp_rdp_target ] diff --git a/Access_Controls-Applications-self_hosted.tf b/Access_Controls-Applications-self_hosted.tf index aa6bf24..5371312 100644 --- a/Access_Controls-Applications-self_hosted.tf +++ b/Access_Controls-Applications-self_hosted.tf @@ -1,11 +1,12 @@ # ============================================================================= -# CLOUDFLARE : Access Controls : Applications +# CLOUDFLARE : Access Controls : Applications > self_hosted # ============================================================================= #====================================================== # INFRASTRUCTURE Application: Test Home Network Access #====================================================== - +~ +# resource "cloudflare_zero_trust_access_application" "zero_trust_access_application" { account_id = local.cloudflare_account_id @@ -15,13 +16,13 @@ resource "cloudflare_zero_trust_access_application" "zero_trust_access_applicati session_duration = "24h" skip_interstitial = true tags = [cloudflare_zero_trust_access_tag.tags["engineers"].name] -# tags = [for tag in cloudflare_zero_trust_access_tag.tags : tag.name] depends_on = [ cloudflare_zero_trust_access_tag.tags ] } +# data "cloudflare_zero_trust_access_application" "zero_trust_access_application" { account_id = local.cloudflare_account_id