Files
terraform-cloudflare-tunnel…/access_groups.tf
Hubert Cornet ce488564a0
Some checks failed
Terraform Apply / Terraform Apply (push) Failing after 12s
Update access_groups.tf
2025-11-16 18:40:45 +01:00

61 lines
1.6 KiB
HCL

# =============================================================================
# CLOUDFLARE : Access : Groups
# =============================================================================
locals {
# SAML groups from Okta
saml_groups = {
contractors = var.okta_contractors_saml_group_name
infrastructure_admin = var.okta_infra_admin_saml_group_name
sales_engineering = var.okta_sales_eng_saml_group_name
sales = var.okta_sales_saml_group_name
it_admin = var.okta_itadmin_saml_group_name
}
# Allowed countries
allowed_countries = ["FR", "DE", "US", "GB"]
blocked_countries = ["CN", "RU", "AF", "BY", "CD", "CU", "IR", "IQ", "KP", "MM", "SD", "SY", "UA", "ZW"]
# OS posture checks
os_posture_checks = [
var.cf_linux_posture_id,
var.cf_macos_posture_id,
var.cf_windows_posture_id
]
}
# SAML Rule Groups
resource "cloudflare_zero_trust_access_group" "saml_groups" {
for_each = local.saml_groups
account_id = local.cloudflare_account_id
name = each.value
include = [{
saml = {
identity_provider_id = var.cf_okta_identity_provider_id
attribute_name = "groups"
attribute_value = each.value
}
}]
}
# Geographic Rule Groups
resource "cloudflare_zero_trust_access_group" "country_requirements_rule_group" {
account_id = local.cloudflare_account_id
name = "Country Requirements"
include = [
for country in local.allowed_countries : {
geo = {
country_code = country
}
}
]
exclude = [
for country in local.blocked_countries : {
geo = {
country_code = country
}
}
]
}