account.hcl 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  1. # Set account-wide variables. These are automatically pulled in to configure the remote state bucket in the root
  2. # terragrunt.hcl configuration.
  3. locals {
  4. account_name = "afs-mdr-prod-c2-gov"
  5. account_alias = "afs-mdr-prod-c2-gov"
  6. aws_account_id = "721817724804"
  7. instance_termination_protection = true # set to true for production!
  8. splunk_prefix = "moose"
  9. splunk_private_hec = true # True if the customer needs a private HTTP Event Collector such as for ALSI
  10. # For CIDR assignment, see https://github.mdr.defpoint.com/mdr-engineering/msoc-infrastructure/wiki/IP-Address-Allocation
  11. standard_vpc_cidr = "10.40.0.0/22"
  12. splunk_data_sources = [
  13. "170.248.172.0/23", # legacy afs_whitelist
  14. "20.190.250.137/32", # legacy afs_azure_whitelist: EastUS2_External_Access
  15. "52.232.227.197/32", # legacy afs_azure_whitelist: Azure US-East Palo
  16. "52.185.64.173/32", # legacy afs_azure_whitelist: CentralUS_External_Access
  17. "52.242.225.98/32", # legacy afs_azure_whitelist: Azure US-Central Palo 20200721
  18. "52.177.84.83/32", # legacy afs_azure_whitelist: Lab_External_Access
  19. "199.16.64.3/32", # legacy nga_whitelist
  20. "54.205.60.17/32", #FRTIB ALIGHT
  21. "52.206.203.98/32", #FRTIB ALIGHT
  22. "34.233.188.131/32", #FRTIB ALIGHT
  23. "52.61.113.202/32", #FRTIB VDI
  24. "15.200.226.57/32", #FRTIB CMPS
  25. "52.61.137.158/32", #BAS-Commerce CMPS
  26. "34.223.59.103/32", # CA-C19
  27. "44.234.190.14/32", # CA-C19
  28. "44.228.141.151/32", # CA-C19
  29. "18.215.158.202/32", # CA-C19
  30. "54.234.108.195/32", # CA-C19
  31. "34.228.38.91/32", # CA-C19
  32. "3.32.175.159/32", # DGI
  33. "15.200.13.143/32", # DGI
  34. ]
  35. splunk_legacy_cidr = [ # Allow splunk ports to/from here, too
  36. "10.80.0.0/16",
  37. ]
  38. splunk_asg_sizes = [ 1, 1, 1 ] # How many?
  39. splunk_volume_sizes = {
  40. "cluster_master" = {
  41. "swap": 8, # minimum: 8
  42. "/": 10, # minimum: 10
  43. "/home": 4, # minimum: 4
  44. "/var": 15, # minimum: 15
  45. "/var/tmp": 4, # minimum: 4
  46. "/var/log": 8, # minimum: 8
  47. "/var/log/audit": 8, # minimum: 8
  48. "/tmp": 4, # minimum: 4
  49. "/opt/splunk": 30, # No minimum; not in base image
  50. },
  51. "indexer" = {
  52. "swap": 8, # minimum: 8
  53. "/": 10, # minimum: 10
  54. "/home": 4, # minimum: 4
  55. "/var": 15, # minimum: 15
  56. "/var/tmp": 4, # minimum: 4
  57. "/var/log": 8, # minimum: 8
  58. "/var/log/audit": 8, # minimum: 8
  59. "/tmp": 4, # minimum: 4
  60. "/opt/splunk": 60, # No minimum; not in base image
  61. },
  62. "searchhead" = {
  63. "swap": 8, # minimum: 8
  64. "/": 10, # minimum: 10
  65. "/home": 4, # minimum: 4
  66. "/var": 15, # minimum: 15
  67. "/var/tmp": 4, # minimum: 4
  68. "/var/log": 8, # minimum: 8
  69. "/var/log/audit": 8, # minimum: 8
  70. "/tmp": 4, # minimum: 4
  71. "/opt/splunk": 60, # No minimum; not in base image
  72. },
  73. # qcompliance, fm-shared-search, and the monitoring console are all searchheads
  74. # "qcompliance" = {
  75. # "swap": 8, # minimum: 8
  76. # "/": 10, # minimum: 10
  77. # "/home": 4, # minimum: 4
  78. # "/var": 15, # minimum: 15
  79. # "/var/tmp": 4, # minimum: 4
  80. # "/var/log": 8, # minimum: 8
  81. # "/var/log/audit": 8, # minimum: 8
  82. # "/tmp": 4, # minimum: 4
  83. # "/opt/splunk": 30, # No minimum; not in base image
  84. # },
  85. "heavy_forwarder" = {
  86. "swap": 8, # minimum: 8
  87. "/": 20, # minimum: 10
  88. "/home": 4, # minimum: 4
  89. "/var": 15, # minimum: 15
  90. "/var/tmp": 4, # minimum: 4
  91. "/var/log": 8, # minimum: 8
  92. "/var/log/audit": 8, # minimum: 8
  93. "/tmp": 4, # minimum: 4
  94. "/opt/splunk": 30, # No minimum; not in base image
  95. },
  96. }
  97. account_tags = {
  98. "Client": local.splunk_prefix
  99. }
  100. c2_account_standards_path = "../../mdr-prod-c2/005-account-standards-c2"
  101. vpc_info = {
  102. "vpc-splunk" = {
  103. "name" = "vpc-splunk"
  104. "purpose" = "Splunk Systems (MOOSE)"
  105. "cidr" = "10.40.16.0/22",
  106. "tgw_attached" = true,
  107. },
  108. "vpc-system-services" = {
  109. "name" = "vpc-system-services",
  110. "purpose" = "Internal Services for Systems",
  111. "cidr" = "10.40.0.0/22",
  112. "tgw_attached" = false, # Attached via tgw creation
  113. },
  114. "vpc-scanners" = {
  115. "name" = "vpc-scanners",
  116. "purpose" = "Security Scanning",
  117. "cidr" = "10.40.12.0/22",
  118. "tgw_attached" = true,
  119. },
  120. "vpc-interconnects" = {
  121. "name" = "vpc-interconnects",
  122. "purpose" = "Interconnections between AWS partitions",
  123. "cidr" = "10.179.0.0/22",
  124. "tgw_attached" = true,
  125. },
  126. "vpc-access" = {
  127. "name" = "vpc-access"
  128. "purpose" = "Systems providing restricted access, such as bastions and vpn concentrators"
  129. "cidr" = "10.40.20.0/22",
  130. "tgw_attached" = true,
  131. },
  132. "vpc-portal" = {
  133. "name" = "vpc-portal"
  134. "purpose" = "The Customer Portal"
  135. "cidr" = "10.40.32.0/24",
  136. "tgw_attached" = true,
  137. },
  138. "vpc-public" = {
  139. "name" = "vpc-public"
  140. "purpose" = "Publicly Accessible Infrastructure Services, such as GHE and Jira"
  141. "cidr" = "10.40.24.0/22",
  142. "tgw_attached" = true,
  143. },
  144. "vpc-private-services" = {
  145. "name" = "vpc-private-services"
  146. "purpose" = "Private XDR Services for XDR users"
  147. "cidr" = "10.40.28.0/22",
  148. "tgw_attached" = true,
  149. },
  150. }
  151. instance_types = {
  152. #"alsi-master" = "t3a.small",
  153. #"alsi-worker" = "t3a.small",
  154. "bastion" = "t3a.medium",
  155. "fm-shared-search" = "m5a.large", # Legacy: t2.small, prod m4.large
  156. "github" = "c5.4xlarge", # legacy: c4.4xlarge in prod, c5.2xlarge in test
  157. "github-backup" = "t3a.medium", # legacy: t2.medium
  158. "jira-rds" = "db.t3.medium",
  159. "jira-server" = "m5a.xlarge", # legacy test: t2.small, legacy prod: t2.medium
  160. "nessus_security_center" = "m5a.xlarge",
  161. "nessus_scanners" = "m5a.large",
  162. "nessus_managers" = "m5a.large",
  163. "phantom" = "m5a.4xlarge", # legacy test: t2.medium, legacy prod: m4.4xlarge
  164. "qcompliance" = "c5a.8xlarge", # legacy: c4.8xlarge
  165. "rhsso" = "m5a.large",
  166. "rhsso-db" = "db.t3.micro"
  167. "splunk-cm" = "m5a.xlarge",
  168. "splunk-hf" = "m5a.4xlarge",
  169. "splunk-indexer" = "i3en.3xlarge",
  170. "splunk-mc" = "m5a.large", # Legacy: t2.small, prod m4.large
  171. "splunk-sh" = "m5a.4xlarge",
  172. "portal" = "t3a.medium", # legacy: t2.medium
  173. }
  174. # GitHub
  175. github_instance_count = 1
  176. github_data_volume_size = 500
  177. # Salt Master
  178. salt_master_instance_type = "t3a.xlarge"
  179. # mailrelay
  180. mailrelay_instance_type = "t3a.xlarge"
  181. # Nessus Scanner Variables
  182. nessus_scanner_count = 2
  183. nessus_manager_count = 1 # Can't see us needing more than one?
  184. # OpenVPN Server
  185. openvpn_instance_type = "t3a.medium"
  186. # Phantom Server
  187. phantom_instance_count = 1
  188. # Proxy
  189. proxy_server_instance_type = "t3a.medium"
  190. # Repo Server
  191. repo_server_instance_type = "t3a.xlarge"
  192. # rhsso
  193. rhsso_instance_count = 1 # > 1 is untested, likely requires additional work
  194. # DNS Resolver
  195. resolver_instance_type = "t3a.xlarge"
  196. # Vault Server
  197. vault_server_instance_type = "t3a.medium"
  198. # Sensu Server
  199. sensu_server_instance_type = "m5a.xlarge"
  200. # AS Number used for various resources, but not every account needs one.
  201. asn = 64810
  202. security_vpc_cidr = "10.179.0.0/22"
  203. # Interconnects
  204. interconnect_asn = 64888
  205. #interconnects_instance_type = "t3a.micro"
  206. interconnects_instance_type = "m5.xlarge"
  207. interconnects_key_name = "fdamstra" # DO NOT CHANGE
  208. interconnects_count = 2
  209. interconnect_instances_path = "../018-interconnect-instances"
  210. # Qualys Scanners
  211. qualys_personalization_codes = {
  212. standard = "21007869625439" # XDR_Prod_Govcloud_Standard
  213. preauthorized = "21028116523735" # XDR_Prod_Govcloud_Preauthorized
  214. }
  215. # Qualys Connector, defined in AssetView in Qualys Console
  216. qualys_connector_externalid = "1621818655116" # mdr-prod-c2-gov
  217. }