|
@@ -0,0 +1,168 @@
|
|
|
|
+resource "aws_security_group" "re" {
|
|
|
|
+ name = "RedisEnterprise"
|
|
|
|
+ description = "Redis Enterprise Security Group"
|
|
|
|
+ vpc_id = "${var.vpc-id}"
|
|
|
|
+ ###############################################################################
|
|
|
|
+ # Ingress
|
|
|
|
+ ###############################################################################
|
|
|
|
+ # SSH Internal
|
|
|
|
+ ingress {
|
|
|
|
+ from_port = 22
|
|
|
|
+ to_port = 22
|
|
|
|
+ protocol = "tcp"
|
|
|
|
+ cidr_blocks = [var.vpc-cidr]
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ # SSH External
|
|
|
|
+ ingress {
|
|
|
|
+ from_port = 22
|
|
|
|
+ to_port = 22
|
|
|
|
+ protocol = "tcp"
|
|
|
|
+ cidr_blocks = var.open-nets
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ ###############################################################################
|
|
|
|
+ # Redis Enterprise Specific
|
|
|
|
+ # https://docs.redislabs.com/latest/rs/administering/designing-production/networking/port-configurations
|
|
|
|
+ ###############################################################################
|
|
|
|
+
|
|
|
|
+ # For connectivity checking between nodes
|
|
|
|
+ ingress {
|
|
|
|
+ from_port = -1
|
|
|
|
+ to_port = -1
|
|
|
|
+ protocol = "icmp"
|
|
|
|
+ cidr_blocks = [var.vpc-cidr]
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ # Internal cluster usage
|
|
|
|
+ ingress {
|
|
|
|
+ from_port = 3333
|
|
|
|
+ to_port = 3339
|
|
|
|
+ protocol = "tcp"
|
|
|
|
+ cidr_blocks = [var.vpc-cidr]
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ ingress {
|
|
|
|
+ from_port = 36379
|
|
|
|
+ to_port = 36380
|
|
|
|
+ protocol = "tcp"
|
|
|
|
+ cidr_blocks = [var.vpc-cidr]
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ # For application to access the RS Discovery Service
|
|
|
|
+ ingress {
|
|
|
|
+ from_port = 8001
|
|
|
|
+ to_port = 8001
|
|
|
|
+ protocol = "tcp"
|
|
|
|
+ cidr_blocks = [var.vpc-cidr]
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ # For secure (https) access to the management web UI
|
|
|
|
+ ingress {
|
|
|
|
+ from_port = 8443
|
|
|
|
+ to_port = 8443
|
|
|
|
+ protocol = "tcp"
|
|
|
|
+ cidr_blocks = [var.vpc-cidr]
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ # For nginx <->cnm_http/cm communications on the same host only. Ports are bound to loopback adapter.
|
|
|
|
+ ingress {
|
|
|
|
+ from_port = 8444
|
|
|
|
+ to_port = 8444
|
|
|
|
+ protocol = "tcp"
|
|
|
|
+ cidr_blocks = [var.vpc-cidr]
|
|
|
|
+ }
|
|
|
|
+ ingress {
|
|
|
|
+ from_port = 9080
|
|
|
|
+ to_port = 9080
|
|
|
|
+ protocol = "tcp"
|
|
|
|
+ cidr_blocks = [var.vpc-cidr]
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ # For CRDB management
|
|
|
|
+ ingress {
|
|
|
|
+ from_port = 9081
|
|
|
|
+ to_port = 9081
|
|
|
|
+ protocol = "tcp"
|
|
|
|
+ cidr_blocks = [var.vpc-cidr]
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ # For metrics exported and managed by nginx
|
|
|
|
+ ingress {
|
|
|
|
+ from_port = 8070
|
|
|
|
+ to_port = 8071
|
|
|
|
+ protocol = "tcp"
|
|
|
|
+ cidr_blocks = [var.vpc-cidr]
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ # Used to expose the REST API, including cluster management and node bootstrap
|
|
|
|
+ ingress {
|
|
|
|
+ from_port = 8080
|
|
|
|
+ to_port = 8080
|
|
|
|
+ protocol = "tcp"
|
|
|
|
+ cidr_blocks = [var.vpc-cidr]
|
|
|
|
+ }
|
|
|
|
+ ingress {
|
|
|
|
+ from_port = 9443
|
|
|
|
+ to_port = 9443
|
|
|
|
+ protocol = "tcp"
|
|
|
|
+ cidr_blocks = [var.vpc-cidr]
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ # For exposing databases externally
|
|
|
|
+ ingress {
|
|
|
|
+ from_port = 10000
|
|
|
|
+ to_port = 19999
|
|
|
|
+ protocol = "tcp"
|
|
|
|
+ cidr_blocks = var.open-nets
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ # For internal communications with database shards
|
|
|
|
+ ingress {
|
|
|
|
+ from_port = 20000
|
|
|
|
+ to_port = 29999
|
|
|
|
+ protocol = "tcp"
|
|
|
|
+ cidr_blocks = [var.vpc-cidr]
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ # For accessing DNS/mDNS functionality in the cluster
|
|
|
|
+ ingress {
|
|
|
|
+ from_port = 53
|
|
|
|
+ to_port = 53
|
|
|
|
+ protocol = "udp"
|
|
|
|
+ cidr_blocks = [var.vpc-cidr]
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ ingress {
|
|
|
|
+ from_port = 5353
|
|
|
|
+ to_port = 5353
|
|
|
|
+ protocol = "udp"
|
|
|
|
+ cidr_blocks = [var.vpc-cidr]
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ ###############################################################################
|
|
|
|
+ # Egress
|
|
|
|
+ ###############################################################################
|
|
|
|
+
|
|
|
|
+ egress {
|
|
|
|
+ from_port = 0
|
|
|
|
+ to_port = 65535
|
|
|
|
+ protocol = "tcp"
|
|
|
|
+ cidr_blocks = ["0.0.0.0/0"]
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ egress {
|
|
|
|
+ from_port = -1
|
|
|
|
+ to_port = -1
|
|
|
|
+ protocol = "icmp"
|
|
|
|
+ cidr_blocks = [var.vpc-cidr]
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ egress {
|
|
|
|
+ from_port = 0
|
|
|
|
+ to_port = 65535
|
|
|
|
+ protocol = "udp"
|
|
|
|
+ cidr_blocks = ["0.0.0.0/0"]
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|