Skip to main content

VPC Endpoint Module for AWS

A Terraform module for deploying a VPC Endpoint for VM-Series firewalls.

GitHub Logo Terraform Logo

Reference

Requirements

NameVersion
terraform>= 1.0.0, < 2.0.0
aws~> 5.17

Providers

NameVersion
aws~> 5.17

Modules

No modules.

Resources

NameType
aws_vpc_endpoint.thisresource
aws_vpc_endpoint_route_table_association.thisresource
aws_vpc_endpoint_subnet_association.thisresource
aws_vpc_endpoint.thisdata source
aws_vpc_endpoint_service.thisdata source

Inputs

NameDescriptionTypeDefaultRequired
auto_acceptIf a service connection requires service owner's acceptance, the request will be approved automatically, provided that both parties are members of the same AWS account.boolnullno
createIf false, does not create a new AWS VPC Endpoint, but instead uses a pre-existing one. The inputs name, service_name, simple_service_name, tags, type, and vpc_id can be used to match the pre-existing endpoint.booltrueno
namen/astringnullno
policyn/astringnullno
private_dns_enabledn/aboolnullno
route_table_idsn/amap(string){}no
security_group_idsn/alist(string)[]no
service_nameThe exact service name. This input is ignored if simple_service_name is defined. Typically "com.amazonaws.REGION.SERVICE", for example: "com.amazonaws.us-west-2.s3"stringnullno
simple_service_nameThe simplified service name for AWS service, for example: "s3". Uses the service from the current region. If null, the service_name input is used instead.stringnullno
subnetsMap of Subnets where to create the Endpoints. Each map's key is the availability zone name and each map's object has an attribute
id identifying AWS Subnet. Importantly, the traffic returning from the Endpoint uses the Subnet's route table.
The keys of this input map are used for the output map endpoints.
Example for users of module subnet_set:
subnets = module.subnet_set.subnets
Example:
subnets = {
"us-east-1a" = { id = "snet-123007" }
"us-east-1b" = { id = "snet-123008" }
}
map(object({
id = string
}))
{}no
tagsn/amap(string){}no
typeThe type of the service.
The type "Gateway" does not tolerate inputs subnets, security_group_ids, and private_dns_enabled.
The type "Interface" does not tolerate input route_table_ids.
The type "GatewayLoadBalancer" is similar to "Gateway", but can be deployed with the dedicated module gwlb_endpoint_set.
If null, "Gateway" is used by default.
stringn/ayes
vpc_idn/astringn/ayes

Outputs

NameDescription
endpointThe created aws_vpc_endpoint object. Alternatively, the data resource if the input create is false.