{"id":19580385,"url":"https://github.com/dod-iac/terraform-aws-vpc-endpoints","last_synced_at":"2025-04-23T00:41:24.431Z","repository":{"id":43862936,"uuid":"391955963","full_name":"dod-iac/terraform-aws-vpc-endpoints","owner":"dod-iac","description":"Creates a set of VPC endpoints for the given VPC","archived":false,"fork":false,"pushed_at":"2023-10-13T03:02:55.000Z","size":197,"stargazers_count":4,"open_issues_count":1,"forks_count":2,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-29T20:32:51.388Z","etag":null,"topics":["aws","terraform","vpc"],"latest_commit_sha":null,"homepage":"https://registry.terraform.io/modules/dod-iac/vpc-endpoints/aws","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dod-iac.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-02T13:17:08.000Z","updated_at":"2024-03-29T01:03:55.000Z","dependencies_parsed_at":"2024-11-11T07:28:53.156Z","dependency_job_id":"b6b65f00-bfb5-4a73-b382-ea08a7292ab6","html_url":"https://github.com/dod-iac/terraform-aws-vpc-endpoints","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dod-iac%2Fterraform-aws-vpc-endpoints","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dod-iac%2Fterraform-aws-vpc-endpoints/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dod-iac%2Fterraform-aws-vpc-endpoints/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dod-iac%2Fterraform-aws-vpc-endpoints/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dod-iac","download_url":"https://codeload.github.com/dod-iac/terraform-aws-vpc-endpoints/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250348897,"owners_count":21415907,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","terraform","vpc"],"created_at":"2024-11-11T07:25:19.331Z","updated_at":"2025-04-23T00:41:24.412Z","avatar_url":"https://github.com/dod-iac.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n## Usage\n\nCreates a set of VPC endpoints for the given VPC.\n\n```hcl\nmodule \"vpc\" {\n  source  = \"terraform-aws-modules/vpc/aws\"\n  version = \"3.1.0\"\n\n  ...\n}\n\nresource \"aws_security_group\" \"endpoint\" {\n  name        = format(\"app-%s-vpc-endpoint\", var.application)\n  description = \"A security group for PrivateLink endpoints\"\n  tags        = var.tags\n  vpc_id      = module.vpc.vpc_id\n  ingress {\n    from_port   = 443\n    to_port     = 443\n    protocol    = \"tcp\"\n    cidr_blocks = [\"0.0.0.0/0\"]\n  }\n  egress {\n    from_port   = 0\n    to_port     = 0\n    protocol    = \"-1\"\n    cidr_blocks = [\"0.0.0.0/0\"]\n  }\n  lifecycle {\n    create_before_destroy = true\n  }\n}\n\nmodule \"vpc_endpoints\" {\n  source = \"dod-iac/vpc-endpoints/aws\"\n\n  route_table_ids    = flatten([\n    module.vpc.intra_route_table_ids,\n    module.vpc.private_route_table_ids,\n    module.vpc.public_route_table_ids\n  ])\n  security_group_ids = [aws_security_group.endpoint.id]\n  subnet_ids         = module.vpc.private_subnets\n  vpc_id             = module.vpc.vpc_id\n\n  tags  = {\n    Application = var.application\n    Environment = var.environment\n    Automation  = \"Terraform\"\n  }\n}\n```\n\n## Testing\n\nRun all terratest tests using the `terratest` script.  If using `aws-vault`, you could use `aws-vault exec $AWS_PROFILE -- terratest`.  The `AWS_DEFAULT_REGION` environment variable is required by the tests.  Use `TT_SKIP_DESTROY=1` to not destroy the infrastructure created during the tests.  Use `TT_VERBOSE=1` to log all tests as they are run.  Use `TT_TIMEOUT` to set the timeout for the tests, with the value being in the Go format, e.g., 15m.  The go test command can be executed directly, too.\n\n## Terraform Version\n\nTerraform 0.13. Pin module version to ~\u003e 1.0.0 . Submit pull-requests to master branch.\n\nTerraform 0.11 and 0.12 are not supported.\n\n## License\n\nThis project constitutes a work of the United States Government and is not subject to domestic copyright protection under 17 USC § 105.  However, because the project utilizes code licensed from contributors and other third parties, it therefore is licensed under the MIT License.  See LICENSE file for more information.\n\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | \u003e= 0.13 |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement\\_aws) | \u003e= 3.0.0, \u003c 5.0 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | \u003e= 3.0.0, \u003c 5.0 |\n\n## Modules\n\nNo modules.\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_vpc_endpoint.main](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc_endpoint) | resource |\n| [aws_region.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/region) | data source |\n| [aws_vpc_endpoint_service.main](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/vpc_endpoint_service) | data source |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_enable_athena_endpoints\"\u003e\u003c/a\u003e [enable\\_athena\\_endpoints](#input\\_enable\\_athena\\_endpoints) | Enable VPC endpoints for Athena. | `bool` | `true` | no |\n| \u003ca name=\"input_enable_cloudtrail_endpoints\"\u003e\u003c/a\u003e [enable\\_cloudtrail\\_endpoints](#input\\_enable\\_cloudtrail\\_endpoints) | Enable VPC endpoints for CloudTrail. | `bool` | `true` | no |\n| \u003ca name=\"input_enable_cloudwatch_endpoints\"\u003e\u003c/a\u003e [enable\\_cloudwatch\\_endpoints](#input\\_enable\\_cloudwatch\\_endpoints) | Enable VPC endpoints for CloudWatch. | `bool` | `true` | no |\n| \u003ca name=\"input_enable_ec2_endpoints\"\u003e\u003c/a\u003e [enable\\_ec2\\_endpoints](#input\\_enable\\_ec2\\_endpoints) | Enable VPC endpoints for EC2. | `bool` | `true` | no |\n| \u003ca name=\"input_enable_ecr_endpoints\"\u003e\u003c/a\u003e [enable\\_ecr\\_endpoints](#input\\_enable\\_ecr\\_endpoints) | Enable VPC endpoints for ECR. | `bool` | `true` | no |\n| \u003ca name=\"input_enable_ecs_endpoints\"\u003e\u003c/a\u003e [enable\\_ecs\\_endpoints](#input\\_enable\\_ecs\\_endpoints) | Enable VPC endpoints for ECS. | `bool` | `true` | no |\n| \u003ca name=\"input_enable_kms_endpoints\"\u003e\u003c/a\u003e [enable\\_kms\\_endpoints](#input\\_enable\\_kms\\_endpoints) | Enable VPC endpoints for KMS. | `bool` | `true` | no |\n| \u003ca name=\"input_enable_lambda_endpoints\"\u003e\u003c/a\u003e [enable\\_lambda\\_endpoints](#input\\_enable\\_lambda\\_endpoints) | Enable VPC endpoints for Lambda. | `bool` | `true` | no |\n| \u003ca name=\"input_enable_s3_endpoints\"\u003e\u003c/a\u003e [enable\\_s3\\_endpoints](#input\\_enable\\_s3\\_endpoints) | Enable VPC endpoints for S3. | `bool` | `true` | no |\n| \u003ca name=\"input_enable_sagemaker_endpoints\"\u003e\u003c/a\u003e [enable\\_sagemaker\\_endpoints](#input\\_enable\\_sagemaker\\_endpoints) | Enable VPC endpoints for SageMaker. | `bool` | `true` | no |\n| \u003ca name=\"input_enable_sns_endpoints\"\u003e\u003c/a\u003e [enable\\_sns\\_endpoints](#input\\_enable\\_sns\\_endpoints) | Enable VPC endpoints for SNS. | `bool` | `true` | no |\n| \u003ca name=\"input_enable_sqs_endpoints\"\u003e\u003c/a\u003e [enable\\_sqs\\_endpoints](#input\\_enable\\_sqs\\_endpoints) | Enable VPC endpoints for SQS. | `bool` | `true` | no |\n| \u003ca name=\"input_enable_ssm_endpoints\"\u003e\u003c/a\u003e [enable\\_ssm\\_endpoints](#input\\_enable\\_ssm\\_endpoints) | Enable VPC endpoints for SSM. | `bool` | `true` | no |\n| \u003ca name=\"input_enable_sts_endpoints\"\u003e\u003c/a\u003e [enable\\_sts\\_endpoints](#input\\_enable\\_sts\\_endpoints) | Enable VPC endpoints for STS. | `bool` | `true` | no |\n| \u003ca name=\"input_policy\"\u003e\u003c/a\u003e [policy](#input\\_policy) | If specified, the common policy to apply to all endpoints. | `string` | `\"\"` | no |\n| \u003ca name=\"input_route_table_ids\"\u003e\u003c/a\u003e [route\\_table\\_ids](#input\\_route\\_table\\_ids) | One or more route table IDs. Applicable for endpoints of type Gateway. | `list(string)` | `[]` | no |\n| \u003ca name=\"input_security_group_ids\"\u003e\u003c/a\u003e [security\\_group\\_ids](#input\\_security\\_group\\_ids) | The ID of one or more security groups to associate with the network interface. Required for endpoints of type Interface. | `list(string)` | `[]` | no |\n| \u003ca name=\"input_subnet_ids\"\u003e\u003c/a\u003e [subnet\\_ids](#input\\_subnet\\_ids) | The ID of one or more subnets in which to create a network interface for the endpoint. Applicable for endpoints of type GatewayLoadBalancer and Interface. | `list(string)` | `[]` | no |\n| \u003ca name=\"input_tags\"\u003e\u003c/a\u003e [tags](#input\\_tags) | Tags applied to the VPC endpoints | `map(string)` | `{}` | no |\n| \u003ca name=\"input_timeout_create\"\u003e\u003c/a\u003e [timeout\\_create](#input\\_timeout\\_create) | Default timeout for creating a VPC endpoint | `string` | `\"10m\"` | no |\n| \u003ca name=\"input_timeout_delete\"\u003e\u003c/a\u003e [timeout\\_delete](#input\\_timeout\\_delete) | Default timeout for destroying VPC endpoints | `string` | `\"10m\"` | no |\n| \u003ca name=\"input_timeout_update\"\u003e\u003c/a\u003e [timeout\\_update](#input\\_timeout\\_update) | Default timeout for VPC endpoint modifications | `string` | `\"10m\"` | no |\n| \u003ca name=\"input_vpc_id\"\u003e\u003c/a\u003e [vpc\\_id](#input\\_vpc\\_id) | The ID of the VPC in which the endpoint will be used | `string` | n/a | yes |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_endpoint_services\"\u003e\u003c/a\u003e [endpoint\\_services](#output\\_endpoint\\_services) | n/a |\n| \u003ca name=\"output_endpoints\"\u003e\u003c/a\u003e [endpoints](#output\\_endpoints) | n/a |\n\u003c!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdod-iac%2Fterraform-aws-vpc-endpoints","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdod-iac%2Fterraform-aws-vpc-endpoints","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdod-iac%2Fterraform-aws-vpc-endpoints/lists"}