# ============================================================================= # 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 > > 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" } }] }