Skip to content

OT-CLOUD-KIT/terraform-aws-vpc-endpoints

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

terraform module to create VPC endpoints and security groups

Terraform module to create VPC endpoints and security groups.

Goal

This terraform module creates VPC endpoints (interface and gateway type endpoints) and security groups.

Dependencies

Please make sure that the following AWS resources are created before executing this module.

  • VPC
  • Subnet
  • RouteTables

Considerations

1. Naming conventions

Requirements

Name Version
terraform >= 1.0
aws >= 5.30

Providers

No providers.

Modules

Name Source Version
name_gateway_ep google.com/naming-tag.git feature/US106973
name_interface_ep google.com/naming-tag.git feature/US106973
name_security_group google.com/naming-tag.git feature/US106973
security_group google.com/aws-security-group.git tag-name-change
vpc_gateway_endpoint google.com/aws-gateway-vpc-endpoint.git tag-name-change
vpc_interface_endpoint google.com/aws-interface-vpc-endpoint.git tag-name-change

Resources

No resources.

Inputs

Name Description Type Default Required
app Name of the application, For ex: network, shared, ot etc. string n/a yes
bu Name of the business unit, For ex: bu which are supported by ot are: pcs, ultrasound etc. string n/a yes
env Name of the environment example: for development env it should be 'd', prod env should be 'p', testing env should be 'q' and staging env should be's'. string n/a yes
sg_egress_variables List of egress rules for the security group
list(object({
 cidr_blocks = optional(list(string))
   description = optional(string)
   from_port   = number
   to_port     = number
   protocol    = string
 }))
[
 {
   "cidr_blocks": [],
   "description": null,
   "from_port": 0,
   "protocol": "-1",
   "to_port": 0
 }
]
no
sg_ingress_variables List of ingress rules for the security group
list(object({
   cidr_blocks = optional(list(string))
   description = optional(string)
   from_port   = number
   to_port     = number
   protocol    = string
 }))
[
 {
   "cidr_blocks": [],
   "description": null,
   "from_port": 0,
   "protocol": "-1",
   "to_port": 0
 }
]
no
sg_tags Tags for the security group map(string) {} no
vpc_gateway_ep_list A list of all VPC gateway endpoints
list(object({
   service_name = optional(string, null)
   auto_accept  = optional(bool, true)
   policy = optional(any, {
     Statement = [
       {
         Action    = ""
         Effect    = "Allow"
         Principal = "
"
         Resource  = "*"
       }
     ]
   })
 }))
[] no
vpc_gateway_ep_route_table_ids Route table ids for all VPC gateway endpoints list(string) [] no
vpc_gateway_ep_tags Tags for all VPC gateway endpoints map(string) {} no
vpc_id VPC ID for the composite module string n/a yes
vpc_interface_ep_list A list of all VPC interface endpoints
list(object({
   service_name        = optional(string, null)
   private_dns_enabled = optional(bool, true)
   ip_address_type     = optional(string, "ipv4")
   auto_accept        = optional(bool, true)
   policy = optional(any, {
     Statement = [
       {
         Action    = ""
         Effect    = "Allow"
         Principal = "
"
         Resource  = "*"
       }
     ]
   })
 }))
[] no
vpc_interface_ep_subnet_ids Subnet ids for all VPC interface endpoints list(string) [] no
vpc_interface_ep_tags Tags for all VPC interface endpoints map(string) {} no

Outputs

Name Description
vpc_gateway_ep_arns ARNs of the VPC gateway endpoints
vpc_gateway_ep_ids IDs of the VPC gateway endpoints
vpc_interface_ep_arns ARNs of the VPC interface endpoints
vpc_interface_ep_ids IDs of the VPC interface endpoints

Requirements

Name Version
terraform >= 1.0
aws >= 5.30

Providers

No providers.

Modules

Name Source Version
name_gateway_ep naming-tag n/a
name_gateway_loadbalancer_ep naming-tag n/a
name_interface_ep naming-tag n/a
name_security_group naming-tag n/a
security_group aws-security-group n/a
vpc_gateway_endpoint aws-gateway-vpc-endpoint n/a
vpc_gateway_loadbalancer_endpoint aws-gateway-loadbalancer-vpc-endpoint n/a
vpc_interface_endpoint aws-interface-vpc-endpoint n/a

Resources

No resources.

Inputs

Name Description Type Default Required
app Name of the application, For ex: network, shared, ot etc. string n/a yes
bu Name of the business unit, For ex: bu which are supported by ot are: pcs, ultrasound etc. string n/a yes
env Name of the environment example: for development env it should be 'd', prod env should be 'p', testing env should be 'q' and staging env should be's'. string n/a yes
sg_egress_variables List of egress rules for the security group
list(object({
   cidr_blocks = optional(list(string))
   description = optional(string)
   from_port   = number
   to_port     = number
   protocol    = string
 }))
[
 {
   "cidr_blocks": [],
   "description": null,
   "from_port": 0,
   "protocol": "-1",
   "to_port": 0
 }
]
no
sg_ingress_variables List of ingress rules for the security group
list(object({
   cidr_blocks = optional(list(string))
   description = optional(string)
   from_port   = number
   to_port     = number
   protocol    = string
 }))
[
 {
   "cidr_blocks": [],
   "description": null,
   "from_port": 0,
   "protocol": "-1",
   "to_port": 0
 }
]
no
sg_tags Tags for the security group map(string) {} no
tags Tags for the security group map(string) {} no
tenant Name of the tenant string "" no
vpc_gateway_ep_list Map of all VPC gateway endpoints
map(object({
   service_name = optional(string, null)
   auto_accept  = optional(bool, true)
   policy = optional(any, {
     Statement = [
       {
         Action    = ""
         Effect    = "Allow"
         Principal = "
"
         Resource  = "*"
       }
     ]
   })
 }))
{} no
vpc_gateway_ep_route_table_ids Route table ids for all VPC gateway endpoints list(string) [] no
vpc_gateway_ep_tags Tags for all VPC gateway endpoints map(string) {} no
vpc_gateway_loadbalancer_ep_list Map of all VPC gateway loadbalancer endpoints
map(object({
   service_name = optional(string, null)
   ip_address_type = optional(string, null)
   auto_accept  = optional(bool, true)
 }))
{} no
vpc_gateway_loadbalancer_ep_subnet_configuration Subnet configuration for all VPC gateway loadbalancer endpoints list(any) [] no
vpc_gateway_loadbalancer_ep_subnet_ids Subnet ids for all VPC gateway loadbalancer endpoints list(string) [] no
vpc_gateway_loadbalancer_ep_tags Tags for all VPC gateway loadbalancer endpoints map(string) {} no
vpc_id VPC ID for the composite module string n/a yes
vpc_interface_ep_list Map of all VPC interface endpoints
map(object({
   service_name        = optional(string, null)
   private_dns_enabled = optional(bool, true)
   ip_address_type     = optional(string, "ipv4")
   auto_accept         = optional(bool, true)
   policy = optional(any, {
     Statement = [
       {
         Action    = ""
         Effect    = "Allow"
         Principal = "
"
         Resource  = "*"
       }
     ]
   })
 }))
{} no
vpc_interface_ep_subnet_ids Subnet ids for all VPC interface endpoints list(string) [] no
vpc_interface_ep_tags Tags for all VPC interface endpoints map(string) {} no

Outputs

Name Description
security_group Security group details
vpc_endpoint VPC endpoint details
vpc_endpoint_id Map of VPC endpoint IDs
vpc_endpoint_service_name Map of VPC endpoint Service names

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages