security-groups.tf 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. # Rather than pass in the aws security group, we just look it up. This will
  2. # probably be useful other places, as well.
  3. data "aws_security_group" "typical-host" {
  4. name = "typical-host"
  5. vpc_id = var.vpc_id
  6. }
  7. # For now, opening everything:
  8. # ajp port: 8009
  9. # http: 8080
  10. # https: 8443
  11. # mgmt-http: 9990
  12. # mgmt-https: 9993
  13. # txn-recovery-environment: 4712
  14. # txn-status-manager: 4713
  15. #
  16. # Also opening 80 and 443 for certbot
  17. resource "aws_security_group" "instance" {
  18. name = "instance-${var.instance_name}"
  19. description = "Instances of type ${var.instance_name}"
  20. vpc_id = var.vpc_id
  21. tags = merge(var.standard_tags, var.tags)
  22. }
  23. resource "aws_security_group_rule" "instance-http-in" {
  24. description = ""
  25. type = "ingress"
  26. from_port = "80"
  27. to_port = "80"
  28. protocol = "tcp"
  29. cidr_blocks = [ "0.0.0.0/0" ]
  30. security_group_id = aws_security_group.instance.id
  31. }
  32. resource "aws_security_group_rule" "instance-https-in" {
  33. description = ""
  34. type = "ingress"
  35. from_port = "443"
  36. to_port = "443"
  37. protocol = "tcp"
  38. cidr_blocks = [ "0.0.0.0/0" ]
  39. security_group_id = aws_security_group.instance.id
  40. }
  41. resource "aws_security_group_rule" "instance-ajp-in" {
  42. description = ""
  43. type = "ingress"
  44. from_port = "8009"
  45. to_port = "8009"
  46. protocol = "tcp"
  47. cidr_blocks = [ "0.0.0.0/0" ]
  48. security_group_id = aws_security_group.instance.id
  49. }
  50. resource "aws_security_group_rule" "instance-alt-http-in" {
  51. description = ""
  52. type = "ingress"
  53. from_port = "8080"
  54. to_port = "8080"
  55. protocol = "tcp"
  56. cidr_blocks = [ "0.0.0.0/0" ]
  57. security_group_id = aws_security_group.instance.id
  58. }
  59. resource "aws_security_group_rule" "instance-alt-https-in" {
  60. description = ""
  61. type = "ingress"
  62. from_port = "8443"
  63. to_port = "8443"
  64. protocol = "tcp"
  65. cidr_blocks = [ "0.0.0.0/0" ]
  66. security_group_id = aws_security_group.instance.id
  67. }
  68. resource "aws_security_group_rule" "instance-mgmt-http-in" {
  69. description = ""
  70. type = "ingress"
  71. from_port = "9990"
  72. to_port = "9990"
  73. protocol = "tcp"
  74. cidr_blocks = [ "0.0.0.0/0" ]
  75. security_group_id = aws_security_group.instance.id
  76. }
  77. resource "aws_security_group_rule" "instance-mgmt-https-in" {
  78. description = ""
  79. type = "ingress"
  80. from_port = "9993"
  81. to_port = "9993"
  82. protocol = "tcp"
  83. cidr_blocks = [ "0.0.0.0/0" ]
  84. security_group_id = aws_security_group.instance.id
  85. }
  86. resource "aws_security_group_rule" "instance-txn-in" {
  87. description = ""
  88. type = "ingress"
  89. from_port = "4712"
  90. to_port = "4713"
  91. protocol = "tcp"
  92. cidr_blocks = [ "0.0.0.0/0" ]
  93. security_group_id = aws_security_group.instance.id
  94. }
  95. # lock down before production, but I couldn't get letsencrypt to work with the proxy
  96. resource "aws_security_group_rule" "instance-all-out" {
  97. description = ""
  98. type = "egress"
  99. from_port = "-1"
  100. to_port = "-1"
  101. protocol = "-1"
  102. cidr_blocks = [ "0.0.0.0/0" ]
  103. security_group_id = aws_security_group.instance.id
  104. }