This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
# =============================================================================
|
||||
# CLOUDFLARE : Access Controls : Applications
|
||||
# CLOUDFLARE : Access Controls : Applications > Infrastructure
|
||||
# =============================================================================
|
||||
|
||||
# ======================================================
|
||||
|
||||
@@ -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
|
||||
]
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user