123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- # Several of these security groups will have customer IPs listed in them to allow
- # POP systems to access our services.
- #
- locals {
- }
- module "aws_endpoints_sg" {
- use_name_prefix = false
- source = "terraform-aws-modules/security-group/aws"
- version = "~> 3"
- name = "aws_endpoints"
- tags = merge(var.standard_tags, var.tags)
- vpc_id = module.vpc.vpc_id
- ingress_cidr_blocks = [ module.vpc.vpc_cidr_block ]
- egress_cidr_blocks = [ module.vpc.vpc_cidr_block ]
- egress_ipv6_cidr_blocks = [ ]
- egress_rules = [ "all-all" ]
- ingress_rules = [ "all-all" ]
- }
- #TODO: Probably want this one available everywhere
- #module "vpc_default_security_groups" {
- # source = "../modules/vpc_security_groups"
- # version = "~> 2.17"
- # name = "toolsvpc"
- # tags = merge(var.standard_tags, var.tags)
- # this_vpc = "${module.vpc.vpc_id}"
- #
- # ec2_prefix_list_count = 1
- # ec2_prefix_lists = [ "${module.vpc.vpc_endpoint_s3_pl_id}" ]
- # salt_masters_sg = "${module.salt_masters_sg.this_security_group_id}"
- # bastion_ssh_sg = "${module.bastion_servers_sg.this_security_group_id}"
- # proxy_servers_sg = "${module.proxy_servers_sg.this_security_group_id}"
- # sensu_servers_sg = "${module.sensu_servers_sg.this_security_group_id}"
- # repo_servers_sg = "${module.repo_servers_sg.this_security_group_id}"
- # idm_inbound_sg = "${module.idm_inbound_sg.this_security_group_id}"
- # openvpn_servers_sg = "${module.openvpn_servers_sg.this_security_group_id}"
- # phantom_servers_sg = "${module.phantom_servers_sg.this_security_group_id}"
- # mailrelay_sg = "${module.mailrelay_sg.this_security_group_id}"
- # moose_sg = "${module.moose_inbound_sg.this_security_group_id}"
- # vuln_scanner_sg_count = 1
- # vuln_scanner_sgs = [ "${module.vuln_scanners_sg.this_security_group_id}" ]
- #}
- # "Allow
- module "allow_all_from_trusted_sg" {
- use_name_prefix = false
- source = "terraform-aws-modules/security-group/aws"
- version = "~> 3"
- name = "allow-all-from-trusted"
- tags = merge(var.standard_tags, var.tags)
- vpc_id = module.vpc.vpc_id
- ingress_cidr_blocks = concat(var.trusted_ips, [ "10.0.0.0/8" ])
- egress_cidr_blocks = [ "0.0.0.0/0" ]
- ingress_rules = [ "all-all" ]
- egress_rules = [ "all-all" ]
- }
- module "allow_all_outbound_sg" {
- use_name_prefix = false
- source = "terraform-aws-modules/security-group/aws"
- version = "~> 3"
- name = "allow-all-outbound"
- tags = merge(var.standard_tags, var.tags)
- vpc_id = module.vpc.vpc_id
- egress_rules = [ "all-all" ]
- }
- # TODO: Do we still want direct ssh as a standard SG? I think we want
- # to avoid this, so I'd say create it only with resources that need it.
- #module "ssh_all_sg" {
- # use_name_prefix = false
- # source = "terraform-aws-modules/security-group/aws"
- # version = "~> 2.17"
- # name = "ssh-any"
- # tags = merge(var.standard_tags, var.tags)
- # vpc_id = "${module.vpc.vpc_id}"
- #
- # ingress_cidr_blocks = "${local.ssh_jump_whitelist}"
- #
- # egress_cidr_blocks = [ "0.0.0.0/0" ]
- # ingress_rules = [ "ssh-tcp", "all-icmp" ]
- #}
- module "typical_host_security_group" {
- source = "../../submodules/security_group/typical_host"
- vpc_id = module.vpc.vpc_id
- cidr_map = var.cidr_map
- tags = merge(var.standard_tags, var.tags)
- aws_region = var.aws_region
- aws_partition = var.aws_partition
- }
- # CIS 4.3 - Default security group should restrict all traffic
- #
- # This resource is special, and clears out existing rules. See:
- # See https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/default_security_group
- resource "aws_default_security_group" "default" {
- vpc_id = module.vpc.vpc_id
- tags = merge(var.standard_tags, var.tags)
- }
|