update file
Some checks failed
Terraform Apply / Terraform Apply (push) Failing after 7s

This commit is contained in:
2025-11-24 19:55:28 +01:00
parent 8c5c2102ae
commit 471024e022
3 changed files with 63 additions and 21 deletions

View File

@@ -1,5 +1,5 @@
# ============================================================================= # =============================================================================
# CLOUDFLARE : Access Controls : Applications # CLOUDFLARE : Access Controls : Applications > Infrastructure
# ============================================================================= # =============================================================================
# ====================================================== # ======================================================

View File

@@ -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 dhôte et ladresse IP interne de la VM Windows sont fournis via les variables Terraform.
# ------------------------------------------------------
resource "cloudflare_zero_trust_access_infrastructure_target" "aws_rdp_target" { resource "cloudflare_zero_trust_access_infrastructure_target" "aws_rdp_target" {
account_id = local.cloudflare_account_id 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 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_aws_app_rdp_domain" { resource "cloudflare_zero_trust_access_application" "cloudflare_aws_app_rdp_domain" {
account_id = local.cloudflare_account_id account_id = local.cloudflare_account_id
# Type dapplication (RDP, SSH, VNC, etc.)
type = "rdp" type = "rdp"
# Nom daffichage de lapplication dans le launcher Cloudflare
name = var.cloudflare_aws_browser_rdp_app_name name = var.cloudflare_aws_browser_rdp_app_name
# Afficher lapplication dans lApp Launcher Cloudflare
app_launcher_visible = true 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" logo_url = "https://www.kevinsubileau.fr/wp-content/uploads/2016/05/RDP_icon.png"
# Attribution dun tag pour organiser les applications (ex: équipe dingénieurs)
tags = [cloudflare_zero_trust_access_tag.tags["engineers"].name] tags = [cloudflare_zero_trust_access_tag.tags["engineers"].name]
# Durée de session (0s = durée illimitée tant que lauthentification reste valide)
session_duration = "0s" session_duration = "0s"
# URL personnalisée affichée en cas de refus daccès
custom_deny_url = "https://denied.tips-of-mine.org/" custom_deny_url = "https://denied.tips-of-mine.org/"
custom_non_identity_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 linterface RDP accessible via navigateur
domain = var.cloudflare_aws_subdomain_rdp 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 = [{ target_criteria = [{
port = 3389 port = 3389
protocol = "RDP" 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 = [ allowed_idps = [
cloudflare_zero_trust_access_identity_provider.authentik_oidc.id, 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 http_only_cookie_attribute = false
options_preflight_bypass = false options_preflight_bypass = false
# Reference the policy from cloudflare-app-policies.tf # Référence à la politique daccès définie dans Access_Controls-Policies-Reusable_Policies.tf
policies = [{ policies = [{
id = cloudflare_zero_trust_access_policy.policies["domain_controller"].id 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 = [ depends_on = [
cloudflare_zero_trust_access_infrastructure_target.aws_rdp_target 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" { resource "cloudflare_zero_trust_access_infrastructure_target" "gcp_rdp_target" {
account_id = local.cloudflare_account_id 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" { resource "cloudflare_zero_trust_access_application" "cloudflare_gcp_app_rdp_domain" {
account_id = local.cloudflare_account_id account_id = local.cloudflare_account_id
# Type dapplication (RDP, SSH, VNC, etc.)
type = "rdp" type = "rdp"
# Nom daffichage de lapplication dans le launcher Cloudflare
name = var.cloudflare_gcp_browser_rdp_app_name name = var.cloudflare_gcp_browser_rdp_app_name
# Afficher lapplication dans lApp Launcher Cloudflare
app_launcher_visible = true 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" logo_url = "https://www.kevinsubileau.fr/wp-content/uploads/2016/05/RDP_icon.png"
# Attribution dun tag pour organiser les applications (ex: équipe dingénieurs)
tags = [cloudflare_zero_trust_access_tag.tags["engineers"].name] tags = [cloudflare_zero_trust_access_tag.tags["engineers"].name]
# Durée de session (0s = durée illimitée tant que lauthentification reste valide)
session_duration = "0s" session_duration = "0s"
# URL personnalisée affichée en cas de refus daccès
custom_deny_url = "https://denied.tips-of-mine.org/" custom_deny_url = "https://denied.tips-of-mine.org/"
custom_non_identity_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 linterface RDP accessible via navigateur
domain = var.cloudflare_gcp_subdomain_rdp 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 = [{ target_criteria = [{
port = 3389 port = 3389
protocol = "RDP" 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 = [ allowed_idps = [
cloudflare_zero_trust_access_identity_provider.authentik_oidc.id, 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 http_only_cookie_attribute = false
options_preflight_bypass = false options_preflight_bypass = false
# Reference the policy from cloudflare-app-policies.tf # Référence à la politique daccès définie dans Access_Controls-Policies-Reusable_Policies.tf
policies = [{ policies = [{
id = cloudflare_zero_trust_access_policy.policies["domain_controller"].id 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 = [ depends_on = [
cloudflare_zero_trust_access_infrastructure_target.gcp_rdp_target cloudflare_zero_trust_access_infrastructure_target.gcp_rdp_target
] ]

View File

@@ -1,11 +1,12 @@
# ============================================================================= # =============================================================================
# CLOUDFLARE : Access Controls : Applications # CLOUDFLARE : Access Controls : Applications > self_hosted
# ============================================================================= # =============================================================================
#====================================================== #======================================================
# INFRASTRUCTURE Application: Test Home Network Access # INFRASTRUCTURE Application: Test Home Network Access
#====================================================== #======================================================
~
#
resource "cloudflare_zero_trust_access_application" "zero_trust_access_application" { resource "cloudflare_zero_trust_access_application" "zero_trust_access_application" {
account_id = local.cloudflare_account_id account_id = local.cloudflare_account_id
@@ -15,13 +16,13 @@ resource "cloudflare_zero_trust_access_application" "zero_trust_access_applicati
session_duration = "24h" session_duration = "24h"
skip_interstitial = true skip_interstitial = true
tags = [cloudflare_zero_trust_access_tag.tags["engineers"].name] tags = [cloudflare_zero_trust_access_tag.tags["engineers"].name]
# tags = [for tag in cloudflare_zero_trust_access_tag.tags : tag.name]
depends_on = [ depends_on = [
cloudflare_zero_trust_access_tag.tags cloudflare_zero_trust_access_tag.tags
] ]
} }
#
data "cloudflare_zero_trust_access_application" "zero_trust_access_application" { data "cloudflare_zero_trust_access_application" "zero_trust_access_application" {
account_id = local.cloudflare_account_id account_id = local.cloudflare_account_id