account.hcl 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  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. ]
  21. splunk_legacy_cidr = [ # Allow splunk ports to/from here, too
  22. "10.80.0.0/16",
  23. ]
  24. splunk_asg_sizes = [ 1, 1, 1 ] # How many?
  25. splunk_volume_sizes = {
  26. "cluster_master" = {
  27. "swap": 8, # minimum: 8
  28. "/": 10, # minimum: 10
  29. "/home": 4, # minimum: 4
  30. "/var": 15, # minimum: 15
  31. "/var/tmp": 4, # minimum: 4
  32. "/var/log": 8, # minimum: 8
  33. "/var/log/audit": 8, # minimum: 8
  34. "/tmp": 4, # minimum: 4
  35. "/opt/splunk": 30, # No minimum; not in base image
  36. },
  37. "indexer" = {
  38. "swap": 8, # minimum: 8
  39. "/": 10, # minimum: 10
  40. "/home": 4, # minimum: 4
  41. "/var": 15, # minimum: 15
  42. "/var/tmp": 4, # minimum: 4
  43. "/var/log": 8, # minimum: 8
  44. "/var/log/audit": 8, # minimum: 8
  45. "/tmp": 4, # minimum: 4
  46. "/opt/splunk": 30, # No minimum; not in base image
  47. },
  48. "searchhead" = {
  49. "swap": 8, # minimum: 8
  50. "/": 10, # minimum: 10
  51. "/home": 4, # minimum: 4
  52. "/var": 15, # minimum: 15
  53. "/var/tmp": 4, # minimum: 4
  54. "/var/log": 8, # minimum: 8
  55. "/var/log/audit": 8, # minimum: 8
  56. "/tmp": 4, # minimum: 4
  57. "/opt/splunk": 30, # No minimum; not in base image
  58. },
  59. "qcompliance" = {
  60. "swap": 8, # minimum: 8
  61. "/": 10, # minimum: 10
  62. "/home": 4, # minimum: 4
  63. "/var": 15, # minimum: 15
  64. "/var/tmp": 4, # minimum: 4
  65. "/var/log": 8, # minimum: 8
  66. "/var/log/audit": 8, # minimum: 8
  67. "/tmp": 4, # minimum: 4
  68. "/opt/splunk": 30, # No minimum; not in base image
  69. },
  70. "heavy_forwarder" = {
  71. "swap": 8, # minimum: 8
  72. "/": 10, # minimum: 10
  73. "/home": 4, # minimum: 4
  74. "/var": 15, # minimum: 15
  75. "/var/tmp": 4, # minimum: 4
  76. "/var/log": 8, # minimum: 8
  77. "/var/log/audit": 8, # minimum: 8
  78. "/tmp": 4, # minimum: 4
  79. "/opt/splunk": 30, # No minimum; not in base image
  80. },
  81. }
  82. account_tags = {
  83. "Client": local.splunk_prefix
  84. }
  85. c2_account_standards_path = "../../mdr-prod-c2/005-account-standards-c2"
  86. vpc_info = {
  87. "vpc-splunk" = {
  88. "name" = "vpc-splunk"
  89. "purpose" = "Splunk Systems (MOOSE)"
  90. "cidr" = "10.40.16.0/22",
  91. "tgw_attached" = true,
  92. },
  93. "vpc-system-services" = {
  94. "name" = "vpc-system-services",
  95. "purpose" = "Internal Services for Systems",
  96. "cidr" = "10.40.0.0/22",
  97. "tgw_attached" = false, # Attached via tgw creation
  98. },
  99. "vpc-qualys" = {
  100. "name" = "vpc-qualys",
  101. "purpose" = "Security Scanning",
  102. "cidr" = "10.40.12.0/22",
  103. "tgw_attached" = true,
  104. },
  105. "vpc-interconnects" = {
  106. "name" = "vpc-interconnects",
  107. "purpose" = "Interconnections between AWS partitions",
  108. "cidr" = "10.179.0.0/22",
  109. "tgw_attached" = true,
  110. },
  111. "vpc-access" = {
  112. "name" = "vpc-access"
  113. "purpose" = "Systems providing restricted access, such as bastions and vpn concentrators"
  114. "cidr" = "10.40.20.0/22",
  115. "tgw_attached" = true,
  116. },
  117. "vpc-portal" = {
  118. "name" = "vpc-portal"
  119. "purpose" = "The Customer Portal"
  120. "cidr" = "10.40.32.0/24",
  121. "tgw_attached" = true,
  122. },
  123. "vpc-public" = {
  124. "name" = "vpc-public"
  125. "purpose" = "Publicly Accessible Infrastructure Services, such as GHE and Jira"
  126. "cidr" = "10.40.24.0/22",
  127. "tgw_attached" = true,
  128. },
  129. "vpc-private-services" = {
  130. "name" = "vpc-private-services"
  131. "purpose" = "Private XDR Services for XDR users"
  132. "cidr" = "10.40.28.0/22",
  133. "tgw_attached" = true,
  134. },
  135. }
  136. instance_types = {
  137. #"alsi-master" = "t3a.small",
  138. #"alsi-worker" = "t3a.small",
  139. #"splunk-cm" = "t3a.small", # legacy: t2.small
  140. #"splunk-indexer" = "t3a.small", # legacy: t2.small, but whats the point if we don't have instance storage.
  141. #"splunk-indexer" = "i3en.large", # legacy: t2.small, but whats the point if we don't have instance storage.
  142. #"splunk-indexer" = "m5d.large", # these are 1/2 the price of i3en.larges. 8GB RAM, 75GB storage
  143. "splunk-cm" = "m5a.xlarge",
  144. "splunk-indexer" = "i3en.3xlarge",
  145. "splunk-hf" = "m5a.xlarge",
  146. "splunk-sh" = "m5a.4xlarge",
  147. }
  148. # Bastion
  149. bastion_instance_type = "t3a.micro"
  150. # Salt Master
  151. salt_master_instance_type = "t3a.xlarge"
  152. # mailrelay
  153. mailrelay_instance_type = "t3a.micro"
  154. # Proxy
  155. openvpn_instance_type = "t3a.medium"
  156. # Proxy
  157. proxy_server_instance_type = "t3a.medium"
  158. # Repo Server
  159. repo_server_instance_type = "t3a.micro"
  160. # DNS Resolver
  161. resolver_instance_type = "t3a.micro"
  162. # Vault Server
  163. vault_server_instance_type = "t3a.micro"
  164. # Sensu Server
  165. sensu_server_instance_type = "t3a.medium"
  166. # For testing
  167. create_test_instance = false
  168. # AS Number used for various resources, but not every account needs one.
  169. asn = 64810
  170. security_vpc_cidr = "10.179.0.0/22"
  171. # Interconnects
  172. interconnect_asn = 64888
  173. interconnects_instance_type = "t3a.micro"
  174. interconnects_key_name = "fdamstra" # DO NOT CHANGE
  175. interconnects_count = 2
  176. interconnect_instances_path = "../018-interconnect-instances"
  177. }