It contains the relevant configurations required for performing different integrations between AWS and on-premises environments. These include:
- Site-to-Site VPN
- DNS forwarding for AWS services/resources domain name resolution
- IAM Roles Anywhere
- SSM Agent
- EKS Hybrid Nodes
NOTE: The configuration contained here was used for a Proof of Concept (PoC) and might not work out of the box for everyone. While the versions of various components used to configure individual pieces are listed in the corresponding
templates/tftpl
files, other configuration elements and peripherals may impact the setup and require additional configurations.
AWS Anywhere - a route to EKS Hybrid Nodes
The features covered by this module can be enabled using the following environment variables, which are set to false
by default:
on_prem_s2s_vpn_enabled = true
r53_inbound_resolver_enabled = true
iam_roles_anywhere_enabled = true
ssm_advanced_instances_tier_enabled = true
eks_hybrid_nodes_enabled = true
NOTE: Everything has been tested in the order specified above and applied one by one. Randomly enabling or disabling individual features may lead to unexpected errors when running Terraform. This is due to interdependencies that have not been tested in every possible scenario.
Enabled by default, guides are auto-generated upon Terraform apply. Look for GUIDE_*.md
files in this folder.
Name | Version |
---|---|
aws | ~> 5 |
Name | Version |
---|---|
aws | 5.82.2 |
local | 2.5.2 |
Name | Source | Version |
---|---|---|
transit_gateway | terraform-aws-modules/transit-gateway/aws | ~> 2.12 |
transit_vpc | terraform-aws-modules/vpc/aws | ~> 5.16 |
Name | Description | Type | Default | Required |
---|---|---|---|---|
additional_default_tags | A map with additional default tags to be applied at the AWS provider level | map(string) |
{} |
no |
aws_account_id | The allowed AWS account ID to prevent you from mistakenly using an incorrect one | string |
n/a | yes |
aws_region | The AWS Region | string |
n/a | yes |
component | The TF component name | string |
"network" |
no |
cw_logs_retention_days | The number of days any CloudWatch logs should be retained | number |
3 |
no |
eks_hybrid_nodes_enabled | Whether EKS Hybrid Nodes should be configured | bool |
false |
no |
eks_props | A map with EKS relevant properties | object({ |
{} |
no |
environment | The environment name | string |
n/a | yes |
generate_bind_dns_guide_md | Whether to generate the Bind DNS Guide as a local file | bool |
true |
no |
generate_eks_hybrid_nodes_guide_md | Whether to generate the EKS Hybrid Nodes Guide as a local file | bool |
true |
no |
generate_rolesanywhere_ca_guide_md | Whether to generate the CA RolesAnywhere Guide as a local file | bool |
true |
no |
generate_ssm_agent_guide_md | Whether to generate the SSM Agent Guide as a local file | bool |
true |
no |
generate_strongswan_vpn_guide_md | Whether to generate the Strongswan VPN Guide as a local file | bool |
true |
no |
iam_roles_anywhere_enabled | Whether IAM roles anywhere should be configured | bool |
false |
no |
on_prem_props | A map with on-prem relevant properties | object({ |
{} |
no |
on_prem_s2s_vpn_enabled | Whther the Site-to-Site VPN connection to on-prem is enabled | bool |
false |
no |
project | The Project name | string |
n/a | yes |
r53_inbound_resolver_enabled | Whther the Route53 Inbound Resolver for on-prem is enabled | bool |
false |
no |
ssm_advanced_instances_tier_enabled | Whether the SSM advanced-instances tier is enabled. | bool |
false |
no |
ssm_hybrid_activation_registred | Whether the SSM hybrid activation is registered (manually). | bool |
false |
no |
tf_state_bucket_name_prefix | Terraform state bucket name prefix | string |
n/a | yes |
transit_vpc_cidrs | A map with Transit VPC and subnets CIDR blocks | object({ |
n/a | yes |
vpc_flow_logs_s3_bucket_arn | The ARN of a dedicated S3 bucket for storing logs. If not provided CW LG will be configured instead | string |
null |
no |
Name | Description |
---|---|
__AWS_ACCOUNT_LEVEL_IDENTIFIER__ | n/a |
aws_ssm_activation | n/a |
eks_hybrid_nodes_iam_role_arn | n/a |
guide_bind_dns_path | n/a |
guide_eks_hybrid_nodes_path | n/a |
guide_rolesanywhere_ca_path | n/a |
guide_ssm_agent_path | n/a |
guide_strongswan_vpn_path | n/a |
r53_inbound_resolver_ips | n/a |
rolesanywhere_signing_helper_props | n/a |
transit_vpc | n/a |