Files
terraform-cloudflare-tunnel…/Access_Controls-Policies-Rule_Groups-Azure.tf
hcornet 04e0f318f4
Terraform Apply / Terraform Apply (push) Failing after 20s
Update 31-07-2026
2026-07-31 09:50:42 +02:00

65 lines
2.2 KiB
Terraform

# =============================================================================
# CLOUDFLARE : Access Controls : Policies : Rule Groups (Azure Entra ID)
# =============================================================================
# Miroir Azure de la brique Authentik : mêmes concepts (rule groups +
# politiques réutilisables), mais alimentés par les groupes Entra ID.
# La brique est inerte tant que azure_idp_enabled = false ou que
# azure_admin_group_id est vide.
#
# ACTION EXTERNE : récupérer l'Object ID du groupe Entra ID à autoriser
# (Portail Azure > Entra ID > Groups > <groupe> > Object Id) et le renseigner
# dans azure_admin_group_id (variables.auto.tfvars).
# =============================================================================
locals {
azure_groups_enabled = var.azure_idp_enabled && var.azure_admin_group_id != ""
}
#==================================================
# Rule group : administrateurs Entra ID
#==================================================
resource "cloudflare_zero_trust_access_group" "azure_admins_rule_group" {
count = local.azure_groups_enabled ? 1 : 0
account_id = local.cloudflare_account_id
name = "GL_Users_Azure Administrators"
include = [{
azure_ad = {
id = var.azure_admin_group_id
identity_provider_id = cloudflare_zero_trust_access_identity_provider.azure_entra_id[0].id
}
}]
}
#==================================================
# Politique réutilisable : accès admin via Azure
# (équivalent Azure de allow_policie_it_admin de la brique Authentik)
#==================================================
resource "cloudflare_zero_trust_access_policy" "allow_policie_azure_admin" {
count = local.azure_groups_enabled ? 1 : 0
account_id = local.cloudflare_account_id
name = "Default Azure Admin"
decision = "allow"
session_duration = "6h"
include = [{
group = {
id = cloudflare_zero_trust_access_group.azure_admins_rule_group[0].id
}
}]
# Mêmes exigences de sécurité que la brique Authentik : MFA obligatoire
require = [{
auth_method = {
auth_method = "mfa"
}
}]
exclude = [{
auth_method = {
auth_method = "sms"
}
}]
}