security-groups.tf 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. # Several of these security groups will have customer IPs listed in them to allow
  2. # POP systems to access our services.
  3. #
  4. locals {
  5. }
  6. module "aws_endpoints_sg" {
  7. use_name_prefix = false
  8. source = "terraform-aws-modules/security-group/aws"
  9. version = "= 4.0.0"
  10. name = "aws_endpoints"
  11. tags = merge(var.standard_tags, var.tags)
  12. vpc_id = module.vpc.vpc_id
  13. ingress_cidr_blocks = [ module.vpc.vpc_cidr_block ]
  14. egress_cidr_blocks = [ module.vpc.vpc_cidr_block ]
  15. egress_ipv6_cidr_blocks = [ ]
  16. egress_rules = [ "all-all" ]
  17. ingress_rules = [ "all-all" ]
  18. }
  19. module "allow_all_sg" {
  20. use_name_prefix = false
  21. source = "terraform-aws-modules/security-group/aws"
  22. version = "= 4.0.0"
  23. name = "allow-all"
  24. tags = merge(var.standard_tags, var.tags)
  25. vpc_id = module.vpc.vpc_id
  26. ingress_cidr_blocks = [ "0.0.0.0/0" ]
  27. egress_cidr_blocks = [ "0.0.0.0/0" ]
  28. ingress_rules = [ "all-all" ]
  29. egress_rules = [ "all-all" ]
  30. }
  31. module "allow_all_outbound_sg" {
  32. use_name_prefix = false
  33. source = "terraform-aws-modules/security-group/aws"
  34. version = "= 4.0.0"
  35. name = "allow-all-outbound"
  36. tags = merge(var.standard_tags, var.tags)
  37. vpc_id = module.vpc.vpc_id
  38. egress_rules = [ "all-all" ]
  39. }
  40. module "allow_trusted_sg" {
  41. use_name_prefix = false
  42. source = "terraform-aws-modules/security-group/aws"
  43. version = "= 4.0.0"
  44. name = "allow_trusted"
  45. tags = merge(var.standard_tags, var.tags)
  46. vpc_id = module.vpc.vpc_id
  47. egress_rules = [ "all-all" ]
  48. ingress_rules = [ "http-80-tcp", "https-443-tcp", "ssh-tcp", "all-icmp" ]
  49. ingress_cidr_blocks = concat(var.trusted_ips, [ module.vpc.vpc_cidr_block ])
  50. }
  51. module "allow_all_intravpc" {
  52. use_name_prefix = false
  53. source = "terraform-aws-modules/security-group/aws"
  54. version = "= 4.0.0"
  55. name = "allow_all_intravpc"
  56. tags = merge(var.standard_tags, var.tags)
  57. vpc_id = module.vpc.vpc_id
  58. egress_rules = [ "all-all" ]
  59. ingress_rules = [ "all-all" ]
  60. ingress_cidr_blocks = [ module.vpc.vpc_cidr_block ]
  61. }
  62. # CIS 4.3 - Default security group should restrict all traffic
  63. #
  64. # This resource is special, and clears out existing rules. See:
  65. # See https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/default_security_group
  66. resource "aws_default_security_group" "default" {
  67. vpc_id = module.vpc.vpc_id
  68. tags = merge(var.standard_tags, var.tags)
  69. }