security-groups.tf 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  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. data "aws_security_group" "aws_endpoints" {
  8. name = "aws_endpoints"
  9. vpc_id = var.vpc_id
  10. }
  11. # ajp port: 8009
  12. # http: 8080
  13. # https: 8443
  14. # mgmt-http: 9990
  15. # mgmt-https: 9993
  16. # txn-recovery-environment: 4712
  17. # txn-status-manager: 4713
  18. resource "aws_security_group" "instance" {
  19. name = "RHSSO"
  20. description = "RHSSO Instances"
  21. vpc_id = var.vpc_id
  22. tags = merge(var.standard_tags, var.tags)
  23. }
  24. resource "aws_security_group_rule" "cluster-connectivity-ingress" {
  25. description = "Receive any from other cluster members"
  26. type = "ingress"
  27. from_port = -1
  28. to_port = -1
  29. protocol = -1
  30. security_group_id = aws_security_group.instance.id
  31. source_security_group_id = aws_security_group.instance.id
  32. }
  33. resource "aws_security_group_rule" "cluster-connectivity-egress" {
  34. description = "send any to other cluster members"
  35. type = "egress"
  36. from_port = -1
  37. to_port = -1
  38. protocol = -1
  39. security_group_id = aws_security_group.instance.id
  40. source_security_group_id = aws_security_group.instance.id
  41. }
  42. resource "aws_security_group_rule" "outbound_http" {
  43. description = "CRL Lookups go direct"
  44. type = "egress"
  45. from_port = 80
  46. to_port = 80
  47. protocol = "tcp"
  48. security_group_id = aws_security_group.instance.id
  49. cidr_blocks = [ "0.0.0.0/0" ]
  50. }
  51. #resource "aws_security_group_rule" "instance-http-in" {
  52. # description = ""
  53. # type = "ingress"
  54. # from_port = "80"
  55. # to_port = "80"
  56. # protocol = "tcp"
  57. # cidr_blocks = [ "0.0.0.0/0" ]
  58. # security_group_id = aws_security_group.instance.id
  59. #}
  60. #
  61. #resource "aws_security_group_rule" "instance-https-in" {
  62. # description = ""
  63. # type = "ingress"
  64. # from_port = "443"
  65. # to_port = "443"
  66. # protocol = "tcp"
  67. # cidr_blocks = [ "0.0.0.0/0" ]
  68. # security_group_id = aws_security_group.instance.id
  69. #}
  70. #
  71. #resource "aws_security_group_rule" "instance-ajp-in" {
  72. # description = ""
  73. # type = "ingress"
  74. # from_port = "8009"
  75. # to_port = "8009"
  76. # protocol = "tcp"
  77. # cidr_blocks = [ "0.0.0.0/0" ]
  78. # security_group_id = aws_security_group.instance.id
  79. #}
  80. resource "aws_security_group_rule" "instance-alt-http-in-from-access" {
  81. description = "Alt HTTP from access"
  82. type = "ingress"
  83. from_port = "8080"
  84. to_port = "8080"
  85. protocol = "tcp"
  86. cidr_blocks = var.cidr_map["vpc-access"]
  87. security_group_id = aws_security_group.instance.id
  88. }
  89. #resource "aws_security_group_rule" "instance-alt-http-in-from-elb" {
  90. # description = "Alt HTTP from ELB"
  91. # type = "ingress"
  92. # from_port = "8080"
  93. # to_port = "8080"
  94. # protocol = "tcp"
  95. # security_group_id = aws_security_group.instance.id
  96. # source_security_group_id = aws_security_group.elb_external.id
  97. #}
  98. resource "aws_security_group_rule" "instance-alt-https-in-from-access" {
  99. description = "Alt HTTPS from Access"
  100. type = "ingress"
  101. from_port = "8443"
  102. to_port = "8443"
  103. protocol = "tcp"
  104. cidr_blocks = var.cidr_map["vpc-access"]
  105. security_group_id = aws_security_group.instance.id
  106. }
  107. resource "aws_security_group_rule" "instance-alt-https-in-from-nlb" {
  108. description = "Alt HTTPS from Internet"
  109. type = "ingress"
  110. from_port = "8443"
  111. to_port = "8443"
  112. protocol = "tcp"
  113. cidr_blocks = [ "0.0.0.0/0" ]
  114. security_group_id = aws_security_group.instance.id
  115. }
  116. resource "aws_security_group_rule" "instance-mgmt-in-from-access" {
  117. description = "Management HTTPS from Access"
  118. type = "ingress"
  119. from_port = "9990"
  120. to_port = "9990"
  121. protocol = "tcp"
  122. cidr_blocks = var.cidr_map["vpc-access"]
  123. security_group_id = aws_security_group.instance.id
  124. }
  125. resource "aws_security_group_rule" "instance-db-outbound" {
  126. description = "Postgres Outbound"
  127. type = "egress"
  128. from_port = "5432"
  129. to_port = "5432"
  130. protocol = "tcp"
  131. security_group_id = aws_security_group.instance.id
  132. source_security_group_id = aws_security_group.rhsso_rds_sg.id
  133. }
  134. #resource "aws_security_group_rule" "instance-mgmt-http-in" {
  135. # description = ""
  136. # type = "ingress"
  137. # from_port = "9990"
  138. # to_port = "9990"
  139. # protocol = "tcp"
  140. # cidr_blocks = [ "0.0.0.0/0" ]
  141. # security_group_id = aws_security_group.instance.id
  142. #}
  143. #
  144. #resource "aws_security_group_rule" "instance-mgmt-https-in" {
  145. # description = ""
  146. # type = "ingress"
  147. # from_port = "9993"
  148. # to_port = "9993"
  149. # protocol = "tcp"
  150. # cidr_blocks = [ "0.0.0.0/0" ]
  151. # security_group_id = aws_security_group.instance.id
  152. #}
  153. #
  154. #resource "aws_security_group_rule" "instance-txn-in" {
  155. # description = ""
  156. # type = "ingress"
  157. # from_port = "4712"
  158. # to_port = "4713"
  159. # protocol = "tcp"
  160. # cidr_blocks = [ "0.0.0.0/0" ]
  161. # security_group_id = aws_security_group.instance.id
  162. #}
  163. #
  164. ## lock down before production, but I couldn't get letsencrypt to work with the proxy
  165. #resource "aws_security_group_rule" "instance-all-out" {
  166. # description = ""
  167. # type = "egress"
  168. # from_port = "-1"
  169. # to_port = "-1"
  170. # protocol = "-1"
  171. # cidr_blocks = [ "0.0.0.0/0" ]
  172. # security_group_id = aws_security_group.instance.id
  173. #}