Skip to main content

Azure Windows IIS Stack

Overview

The Azure Windows IIS Stack template is a purpose-built solution designed to streamline the deployment of a resilient and secure infrastructure for hosting classic applications that rely on Microsoft Internet Information Services (IIS). By automating the creation of Windows Virtual Machines (VMs) with pre-installed IIS, this template ensures a hassle-free setup for organizations seeking a robust hosting environment. The VMs are configured to be zone redundant, include backup functionality, and have logging enabled, addressing key aspects of reliability and operational efficiency.

List of resources

  1. Virtual Machines
  2. Application gateways
  3. Key vault
  4. DNS zone
  5. Private DNS zones
  6. Private Endpoint
  7. Storage Account
  8. Recovery Services Vault
  9. Log Analytics workspace
  10. Application Insights
  11. Virtual network

Cloud Architecture

BOS_ARC
BOS_ARC
© Copyright BOS Framework 2024

Input Parameters

Input VariablesDescriptionsDefault ValuesTypeSupported Values
sp_client_idService Principal Client ID, used for authentication in Azure.abcde123-4567-890f-12ab-34cd56789ef0string
sp_tenant_idAzure AD Tenant ID, the identity provider for the service principal.12345678-abcd-1234-ef12-123456789abcstring
sp_subscription_idAzure Subscription ID, specifying the target subscription.abcdefgh-1234-5678-90ab-cdef12345678string
sp_nameName or identifier for the Service Principalmyserviceprincipalstring
sp_client_secretThe secret key associated with the Service Principal for authentication.mysecretclientsecret123string
storage_use_azureadShould the AzureRM Provider use AzureAD to connect to the Storage Blob API's, rather than the SharedKey from the Storage Accounttruebooltrue, false
resource_group_nameThe name of the Azure Resource Group where resources will be deployed.myrgstring
resource_group_locationAzure region where the Resource Group will be created.eastusstringstring
resourcegroup_lockWhether to apply a resource group-level lock.truebooltrue, false
resourcegroup_lock_levelLevel of the resource group lock if resourcegroup_lock is set to true.CanNotDeletestringCanNotDelete, ReadOnly
tags_nameA map of tags to apply to Azure resources.'{"Environment":"Dev","ProductName":"JohnDoe"}'map(string)
enable_defender_plansEnable or disable Azure defender plans for the subscription.truebooltrue, false
security_center_resource_typeslist of resource types to be covered by Azure Security Center.["CloudPosture", "VirtualMachines", "AppServices", "SqlServers", "SqlServerVirtualMachines", "OpenSourceRelationalDatabases", "CosmosDbs", "StorageAccounts", "Containers", "KeyVaults", "Arm"]'list["CloudPosture", "VirtualMachines", "AppServices", "SqlServers", "SqlServerVirtualMachines", "OpenSourceRelationalDatabases", "CosmosDbs", "StorageAccounts", "Containers", "KeyVaults", "Arm"]'
security_center_resource_types_tierThe Azure Security Center tier to use for the specified resource types.["Standard", "Standard", "Standard", "Standard", "Standard", "Standard", "Standard", "Standard", "Standard", "Standard", "Standard"]'list["Standard", "Standard", "Standard", "Standard", "Standard", "Standard", "Standard", "Standard", "Standard", "Standard", "Standard"]'
auto_provision_log_analytics_agentWhether to automatically provision the Log Analytics agent on VMs within the VNet.OffstringOff, On
vnet_nameThe name of the Virtual Network (VNet).my-vnetstring
vnet_subnet1_iis_nameThe name of the first subnet for IIS VM.my-subnet-1string
vnet_subnet2_appgw_nameThe name of the second subnet for Application Gateway.my-subnet-2string
vnet_subnet3_services_nameThe name of the third subnet for services.my-subnet-3string
vnet_address_spaceThe address space for the Virtual Network.["10.11.0.0/16"]'list
vnet_dns_serversThe DNS server IP addresses for the Virtual Network.[]list
vnet_subnet1_iis_address_prefixThe address prefix for the first subnet for IIS VM.["10.11.8.0/21"]'list
vnet_subnet2_appgw_address_prefixThe address prefix for the second subnet for Application Gateway.["10.11.16.0/24"]'list
vnet_subnet3_services_address_prefixThe address prefix for the third subnet for services.["10.11.24.0/23"]'list
vnet_subnet4_firewall_address_prefixThe address prefix for the fourth subnet for the firewall.["10.11.32.0/26"]'list
vnet_firewall_enableWhether to enable the Azure Firewall in the VNet.falsebooltrue, false
vnet_firewall_public_ip_zoneslist of public IP address zones for the Azure Firewall.["1", "2", "3"]'list["1", "2", "3"]'
vnet_firewall_zoneslist of zones for the Azure Firewall.["1", "2", "3"]'list["1", "2", "3"]'
vnet_firewall_skuThe SKU for the Azure Firewall.AZFW_VNetstringAZFW_VNet, AZFW_Hub
vnet_firewall_tierThe threat intelligence tier for the Azure Firewall.StandardstringPremium, Standard, Basic
vnet_firewall_threat_intel_modeThe threat intelligence mode for the Azure Firewall.DenystringDeny, Alert
vnet_ddos_protection_plan_enableWhether to enable DDoS protection for the VNet.falsebooltrue, false
vnet_ddos_protection_plan_nameThe name for the DDoS protection plan.my-ddos-planstring
vnet_subnet1_iis_service_endpointsThe list of Service endpoints to associate with the subnet1["Microsoft.KeyVault", "Microsoft.Storage"]'list["Microsoft.KeyVault", "Microsoft.Storage"]'
vnet_subnet3_service_endpointsThe list of Service endpoints to associate with the subnet3["Microsoft.KeyVault", "Microsoft.Storage"]'list["Microsoft.KeyVault", "Microsoft.Storage"]'
natgw_public_ip_prefix_nameName of the Public IP Prefix for the NAT Gateway.my-nat-pub-ip-prefixstring
natgw_public_ip_prefix_lengthPrefix length (subnet mask) for the Public IP Prefix.29number28,29,30,31
natgw_public_ip_prefix_zonesAvailability zones for the Public IP Prefix.["1"]'list["1", "2", "3"]'
natgw_public_ip_nameName of the Public IP address for the NAT Gateway.my-nat-pub-ipstring
natgw_public_ip_allocation_methodIP address allocation method for the Public IP.StaticstringDynamic, Static
natgw_public_ip_skuSKU (service tier) for the Public IP address.StandardstringBasic, Standard
natgw_public_ip_zonesAvailability zones for the Public IP address of the NAT Gateway.["1"]'list["1", "2", "3"]'
natgw_nameName of the NAT Gateway.my-nat-gatewaystring
natgw_idle_timeout_in_minutesIdle timeout in minutes for the NAT Gateway's outbound connections.4number
natgw_skuSKU (service tier) for the NAT Gateway.StandardstringBasic, Standard
natgw_zonesAvailability zones for the NAT Gateway.["1"]'list["1", "2", "3"]'
network_watchernameName of the Network Watcher resource.NetworkWatcher_eastusstringNetworkWatcher_region
network_watcher_existsIndicates whether the Network Watcher resource exists or not.falsebooltrue, false
nsg_flow_logs_enableWhether to enable Network Security Group (NSG) flow logs.falsebooltrue, false
vnet_subnet1_iis_nsg_nameName of the Network Security Group (NSG) for the first subnet used by IIS VMs.my-nsg-1string
vnet_subnet1_iis_nsg_rulesRules defined for the Network Security Group (NSG) in the first subnet used by IIS VMs.{"rule1": {"name": "sn01-nsg-rule-01","priority": 1000,"direction": "Inbound","access": "Deny","protocol": "Tcp","source_port_range": "*","destination_port_range": "22","source_address_prefix": "*","destination_address_prefix": "*"},"rule2": {"name": "sn01-nsg-rule-02","priority": 2000,"direction": "Inbound","access": "Deny","protocol": "Tcp","source_port_range": "*","destination_port_range": "3389","source_address_prefix": "*","destination_address_prefix": "*"}}'map(json)It should consist of name, priority, direction, access, protocol, source_port_range, destination_port_range, source_address_prefix and destination_address_prefix for each rule.
vnet_subnet3_services_nsg_nameName of the Network Security Group (NSG) for the third subnet used for services.my-nsg-3string
vnet_subnet3_services_nsg_rulesRules defined for the Network Security Group (NSG) in the third subnet used for services.{"rule1": {"name": "sn03-nsg-rule-01","priority": 1000,"direction": "Inbound","access": "Deny","protocol": "Tcp","source_port_range": "*","destination_port_range": "22","source_address_prefix": "*","destination_address_prefix": "*"},"rule2": {"name": "sn03-nsg-rule-02","priority": 2000,"direction": "Inbound","access": "Deny","protocol": "Tcp","source_port_range": "*","destination_port_range": "3389","source_address_prefix": "*","destination_address_prefix": "*"}}'map(json)It should consist of name, priority, direction, access, protocol, source_port_range, destination_port_range, source_address_prefix and destination_address_prefix for each rule.
vnet_subnet1_iis_nsg_flow_log_nameName of the flow log for the Network Security Group (NSG) in the first subnet used by IIS VM.my-nsg-1-flow-logstring
vnet_subnet1_iis_nsg_flow_log_enabledWhether flow logging is enabled for the Network Security Group (NSG) in the first subnet used by IIS VM.truebooltrue, false
vnet_subnet1_iis_nsg_flow_log_retention_enabledWhether log retention is enabled for the flow log of the Network Security Group (NSG) in the first subnet used by IIS VM.truebooltrue, false
vnet_subnet1_iis_nsg_flow_log_retention_in_daysnumber of days to retain flow log data for the Network Security Group (NSG) in the first subnet used by IIS VM.90number
vnet_subnet3_services_nsg_flow_log_nameName of the flow log for the Network Security Group (NSG) in the third subnet used for services.my-nsg-3-flow-logstring
vnet_subnet3_services_nsg_flow_log_enabledWhether flow logging is enabled for the Network Security Group (NSG) in the third subnet used for services.truebooltrue, false
vnet_subnet3_services_nsg_flow_log_retention_enabledWhether log retention is enabled for the flow log of the Network Security Group (NSG) in the third subnet used for services.truebooltrue, false
vnet_subnet3_services_nsg_flow_log_retention_in_daysnumber of days to retain flow log data for the Network Security Group (NSG) in the third subnet used for services.90number
vnet_subnet1_iis_nsg_flow_log_traffic_analytics_enabledWhether traffic analytics is enabled for the flow log of the Network Security Group (NSG) in the first subnet used by IIS VM.truebooltrue, false
vnet_subnet1_iis_nsg_flow_log_traffic_analytics_interval_in_minutesInterval in minutes for traffic analytics for the flow log of the Network Security Group (NSG) in the first subnet used by IIS VM.60number10, 60
vnet_subnet3_services_nsg_flow_log_traffic_analytics_enabledWhether traffic analytics is enabled for the flow log of the Network Security Group (NSG) in the third subnet used for services.truebooltrue, false
vnet_subnet3_services_nsg_flow_log_traffic_analytics_interval_in_minutesInterval in minutes for traffic analytics for the flow log of the Network Security Group (NSG) in the third subnet used for services.60number10, 60
vnet_subnet1_iis_nsg_flow_log_versionVersion of the flow log for the Network Security Group (NSG) in the first subnet used by IIS VM.2number1, 2
vnet_subnet3_services_nsg_flow_log_versionVersion of the flow log for the Network Security Group (NSG) in the third subnet used for services.2number1, 2
vnet_diagnostic_log_enableWhether to enable diagnostic logs for the Virtual Network (VNet).truebooltrue, false
vnet_diagnostic_log_nameName of the diagnostic logs for the Virtual Network (VNet).my-vnet-logsstring
vnet_diagnostic_log_category_groupCategory of diagnostic logs to enable for the Virtual Network (VNet).allLogsstringallLogs
require_vnet_peeringWhether to enable Vnet Peering.falsebooltrue, false
vnet_peering_configsConfiguration of the Vnet Peering.[{"new_vnet_name": "myexistingvnet","new_vnet_rg": "myexistingvnetrg","peering_name_1": "peer1to2","peering_name_2": "peer2to1","allow_gateway_transit": false,"allow_vnet_access": true,"allow_forwarded_traffic": true,}]'map(json)It should consist of new_vnet_name, new_vnet_rg, peering_name_1, peering_name_2, allow_gateway_transit, allow_vnet_access, allow_forwarded_traffic for each peering.
log_analytics_workspace_nameName of the Log Analytics workspace.my-log-analyticsstring
log_analytics_workspace_skuSKU (service tier) for the Log Analytics workspace.PerGB2018stringFree, PerNode, Premium, Standard, Standalone, Unlimited, CapacityReservation, PerGB2018)
log_retention_in_daysnumber of days to retain log data in the Log Analytics workspace.30number
log_analytics_daily_quota_gbDaily data ingestion quota in gigabytes for the Log Analytics workspace.3number
log_analytics_action_group_nameName of the Action Group associated with the Log Analytics workspace.mydailycapactiongrpstring
log_analytics_action_group_short_nameShort name or identifier for the Action Group.mydailycapgrpstring
log_analytics_daily_cap_alert_emailslist of email addresses for recipients of daily capacity alerts.["user1@example.com"]'list
log_analytics_action_group_common_schemaUse a common schema for the Action Group.truebooltrue, false
log_analytics_daily_cap_alert_nameName of the daily capacity alert in Log Analytics.mydailycaplogalertstring
log_analytics_daily_cap_alert_evaluation_frequencyFrequency of evaluation for the daily capacity alert.PT10Mstring
log_analytics_daily_cap_alert_window_durationDuration of the evaluation window for the daily capacity alert.PT10Mstring
log_analytics_daily_cap_alert_severitySeverity level for the daily capacity alert.2number1 , 2, 3, 4
log_analytics_daily_cap_alert_auto_mitigation_enabledEnable or disable automatic mitigation for the daily capacity alert.falsebooltrue, false
log_analytics_daily_cap_alert_storage_enabledEnable or disable alert data storage for the daily capacity alert.falsebooltrue, false
log_analytics_daily_cap_alert_enabledEnable or disable the daily capacity alert.truebooltrue, false
log_analytics_daily_cap_alert_query_time_range_overrideTime range override for the daily capacity alert.P1Dstring
application_insights_nameName of the Application Insights resource.my-prv-app-insightsstring
application_insights_application_typeType or category of the Application Insights resource.webstringios, java, MobileCenter, Node.JS, other, phone, store, web
security_center_contact_email_enableEnable or disable security center contact emailtruebooltrue, false
security_center_contact_nameName of the security center contactuser1contactstring
security_center_contact_emailEmail address for security center contactuser1@example.comstring
security_center_alert_notificationsEnable or disable security center alert notificationsfalsebooltrue, false
security_center_alerts_to_adminsEnable or disable sending security center alerts to adminstruebooltrue, false
log_archive_enableEnable or disable log archivingtruebooltrue, false
log_archive_storage_account_nameName of the storage account for log archivinglogarchivestoragestring
log_archive_storage_account_tierStorage account tier for log archivingStandardstringStandard, Premium
log_archive_storage_account_kindStorage account kind for log archivingStorageV2stringBlobStorage, BlockBlobStorage, FileStorage, Storage, StorageV2
log_archive_storage_account_replication_typeReplication type for the log archiving storage account.GRSstringLRS, GRS, RAGRS, ZRS, GZRS, RAGZRS
log_archive_storage_account_access_tierAccess tier for the log archiving storage account.CoolstringHot, Cool
log_archive_storage_account_public_network_access_enabledEnable or disable public network access for the storage account for log archive.truebooltrue, false
log_archive_storage_account_versioning_enabledEnable or disable versioning for the storage account used for log archive.truebooltrue, false
log_archive_storage_account_network_default_actionDefault action for network traffic to log archive storage accountDenystringDeny, Allow
log_archive_storage_account_network_ip_rulesList of IP addresses allowed to access the log archive storage account["45.127.59.60/32"]'list
log_archive_storage_account_network_bypassList of network traffic types to bypass["AzureServices"]list(string)AzureServices, None
log_archive_storage_account_shared_access_key_enabledWhether shared access keys are enabled for the log archive storage account.falsebooltrue, false
log_archive_storage_account_allow_nested_items_to_be_publicWhether nested items within the log archive storage account, such as blobs within containers, are allowed to be made public.falsebooltrue, false
log_archive_storage_account_lifecycle_rule_nameName of the lifecycle rule for log archiving storage account.rule1string
log_archive_storage_account_lifecycle_rule_enabledEnable or disable the lifecycle rule for log archiving storage account.truebooltrue, false
log_archive_storage_account_lifecycle_rule_blob_typesList of blob types to apply the lifecycle rule to["blockBlob", "appendBlob"]list(string)["blockBlob", "appendBlob"]
log_archive_storage_account_lifecycle_rule_delete_base_blob_after_daysNumber of days to keep the base blob before deleting365number
log_archive_storage_account_lifecycle_rule_delete_snapshot_after_daysNumber of days to keep the blob snapshot before deleting365number
log_archive_storage_account_lifecycle_rule_delete_version_after_daysNumber of days to keep the blob version before deleting365number
log_archive_storage_account_enable_https_traffic_onlyEnables HTTPS-only access to the log archive storage account.truebooltrue, false
log_archive_storage_account_infra_encryption_enabledEnables infrastructure encryption for the log archive storage account.truebooltrue, false
log_archive_storage_account_min_tls_versionSpecifies the minimum TLS version required for connections to the log archive storage account.TLS1_2stringTLS1_0, TLS1_1, TLS1_2
log_archive_storage_account_uaid_nameName of the user-assigned identity for log archive storage account.my-log-archive-sa-uaidstring
log_archive_storage_account_key_nameName of the key for log archive storage account user-assigned identitymy-log-archive-sa-uaid-keystring
log_archive_storage_account_key_typeType of the key for log archive storage account user-assigned identityRSAstringRSA
log_archive_storage_account_key_sizeSize of the key for log archive storage account user-assigned identity2048number2048, 3072, 4096
log_archive_storage_account_key_optsOptions for the key for log archive storage account user-assigned identity["unwrapKey", "wrapKey"]list(string)decrypt, encrypt, sign, unwrapKey, verify, wrapKey
log_archive_storage_account_key_expire_afterExpiry duration for the key for log archive storage account user-assigned identityP24MstringDuration in ISO 8601 format
log_archive_storage_account_key_rotation_time_before_expiryTime before expiry to start key rotation for log archive storage account identityP22MstringDuration in ISO 8601 format
log_archive_storage_account_key_notify_before_expiryTime before expiry to notify for key rotation for log archive storage account identityP21MstringDuration in ISO 8601 format
log_archive_storage_account_key_expiration_dateExpiration date for the storage account key used for log archival"2024-12-31T11:59:59.000Z"string
log_archive_storage_account_delete_retention_daysSpecifies the number of days that the blob should be retained in log archive storage account7number1-365
log_archive_storage_account_container_delete_retention_daysSpecifies the number of days that the container should be retained in log archive storage account7number1-365
log_archive_storage_account_private_endpoint_enableEnable or Disable private endpoint for log archive storage account.falsebooltrue, false
log_archive_storage_account_private_endpoint_nameName of the private endpoint for log archive storage account.my-log-archive-sa-pvepstring
log_archive_storage_account_private_service_connection_nameName of the private service connection for log archive storage account.my-log-archive-sa-svcstring
log_archive_storage_account_private_service_is_manual_connectionEnable or disable manual private service connection for log archive storage account.falsebooltrue, false
log_archive_storage_account_private_service_subresourceList of subresources for the private service connection.["blob"]list(string)["blob"]
log_archive_storage_account_private_dns_zonePrivate DNS zone for log archive storage account.privatelink.blob.cache.windows.netstringprivatelink.blob.cache.windows.net
log_archive_storage_account_private_dns_zone_vnet_link_nameName of the VNet link for the private DNS zone.my-log-archive-sa-vnet-linkstring
log_archive_storage_account_private_dns_a_record_ttlTime to live (TTL) for the private DNS A record in seconds.300number
private_dns_zoneName of the Private DNS Zone to configure.mywebsite.internal.comstring
private_dns_vnetlink_nameName of the Private DNS Virtual Network Link.my-vnet-linkstring
public_dns_enableWhether to create a Public DNS Zone.truebool
public_dns_zoneName of the public DNS zone for a Virtual Network.mywebsite.comstring
key_vault_nameName of the Azure Key Vault.my-keyvaultstring
keyvault_enabled_for_disk_encryptionWhether the Key Vault is enabled for disk encryption.truebooltrue, false
keyvault_soft_delete_retention_daysThe number of days for soft delete retention for the Key Vault.7number
keyvault_skuThe SKU (service tier) for the Azure Key Vault.standardstringStandard, Premium
key_vault_secret_expiration_dateExpiration date for a secret in the Key Vault."2024-12-31T11:59:59.000Z"string
keyvault_private_endpoint_nameName of the Private Endpoint for the Key Vault.my-kv-pvepstring
keyvault_private_dns_zoneName of the Private DNS Zone for the Key Vault Private Endpoint.privatelink.vaultcore.azure.netstringprivatelink.vaultcore.azure.net
keyvault_private_service_connection_nameName of the Private Service Connection for the Key Vault.my-kv-svcstring
keyvault_private_service_is_manual_connectionWhether the Private Service Connection is a manual connection.falsebooltrue, false
keyvault_private_service_connection_subresourceName of the Private Service Connection Subresource for the Key Vault.["Vault"]'list["Vault"]'
keyvault_private_dns_zone_group_nameName of the Private DNS Zone Group for the Key Vault.my-kv-pv-grpstring
keyvault_dns_vnet_linkName of the DNS Virtual Network Link for the Key Vault.my-pv-vnet-linkstring
keyvault_purge_protection_enabledWhether purge protection is enabled for the Key Vault.truebooltrue, false
keyvault_enable_rbac_authorizationWhether RBAC (Role-Based Access Control) authorization is enabled for the Key Vault.truebooltrue, false
keyvault_public_network_access_enabledEnable or disable public network access for the Key Vault.truebooltrue, false
keyvault_network_acls_default_actionDefault action for network access control lists (ACLs) in the Key Vault.DenystringAllow, Deny
keyvault_network_acls_bypassBypass option for network ACLs in the Key Vault.AzureServicesstringAzureServices, None
keyvault_network_acls_ip_rulesIP rules for network access control lists (ACLs) in the Key Vault.["45.127.59.60/32"]'list
key_vault_diagnostic_log_enableEnable or disable diagnostic logs for the Azure Key Vault.truebooltrue, false
key_vault_diagnostic_log_nameName of the diagnostic logs setting for the Azure Key Vault.my-keyvault-logsstring
key_vault_diagnostic_log_archive_enableSpecifies whether archiving of diagnostic logs for an Azure Key Vault is enabledtruebooltrue, false
key_vault_diagnostic_log_destination_typeSpecifies the type of destination for diagnostic logs generated by an Azure Key Vault.DedicatedstringAzureDiagnostics. Dedicated
key_vault_diagnostic_log_category_groupCategory of diagnostic logs to enable for the Key Vault.auditstringallLogs, audit
iis_vm_os_disk_encryption_key_nameName of the Azure Key Vault key used for encrypting and decrypting the OS disk.my-os-disk-keystring
iis_vm_os_disk_encryption_key_set_nameName of the Azure Disk Encryption Set used for managing disk encryptionmy-os-disk-key-setstring
iis_vm_os_disk_encryption_key_auto_rotationControls whether automatic key rotation is enabled for the encryption key.truebooltrue, false
iis_vm_os_disk_encryption_key_identity_typeSpecifies the identity type used for key managementSystemAssignedstringSystemAssigned, UserAssigned
iis_vm_os_disk_encryption_key_expire_afterDuration of key validity after creation (in days). Used for key rotation.P24Mstring
iis_vm_os_disk_encryption_key_rotation_time_before_expiryTime before key expiration when automatic rotation should occur (in days).P22Mstring
iis_vm_os_disk_encryption_key_expire_notify_before_expiryTime before key expiration to receive notifications (in days).P21Mstring
recovery_services_vault_nameName of the Azure Recovery Services Vaultmy-recovery-vaultstring
recovery_services_vault_skuSKU for the Azure Recovery Services VaultStandardstring
recovery_services_vault_soft_delete_enabledEnable soft delete for the Recovery Services Vaulttruebooltrue, false
vm_backup_policy_nameName of the Azure VM backup policymy-recovery-vault-policystring
recovery_services_vault_backup_frequencyFrequency of VM backups within the policyDailystringHourly, Daily, Weekly
recovery_services_vault_backup_timeTime of day when VM backups should occur23:00string
recovery_services_vault_daily_retentionNumber of days to retain daily backups7number
recovery_services_vault_identity_typeSpecifies the identity type to be used for the recovery services vaultSystemAssignedstringSystemAssigned
backup_management_service_object_idObject ID for the Backup Management.1234532-364d-43a1-8296-98f011342string
recovery_services_vault_cross_region_restore_enabledIndicates whether cross-region restore is enabled for the recovery services vault.truebooltrue, false
recovery_services_vault_alerts_for_job_failures_enabledEnabling/Disabling built-in Azure Monitor alerts for security scenarios and job failure scenariostruebooltrue, false
recovery_services_vault_alerts_for_critical_operation_failures_enabledEnabling/Disabling alerts from the older (classic alerts) solution.truebooltrue, false
recovery_services_vault_diagnostic_log_enableEnable diagnostic logs for the recovery services vaulttruebooltrue, false
recovery_services_vault_diagnostic_log_nameName of the diagnostic log setting for the recovery services vaultmy-recovery-vault-logsstring
recovery_services_vault_diagnostic_log_archive_enableEnable diagnostic log archiving for the recovery services vaulttruebooltrue, false
recovery_services_vault_diagnostic_log_destination_typeDestination type for diagnostic logs in the recovery services vaultDedicatedstringAzureDiagnostics. Dedicated
recovery_services_vault_diagnostic_log_category_groupCategory group for diagnostic logs in the recovery services vaultallLogsstringallLogs, audit
private_app_gateway_public_ip_nameName of the public IP associated with the private Application Gateway.my-appgw-pub-ipstring
private_app_gateway_public_ip_allocation_methodAllocation method for the public IP of the private Application Gateway.StaticstringDynamic, Static
private_app_gateway_public_ip_skuSKU (service tier) for the public IP of the private Application Gateway.StandardstringBasic, Standard
private_app_gateway_public_ip_ddos_protection_modeDDoS protection mode for the public IP of the private Application Gateway.DisabledstringEnabled, Disabled
private_app_gateway_public_ip_zonesAvailability zones for the public IP of the private Application Gateway.["1", "2", "3"]'list["1", "2", "3"]'
private_app_gateway_capacityCapacity (instance count) for the private Application Gateway.2number
private_app_gateway_nameName of the private Application Gateway.my-appgwstring
private_app_gateway_skuSKU (service tier) for the private Application Gateway.WAF_v2stringStandard_Small, Standard_Medium, Standard_Large, Standard_v2, WAF_Medium, WAF_Large, WAF_v2)
private_app_gateway_tierTier (performance level) for the private Application Gateway.WAF_v2stringStandard, Standard_v2, WAF, WAF_v2
private_app_gateway_zonesAvailability zones for the private Application Gateway.["1", "2", "3"]'list["1", "2", "3"]'
private_app_gateway_private_fe_addressPrivate IP address for the frontend of the private Application Gateway.10.11.16.10string
private_app_gateway_waf_enabledEnable or disable Web Application Firewall (WAF) for the private Application Gateway.truebooltrue, false
private_app_gateway_waf_firewall_modeFirewall mode for the WAF in the private Application Gateway.PreventionstringDetection, Prevention
private_app_gateway_waf_rule_set_typeType of WAF rule set for the private Application Gateway.OWASPstringOWASP, Microsoft_BotManagerRuleSet
private_app_gateway_waf_rule_set_versionVersion of the WAF rule set for the private Application Gateway.3.2string0.1, 1.0, 2.2.9, 3.0, 3.1, 3.2
private_app_gateway_ssl_policy_typeSpecifies the type of SSL policy for the private Application Gateway.PredefinedstringPredefined, Custom, CustomV2
private_app_gateway_ssl_policynameSpecifies the name of the SSL policy for the private Application Gateway.AppGwSslPolicy20220101SstringAppGwSslPolicy20150501, AppGwSslPolicy20220101, AppGwSslPolicy20220101S, AppGwSslPolicy20170401, AppGwSslPolicy20170401S
private_app_gateway_diagnostic_log_enableEnable or disable diagnostic logs for the private Application Gateway.truebooltrue, false
private_app_gateway_diagnostic_log_nameName of the diagnostic logs setting for the private Application Gateway.my-appgw-logsstring
private_app_gateway_log_archive_enableSpecifies whether archiving of diagnostic logs for private Application Gateway is enabledtruebooltrue, false
private_app_gateway_diagnostic_log_destination_typeSpecifies the type of destination for diagnostic logs generated by private Application Gateway.DedicatedstringAzureDiagnostics. Dedicated
private_app_gateway_diagnostic_log_category_groupCategory of diagnostic logs to enable for the private Application Gateway.allLogsstringallLogs
public_app_gateway_public_ip_nameName of the public IP associated with the public Application Gateway.my-pub-app-gw-pub-ipstring
public_app_gateway_public_ip_allocation_methodAllocation method for the public IP of the public Application Gateway.StaticstringDynamic, Static
public_app_gateway_public_ip_skuSKU (service tier) for the public IP of the public Application Gateway.StandardstringBasic, Standard
public_app_gateway_public_ip_ddos_protection_modeDDoS protection mode for the public IP of the public Application Gateway.DisabledstringEnabled, Disabled
public_app_gateway_public_ip_zonesAvailability zones for the public IP of the public Application Gateway.["1", "2", "3"]'list["1", "2", "3"]'
public_app_gateway_capacityCapacity (instance count) for the public Application Gateway.2numbernumber
public_app_gateway_nameName of the public Application Gateway.my-pub-app-gwstring
public_app_gateway_skuSKU (service tier) for the public Application Gateway.WAF_v2stringStandard_Small, Standard_Medium, Standard_Large, Standard_v2, WAF_Medium, WAF_Large, WAF_v2
public_app_gateway_tierTier (performance level) for the public Application Gateway.WAF_v2stringStandard, Standard_v2, WAF, WAF_v2
public_app_gateway_zonesAvailability zones for the public Application Gateway.["1", "2", "3"]'list["1", "2", "3"]'
public_app_gateway_waf_enabledEnable or disable Web Application Firewall (WAF) for the public Application Gateway.truebooltrue, false
public_app_gateway_waf_firewall_modeFirewall mode for the WAF in the public Application Gateway.PreventionstringDetection, Prevention
public_app_gateway_waf_rule_set_typeType of WAF rule set for the public Application Gateway.OWASPstringOWASP, Microsoft_BotManagerRuleSet
public_app_gateway_waf_rule_set_versionVersion of the WAF rule set for the public Application Gateway.3.2string0.1, 1.0, 2.2.9, 3.0, 3.1, 3.2
public_app_gateway_ssl_policy_typeSpecifies the type of SSL policy for the public Application Gateway.PredefinedstringPredefined, Custom, CustomV2
public_app_gateway_ssl_policynameSpecifies the name of the SSL policy for the public Application Gateway.AppGwSslPolicy20220101SstringAppGwSslPolicy20150501, AppGwSslPolicy20220101, AppGwSslPolicy20220101S, AppGwSslPolicy20170401, AppGwSslPolicy20170401S
public_app_gateway_diagnostic_log_enableEnable or disable diagnostic logs for the public Application Gateway.truebooltrue, false
public_app_gateway_diagnostic_log_nameName of the diagnostic logs setting for the public Application Gateway.my-pub-app-gw-logsstring
public_app_gateway_log_archive_enableSpecifies whether archiving of diagnostic logs for public Application Gateway is enabledtruebooltrue, false
public_app_gateway_diagnostic_log_destination_typeSpecifies the type of destination for diagnostic logs generated by public Application Gateway.DedicatedstringAzureDiagnostics. Dedicated
public_app_gateway_diagnostic_log_category_groupCategory of diagnostic logs to enable for the public Application Gateway.allLogsstringallLogs
windows_vm_IIS_admin_usernameUsername for the Windows VM's administrative accountadminuserstring
windows_vm_IIS_sizeSize/configuration of the Windows VMStandard_B2sstring
windows_vm_IIS_countnumber of Windows VM instances to create1number
windows_vm_IIS_nic_nameName of the Network Interface Card (NIC) for the VMmy-vm-nicstring
windows_vm_IIS_nic_ip_configuration_nameName of the IP configuration for the NICinternalstring
windows_vm_IIS_nic_private_ip_address_allocationAllocation method for the NIC's private IP addressDynamicstringDynamic, Static
windows_vm_IIS_nameName of the Windows VMmy-vmstring
windows_vm_IIS_zoneAvailability zones for the Windows IIS VM.["1","2","3"]'list["1","2","3"]'
windows_vm_IIS_os_disk_cachingCaching type for the OS disk of the Windows VMReadWritestringNone, ReadOnly, ReadWrite
windows_vm_IIS_os_disk_storage_account_typeStorage account type for the OS disk of the Windows VMStandardSSD_LRSstringStandard_LRS, Premium_LRS, StandardSSD_LRS, StandardSSD_ZRS, Premium_ZRS
windows_vm_IIS_source_image_reference_publisherPublisher of the source image reference for the VMMicrosoftWindowsServerstring
windows_vm_IIS_source_image_reference_offerOffer of the source image reference for the VMWindowsServerstring
windows_vm_IIS_source_image_reference_skuSKU of the source image reference for the VM2022-datacenter-azure-editionstring
windows_vm_IIS_source_image_reference_versionVersion of the source image reference for the VMlateststring
windows_vm_IIS_extension_publisherPublisher of the VM extensionMicrosoft.Computestring
windows_vm_IIS_extension_typeType of the VM extensionCustomScriptExtensionstring
windows_vm_IIS_extension_type_handler_versionVersion of the VM extension handler1.8string
windows_vm_IIS_extension_auto_upgrade_minor_versionEnable automatic upgrade of minor extension versionstruebooltrue, false
storage_account_nameName of the Azure Storage Account for nsg flow logs.mynsglogsstoragestring
storage_account_tierTier for the Azure Storage Account for nsg flow logs.StandardstringStandard, Premium
storage_account_kindKind of the Azure Storage Account for nsg flow logs.StorageV2stringBlobStorage, BlockBlobStorage, FileStorage, Storage, StorageV2
storage_account_replication_typeReplication type for the Azure Storage Account for nsg flow logs.GRSstringLRS, GRS, RAGRS, ZRS, GZRS, RAGZRS
storage_account_access_tierAccess tier for the Azure Storage Account for nsg flow logs.HotstringHot, Cool
storage_account_public_network_access_enabledEnable or disable public network access for the Azure Storage Account for nsg flow logs.truebooltrue, false
storage_account_diagnostic_log_enableEnable or disable diagnostic logs for the Azure Storage Account for nsg flow logs.truebooltrue, false
storage_account_diagnostic_log_nameName of the diagnostic logs setting for the Azure Storage Account for nsg flow logs.my-sa-logsstring
storage_account_diagnostic_log_category_groupSpecifies whether archiving of diagnostic logs for Azure Storage Account is enabled for nsg flow logs.truebooltrue, false
storage_account_diagnostic_log_archive_enableSpecifies the type of destination for diagnostic logs generated by Azure Storage Account for nsg flow logs.DedicatedstringAzureDiagnostics. Dedicated
storage_account_diagnostic_log_category_groupCategory of diagnostic logs to enable for the Azure Storage Account for nsg flow logs.allLogsstringallLogs
storage_account_shared_access_key_enabledControls whether shared access keys are enabled for the storage account for nsg flow logs.falsebooltrue, false
storage_account_allow_nested_items_to_be_publicIndicates whether nested items within containers can have public accessfalsebooltrue, false
storage_account_enable_https_traffic_onlyEnables HTTPS-only access to the storage account for nsg flow logs.truebooltrue, false
storage_account_infra_encryption_enabledEnables infrastructure encryption for the storage account for nsg flow logs.truebooltrue, false
storage_account_min_tls_versionSpecifies the minimum TLS version required for connections to the storage account for nsg flow logs.TLS1_2stringTLS1_0, TLS1_1, TLS1_2
storage_account_uaid_nameName of the user-assigned identity for storage account for nsg flow logs.my-sa-uaidstring
storage_account_key_nameName of the key for storage account user-assigned identitymy-sa-uaid-keystring
storage_account_key_typeType of the key for nsg flow log storage account user-assigned identityRSAstringRSA
storage_account_key_sizeSize of the key for nsg flow log storage account user-assigned identity2048number2048, 3072, 4096
storage_account_key_optsOptions for the key for nsg flow log storage account user-assigned identity["unwrapKey", "wrapKey"]list(string)decrypt, encrypt, sign, unwrapKey, verify, wrapKey
storage_account_key_expire_afterExpiry duration for the key for nsg flow log storage account user-assigned identityP24MstringDuration in ISO 8601 format
storage_account_key_rotation_time_before_expiryTime before expiry to start key rotation for nsg flow log storage account identityP22MstringDuration in ISO 8601 format
storage_account_key_notify_before_expiryTime before expiry to notify for key rotation for nsg flow log storage account identityP21MstringDuration in ISO 8601 format
storage_account_delete_retention_daysSpecifies the number of days that the blob should be retained in nsg flow log storage account7number1-365
storage_account_container_delete_retention_daysSpecifies the number of days that the container should be retained in nsg flow storage account7number1-365
storage_account_private_endpoint_enableEnable or Disable private endpoint for nsg flow log storage account.falsebooltrue, false
storage_account_private_endpoint_nameName of the private endpoint for nsg flow log storage account.my-sa-pvepstring
storage_account_private_service_connection_nameName of the private service connection for nsg flow log storage account.my-sa-svcstring
storage_account_private_service_is_manual_connectionEnable or disable manual private service connection for nsg flow log storage account.falsebooltrue, false
storage_account_private_service_subresourceList of subresources for the private service connection.["blob"]list(string)["blob"]
storage_account_private_dns_zonePrivate DNS zone for nsg flow log storage account.privatelink.blob.cache.windows.netstringprivatelink.blob.cache.windows.net
storage_account_private_dns_zone_vnet_link_nameName of the VNet link for the private DNS zone.my-sa-vnet-linkstring
storage_account_private_dns_a_record_ttlTime to live (TTL) for the private DNS A record in seconds.300number
storage_account_network_default_actionDefault action for network traffic to nsg flow storage accountDenystring
storage_account_network_ip_rulesList of IP addresses allowed to access the nsg flow storage account["45.127.59.60/32"]'list
storage_account_network_bypassList of network traffic types to bypass["AzureServices"]list(string)
storage_account_key_expiration_dateExpiration date for the storage account key"2024-12-31T11:59:59.000Z"string
iis_vm_os_disk_encryption_key_expiration_dateExpiration date for the OS disk for Windows VM which hosts the IIS"2024-12-31T11:59:59.000Z"string
windows_vm_IIS_patch_assessment_modeSpecifies the mode for assessing whether patches are applicable to the IIS (Internet Information Services) on Windows virtual machines.AutomaticByPlatformstringAutomaticByPlatform
windows_vm_IIS_patch_modeSpecifies the mode for applying patches to the IIS (Internet Information Services) on Windows virtual machines.AutomaticByPlatformstringAutomaticByPlatform
windows_vm_IIS_reboot_settingSpecifies the reboot setting for Windows virtual machines after patching IIS (Internet Information Services).NeverstringNever
windows_vm_IIS_bypass_platform_safety_checks_user_schedule_enabledSpecifies whether to enable bypassing platform safety checks for user-scheduled actions on Windows virtual machines.truebooltrue, false
iis_vm_os_disk_encryption_key_set_typeSpecifies the type of encryption key set for encrypting the operating system disk of the IIS (Internet Information Services) virtual machineEncryptionAtRestWithPlatformAndCustomerKeysstringEncryptionAtRestWithPlatformAndCustomerKeys
log_analytics_cmk_for_query_forcedForce the use of Customer Managed Key (CMK) for query in Log Analyticstruebooltrue, false

Output Parameters

Output Variable NameDescription
rg_nameThe name of the Azure Resource Group.
rg_locationThe location (region) of the Azure Resource Group.
log_analytics_idThe unique ID of the Azure Log Analytics workspace.
log_analytics_workspace_idThe Workspace ID for the Log Analytics Workspace.
log_archive_storage_account_idThe ID of the storage account used for log archiving.
virtual_network_idThe ID of the Azure Virtual Network.
subnet1_iis_idThe ID of the first subnet used by the IIS VM
subnet2_appgw_idThe ID of the second subnet used for Application Gateway.
subnet3_services_idThe ID of the third subnet used for services.
subnet1_iis_addressThe address prefix of the first subnet.
subnet2_appgw_addressThe address prefix of the second subnet for Application Gateway.
subnet3_services_addressThe address prefix of the third subnet for services.
subnet4_firewall_addressThe address prefix of the fourth subnet for the firewall.
vnet_addressThe CIDR of the Azure Virtual Network.
natgw_public_ipThe public IP address of the Network Address Translation (NAT) gateway.
natgw_public_ip_prefixThe public IP prefix of the NAT gateway.
public_dns_zone_nameThe name of the public DNS Zone.
public_dns_zone_idThe ID of the public DNS Zone.
keyvault_nameThe name of the Azure Key Vault.
keyvault_idThe ID of the Azure Key Vault.
disk_encryption_set_idThe unique ID of the Azure Disk Encryption Set.
keyvault_uriThe full URI of the Azure Key Vault.
disk_encryption_key_idThe unique ID of the Azure Disk Encryption Key.
keyvault_private_endpoint_fqdnThe Fully Qualified Domain Name (FQDN) of the private endpoint for the Key Vault.
tenant_idThe Azure Active Directory tenant ID of the directory.
subscription_idThe ID of the Azure subscription where resources are created.
sp_client_idThe client ID of the Service Principal used to create resources.
vm_backup_vault_nameThe name of the Azure VM Backup Vault.
vm_backup_policy_idThe ID of the VM Backup Policy.
public_appgw_nameName of the Public application Gateway
public_appgw_backend_pool_nameName of the default backend pool of Public application Gateway
public_appgw_backend_pool_idName of the default backend pool of Public application Gateway
public_appgw_fe_public_config_nameName of the public front end config of Public application Gateway
public_appgw_fe_public_ipPublic IP address of the Application Gateway.
private_appgw_nameThe name of the Private Application Gateway.
private_appgw_backend_pool_nameThe name of the default backend pool of the Private Application Gateway.
private_appgw_backend_pool_idThe ID of the default backend pool of the Private Application Gateway.
private_appgw_fe_private_config_nameThe name of the Frontend Configuration of the Private Application Gateway.
private_appgw_fe_public_config_nameThe name of the Frontend Configuration of the Private Application Gateway.
private_appgw_fe_public_ipThe public IP address of the Application Gateway.
private_appgw_fe_private_ipThe private IP address of the Application Gateway.
windows_vm_IIS_private_ipsThe private IP addresses of the IIS VMs.
windows_vm_IIS_admin_usernameThe administrative username for the IIS VM.
windows_vm_IIS_namesThe names of the IIS VMs.
storage_account_nameThe name of the Azure Storage Account.
storage_account_idThe ID of the Azure Storage Account.